in src/olympia/blocklist/utils.py [0:0]
def block_activity_log_delete(obj, deleted, *, submission_obj=None, delete_user=None):
assert submission_obj or delete_user
addon_versions = {ver.id: ver.version for ver in obj.addon_versions}
blocked_versions = (
sorted(ver.version for ver in obj.addon_versions if ver.is_blocked)
if not deleted
else []
)
changed_version_ids = (
[v_id for v_id in submission_obj.changed_version_ids if v_id in addon_versions]
if submission_obj
else sorted(ver.id for ver in obj.addon_versions if not ver.is_blocked)
)
changed_versions = sorted(
addon_versions[ver_id]
for ver_id in changed_version_ids
if ver_id in addon_versions
)
details = {
'guid': obj.guid,
'blocked_versions': blocked_versions,
'removed_versions': changed_versions,
'url': obj.url,
'reason': obj.reason,
'comments': f'{len(changed_versions)} versions removed from block; '
f'{len(blocked_versions)} total versions now blocked.',
}
action = (
amo.LOG.BLOCKLIST_BLOCK_EDITED
if not deleted
else amo.LOG.BLOCKLIST_BLOCK_DELETED
)
if submission_obj:
details['signoff_state'] = submission_obj.SIGNOFF_STATES.for_value(
submission_obj.signoff_state
).display
if submission_obj.signoff_by:
details['signoff_by'] = submission_obj.signoff_by.id
log_create(
*[action, *([obj.addon] if obj.addon else []), obj.guid, obj],
details=details,
user=submission_obj.updated_by if submission_obj else delete_user,
)
log_create(
amo.LOG.BLOCKLIST_VERSION_UNBLOCKED,
*((Version, version_id) for version_id in changed_version_ids),
obj,
user=obj.updated_by,
)
if submission_obj and submission_obj.signoff_by:
args = [
amo.LOG.BLOCKLIST_SIGNOFF,
*([obj.addon] if obj.addon else []),
obj.guid,
action.action_class,
obj,
]
log_create(*args, user=submission_obj.signoff_by)