def block_activity_log_delete()

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)