activity.ActivityLog

Model Info

Key

Value

Model Name

ActivityLog

Verbose Name

activity log

Verbose Name Plural

activity logs

Docstring

ActivityLog(id, created, modified, user, action, _arguments, _details)

Is Abstract

False

Is Proxy

False

Is Managed

True

Ordering

(‘-created’,)

Permissions

[]

Default Permissions

(‘add’, ‘change’, ‘delete’, ‘view’)

Indexes

[<Index: fields=[‘action’] name=’log_activity_1bd4707b’>, <Index: fields=[‘created’] name=’log_activity_created_idx’>]

Constraints

[]

Database Table

log_activity

Base Manager

None

Default Manager

None

File

/data/olympia/src/olympia/activity/models.py

Starting Line Number

521

Method Resolution Order

(<class ‘olympia.activity.models.ActivityLog’>, <class ‘olympia.amo.models.ModelBase’>, <class ‘olympia.amo.models.SaveUpdateMixin’>, <class ‘django.db.models.base.Model’>, <class ‘django.db.models.utils.AltersData’>, <class ‘object’>)

Fields

Field Name

Field Type

Database Column

Database Type

Verbose Name

_arguments

TextField

arguments

longtext

arguments

_details

TextField

details

longtext

details

action

SmallIntegerField

action

smallint

action

addonlog

ManyToOneRel

integer

attachmentlog

OneToOneRel

integer

blocklog

ManyToOneRel

integer

cinderpolicylog

ManyToOneRel

integer

commentlog

ManyToOneRel

integer

contentdecision

ManyToManyRel

through activity.ContentDecisionLog

contentdecisionlog

ManyToOneRel

integer

created

DateTimeField

created

datetime(6)

created

grouplog

ManyToOneRel

integer

id (pk)

AutoField

id

integer AUTO_INCREMENT

ID

iplog

OneToOneRel

integer

modified

DateTimeField

modified

datetime(6)

modified

ratinglog

ManyToOneRel

integer

reviewactionreasonlog

ManyToOneRel

integer

reviewqueuehistory

ManyToOneRel

integer

user

ForeignKey

user_id

integer

user

versionlog

ManyToOneRel

integer

Relations

Field Name

Field Type

Database Column

Database Type

Related Model

Related Name

user

ForeignKey

user_id

integer

users.UserProfile

activitylog_set

fields_reverse_relation=[FieldReverseRelation(name=’activitylog_set’, field_type=’ManyToManyRel’, field_db_type=’through activity.ContentDecisionLog’, related_model=’abuse.ContentDecision’, field_name_on_related_model=’activities’, field_type_on_related_model=’ManyToManyField’), FieldReverseRelation(name=’activitylog_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’activity.AddonLog’, field_name_on_related_model=’activity_log’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’activitylog_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’activity.CommentLog’, field_name_on_related_model=’activity_log’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’activitylog_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’activity.VersionLog’, field_name_on_related_model=’activity_log’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’activitylog_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’activity.ReviewActionReasonLog’, field_name_on_related_model=’activity_log’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’activitylog_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’activity.CinderPolicyLog’, field_name_on_related_model=’activity_log’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’activitylog_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’activity.ContentDecisionLog’, field_name_on_related_model=’activity_log’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’activitylog_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’activity.GroupLog’, field_name_on_related_model=’activity_log’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’activitylog_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’activity.BlockLog’, field_name_on_related_model=’activity_log’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’activitylog_set’, field_type=’OneToOneRel’, field_db_type=’integer’, related_model=’activity.IPLog’, field_name_on_related_model=’activity_log’, field_type_on_related_model=’OneToOneField’), FieldReverseRelation(name=’activitylog_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’activity.RatingLog’, field_name_on_related_model=’activity_log’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’activitylog_set’, field_type=’OneToOneRel’, field_db_type=’integer’, related_model=’activity.AttachmentLog’, field_name_on_related_model=’activity_log’, field_type_on_related_model=’OneToOneField’), FieldReverseRelation(name=’activitylog_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’reviewers.ReviewQueueHistory’, field_name_on_related_model=’review_decision_log’, field_type_on_related_model=’ForeignKey’)]

Reverse Relations

Field Name

Field Type

Database Type

Related Model

Field Name on Related Model

Field Type on Related Model

activitylog_set

ManyToManyRel

through activity.ContentDecisionLog

abuse.ContentDecision

activities

ManyToManyField

activitylog_set

ManyToOneRel

integer

activity.AddonLog

activity_log

ForeignKey

activitylog_set

ManyToOneRel

integer

activity.CommentLog

activity_log

ForeignKey

activitylog_set

ManyToOneRel

integer

activity.VersionLog

activity_log

ForeignKey

activitylog_set

ManyToOneRel

integer

activity.ReviewActionReasonLog

activity_log

ForeignKey

activitylog_set

ManyToOneRel

integer

activity.CinderPolicyLog

activity_log

ForeignKey

activitylog_set

ManyToOneRel

integer

activity.ContentDecisionLog

activity_log

ForeignKey

activitylog_set

ManyToOneRel

integer

activity.GroupLog

activity_log

ForeignKey

activitylog_set

ManyToOneRel

integer

activity.BlockLog

activity_log

ForeignKey

activitylog_set

OneToOneRel

integer

activity.IPLog

activity_log

OneToOneField

activitylog_set

ManyToOneRel

integer

activity.RatingLog

activity_log

ForeignKey

activitylog_set

OneToOneRel

integer

activity.AttachmentLog

activity_log

OneToOneField

activitylog_set

ManyToOneRel

integer

reviewers.ReviewQueueHistory

review_decision_log

ForeignKey

Methods

Other Methods

Method Name

Signature

arguments_builder

(activities)

get_action_display

(self, *, field=<django.db.models.fields.SmallIntegerField: action>)

get_admin_absolute_url

(self)

get_admin_url_path

(self)

get_next_by_created

(self, *, field=<django.db.models.fields.DateTimeField: created>, is_next=True, **kwargs)

get_next_by_modified

(self, *, field=<django.db.models.fields.DateTimeField: modified>, is_next=True, **kwargs)

get_previous_by_created

(self, *, field=<django.db.models.fields.DateTimeField: created>, is_next=False, **kwargs)

get_previous_by_modified

(self, *, field=<django.db.models.fields.DateTimeField: modified>, is_next=False, **kwargs)

get_unfiltered_manager

()

reload

(self)

serializable_reference

(self)

set_arguments

(self, args=None)

to_string

(self, type_=None)

transformer_anonymize_user_for_developer

(logs)

update

(self, **kw)

Private Methods

Method Name

Signature

_get_field_value_map

(self, meta, exclude=None)

Custom Managers

default

Class: ActivityLogManager

*Base for all managers in AMO.

Returns BaseQuerySets.

If a model has translated fields, they’ll be attached through a transform function.*

Custom Methods

for_addons(self, addons)
for_block(self, block)
for_groups(self, groups)
for_guidblock(self, guid)
for_versions(self, versions)
moderation_events(self)
review_log(self)
transform(self, fn)

Custom QuerySet

Class: ActivityLogQuerySet

Represent a lazy database lookup for a set of objects.

Custom Methods
default_transformer(self, logs)
no_transforms(self)
only_translations(self)

Remove all transforms except translations.

optimized_count(self)

*Slightly optimized count() for cases where there is a DISTINCT in the queryset.

When a count() call is made on a queryset that has a distinct, that causes django to run the full SELECT (including all fields, distinct, ordering etc) in a subquery and then COUNT() on the result of that subquery, which is costly/innefficient. That’s tracked in https://code.djangoproject.com/ticket/30685. We can’t easily fix the fact that there is a subquery, but we can avoid selecting all fields and ordering in that subquery needlessly.*

pending_for_developer(self, for_version=None)

*Return ActivityLog that are considered “pending” for developers.

An Activity will be considered “pending” if it’s a review queue activity not hidden to developers that is more recent that the latest activity created by a developer/reviewer. Said differently: if a developer doesn’t do something after a reviewer action, that reviewer action will be considered pending.*

pop_transforms(self)
transform(self, fn)

objects

Class: ActivityLogManager

*Base for all managers in AMO.

Returns BaseQuerySets.

If a model has translated fields, they’ll be attached through a transform function.*

Custom Methods

for_addons(self, addons)
for_block(self, block)
for_groups(self, groups)
for_guidblock(self, guid)
for_versions(self, versions)
moderation_events(self)
review_log(self)
transform(self, fn)

Custom QuerySet

Class: ActivityLogQuerySet

Represent a lazy database lookup for a set of objects.

Custom Methods
default_transformer(self, logs)
no_transforms(self)
only_translations(self)

Remove all transforms except translations.

optimized_count(self)

*Slightly optimized count() for cases where there is a DISTINCT in the queryset.

When a count() call is made on a queryset that has a distinct, that causes django to run the full SELECT (including all fields, distinct, ordering etc) in a subquery and then COUNT() on the result of that subquery, which is costly/innefficient. That’s tracked in https://code.djangoproject.com/ticket/30685. We can’t easily fix the fact that there is a subquery, but we can avoid selecting all fields and ordering in that subquery needlessly.*

pending_for_developer(self, for_version=None)

*Return ActivityLog that are considered “pending” for developers.

An Activity will be considered “pending” if it’s a review queue activity not hidden to developers that is more recent that the latest activity created by a developer/reviewer. Said differently: if a developer doesn’t do something after a reviewer action, that reviewer action will be considered pending.*

pop_transforms(self)
transform(self, fn)

!!! THIS DOCUMENT WAS AUTOGENERATED ON 2025-07-09 !!!