def update_source_status()

in kinto-remote-settings/src/kinto_remote_settings/signer/updater.py [0:0]


    def update_source_status(self, status, request, old_status=None):
        current_userid = request.prefixed_userid
        current_date = datetime.datetime.now(datetime.timezone.utc).isoformat()
        attrs = {"status": status.value}
        if status == STATUS.WORK_IN_PROGRESS:
            attrs[TRACKING_FIELDS.LAST_EDIT_BY.value] = current_userid
            attrs[TRACKING_FIELDS.LAST_EDIT_DATE.value] = current_date
        if status == STATUS.TO_REVIEW:
            attrs[TRACKING_FIELDS.LAST_REVIEW_REQUEST_BY.value] = current_userid
            attrs[TRACKING_FIELDS.LAST_REVIEW_REQUEST_DATE.value] = current_date
            # Make sure we reset the review comments if none is specified.
            if "last_editor_comment" not in request.validated["body"].get("data", {}):
                attrs["last_editor_comment"] = ""
        if status == STATUS.SIGNED:
            if old_status != STATUS.SIGNED:
                # Do not keep track of reviewer when refreshing signature.
                attrs[TRACKING_FIELDS.LAST_REVIEW_BY.value] = current_userid
                attrs[TRACKING_FIELDS.LAST_REVIEW_DATE.value] = current_date
            attrs[TRACKING_FIELDS.LAST_SIGNATURE_BY.value] = current_userid
            attrs[TRACKING_FIELDS.LAST_SIGNATURE_DATE.value] = current_date
        return self._update_source_attributes(request, **attrs)