addons-server
  • Security Bug Reports
  • External API
  • Development
  • Models
    • translations
    • amo
    • abuse
    • access
    • activity
    • addons
    • api
    • applications
    • bandwagon
    • blocklist
    • devhub
    • discovery
    • files
    • hero
    • promoted
      • promoted.PromotedGroup
      • promoted.PromotedAddon
      • promoted.PromotedApproval
        • Model Info
        • Fields
        • Relations
        • Methods
        • Custom Managers
    • ratings
    • reviewers
    • scanners
    • search
    • shelves
    • tags
    • users
    • versions
    • zadmin
  • Logs
  • IP addresses
  • Third-Party Usage
  • AMO Blocklist
  • Environments
  • Runbooks
  • External API (V3 - Deprecated)
  • External API (V4 - Frozen)
  • Playground
addons-server
  • Models
  • promoted
  • promoted.PromotedApproval
  • View page source

promoted.PromotedApproval

Model Info

Key

Value

Model Name

PromotedApproval

Verbose Name

promoted approval

Verbose Name Plural

promoted approvals

Docstring

A join table between a promoted group, version and application id.
This model represents an approved promotion for a specific version of an addon
on a specific application. We can granularly control which approvals are available
per version and application combination, store additional metadata and maintain
a clear audit trail of what has been approved and when.

Is Abstract

False

Is Proxy

False

Is Managed

True

Ordering

[]

Permissions

[]

Default Permissions

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

Indexes

[]

Constraints

[<UniqueConstraint: fields=(‘promoted_group’, ‘application_id’, ‘version’) name=’unique_promoted_addon_version’>]

Database Table

promoted_promotedaddonversion

Base Manager

None

Default Manager

None

File

/data/olympia/src/olympia/promoted/models.py

Starting Line Number

245

Method Resolution Order

(<class ‘olympia.promoted.models.PromotedApproval’>, <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

application_id

SmallIntegerField

application_id

smallint

Application

created

DateTimeField

created

datetime(6)

created

id (pk)

AutoField

id

integer AUTO_INCREMENT

ID

modified

DateTimeField

modified

datetime(6)

modified

promoted_group

ForeignKey

promoted_group_id

integer

promoted group

version

ForeignKey

version_id

integer UNSIGNED

version

Relations

Field Name

Field Type

Database Column

Database Type

Related Model

Related Name

promoted_group

ForeignKey

promoted_group_id

integer

promoted.PromotedGroup

promoted_versions

version

ForeignKey

version_id

integer UNSIGNED

versions.Version

promoted_versions

fields_reverse_relation=[]

Methods

Other Methods

Method Name

Signature

get_admin_absolute_url

(self)

get_admin_url_path

(self)

get_application_id_display

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

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)

update

(self, **kw)

Private Methods

Method Name

Signature

_get_field_value_map

(self, meta, exclude=None)

Custom Managers

default

Class: PromotedApprovalManager

*Base for all managers in AMO.

Returns BaseQuerySets.

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

Custom Methods

transform(self, fn)

Custom QuerySet

Class: PromotedApprovalQuerySet

Represent a lazy database lookup for a set of objects.

Custom Methods
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.*

pop_transforms(self)
transform(self, fn)

objects

Class: PromotedApprovalManager

*Base for all managers in AMO.

Returns BaseQuerySets.

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

Custom Methods

transform(self, fn)

Custom QuerySet

Class: PromotedApprovalQuerySet

Represent a lazy database lookup for a set of objects.

Custom Methods
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.*

pop_transforms(self)
transform(self, fn)

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

Previous Next

© Copyright 2024, Mozilla.

Built with Sphinx using a theme provided by Read the Docs.