def get_tasks()

in src/olympia/addons/management/commands/process_addons.py [0:0]


    def get_tasks(self):
        def get_recalc_needed_filters():
            summary_modified_field = '_current_version__autoapprovalsummary__modified'
            recent_abuse_reports_subquery = AbuseReport.objects.filter(
                created__gte=OuterRef(summary_modified_field),
                guid=OuterRef('guid'),
            )

            return [
                # Only recalculate add-ons that received recent abuse reports
                # possibly through their authors.
                Q(
                    Exists(recent_abuse_reports_subquery),
                )
                | Q(
                    authors__abuse_reports__created__gte=F(summary_modified_field),
                )
                # And check ratings that have a rating of 3 or less
                | Q(
                    _current_version__ratings__deleted=False,
                    _current_version__ratings__created__gte=F(summary_modified_field),
                    _current_version__ratings__rating__lte=3,
                )
            ]

        return {
            'find_inconsistencies_between_es_and_db': {
                'task': find_inconsistencies_between_es_and_db,
                'queryset_filters': [],
            },
            'get_preview_sizes': {'task': get_preview_sizes, 'queryset_filters': []},
            'recalculate_post_review_weight': {
                'task': recalculate_post_review_weight,
                'queryset_filters': [
                    Q(_current_version__autoapprovalsummary__verdict=amo.AUTO_APPROVED)
                    & ~Q(_current_version__autoapprovalsummary__confirmed=True)
                ],
            },
            'constantly_recalculate_post_review_weight': {
                'task': recalculate_post_review_weight,
                'queryset_filters': get_recalc_needed_filters(),
            },
            'bump_and_resign_addons': {
                'task': bump_and_resign_addons,
                'queryset_filters': [
                    # Only resign public add-ons where the latest version has been
                    # created before the 5th of April
                    Q(
                        status=amo.STATUS_APPROVED,
                        _current_version__created__lt=datetime(2019, 4, 5),
                        disabled_by_user=False,
                        type__in=(
                            amo.ADDON_EXTENSION,
                            amo.ADDON_STATICTHEME,
                            amo.ADDON_DICT,
                        ),
                    )
                ],
            },
            'recreate_previews': {
                'task': recreate_previews,
                'queryset_filters': [~Q(type=amo.ADDON_STATICTHEME)],
            },
            'recreate_theme_previews': {
                'task': recreate_theme_previews,
                'queryset_filters': [
                    Q(
                        type=amo.ADDON_STATICTHEME,
                        status__in=[amo.STATUS_APPROVED, amo.STATUS_NOMINATED],
                    )
                ],
                'kwargs': {'only_missing': False},
            },
            'create_missing_theme_previews': {
                'task': recreate_theme_previews,
                'queryset_filters': [
                    Q(
                        type=amo.ADDON_STATICTHEME,
                        status__in=[amo.STATUS_APPROVED, amo.STATUS_AWAITING_REVIEW],
                    )
                ],
                'kwargs': {'only_missing': True},
            },
            'delete_list_theme_previews': {
                'task': delete_list_theme_previews,
                'queryset_filters': [
                    Q(
                        type=amo.ADDON_STATICTHEME,
                    )
                ],
            },
            'extract_colors_from_static_themes': {
                'task': extract_colors_from_static_themes,
                'queryset_filters': [Q(type=amo.ADDON_STATICTHEME)],
            },
            'delete_obsolete_addons': {
                'task': delete_addons,
                'queryset_filters': [
                    Q(
                        type__in=(
                            _ADDON_THEME,
                            _ADDON_LPADDON,
                            _ADDON_PLUGIN,
                            _ADDON_PERSONA,
                            _ADDON_WEBAPP,
                        )
                    )
                ],
                'allowed_kwargs': ('with_deleted',),
            },
            'update_rating_aggregates': {
                'task': addon_rating_aggregates,
                'queryset_filters': [Q(status=amo.STATUS_APPROVED)],
            },
            # https://github.com/mozilla/addons/issues/15141
            'delete_erroneously_added_overgrowth_needshumanreview': {
                'task': delete_erroneously_added_overgrowth_needshumanreview,
                'queryset_filters': [
                    Q(
                        versions__needshumanreview__reason=(
                            NeedsHumanReview.REASONS.HOTNESS_THRESHOLD
                        ),
                        versions__needshumanreview__created__range=(
                            ERRONEOUSLY_ADDED_OVERGROWTH_DATE_RANGE
                        ),
                        versions__needshumanreview__is_active=True,
                    )
                ],
            },
        }