Beispiel #1
0
    def process_reject(self):
        """
        Reject an app.
        Changes status to Rejected.
        Creates Rejection note.
        """
        # Hold onto the status before we change it.
        status = self.addon.status

        self.set_files(mkt.STATUS_DISABLED, self.version.files.all(),
                       hide_disabled_file=True)
        # If this app is not packaged (packaged apps can have multiple
        # versions) or if there aren't other versions with already reviewed
        # files, reject the app also.
        if (not self.addon.is_packaged or
            not self.addon.versions.exclude(id=self.version.id)
                .filter(files__status__in=mkt.REVIEWED_STATUSES).exists()):
            self.set_addon(status=mkt.STATUS_REJECTED)

        if self.in_escalate:
            EscalationQueue.objects.filter(addon=self.addon).delete()
        if self.in_rereview:
            RereviewQueue.objects.filter(addon=self.addon).delete()

        self.create_note(mkt.LOG.REJECT_VERSION)

        log.info(u'Making %s disabled' % self.addon)

        # Assign reviewer incentive scores.
        return ReviewerScore.award_points(self.request.user, self.addon,
                                          status, in_rereview=self.in_rereview)
Beispiel #2
0
    def process_reject(self):
        """
        Reject an app.
        Changes status to Rejected.
        Creates Rejection note.
        """
        # Hold onto the status before we change it.
        status = self.addon.status

        self.set_files(mkt.STATUS_DISABLED,
                       self.version.files.all(),
                       hide_disabled_file=True)
        # If this app is not packaged (packaged apps can have multiple
        # versions) or if there aren't other versions with already reviewed
        # files, reject the app also.
        if (not self.addon.is_packaged
                or not self.addon.versions.exclude(id=self.version.id).filter(
                    files__status__in=mkt.REVIEWED_STATUSES).exists()):
            self.set_addon(status=mkt.STATUS_REJECTED)

        if self.in_escalate:
            EscalationQueue.objects.filter(addon=self.addon).delete()
        if self.in_rereview:
            RereviewQueue.objects.filter(addon=self.addon).delete()

        self.create_note(mkt.LOG.REJECT_VERSION)

        log.info(u'Making %s disabled' % self.addon)

        # Assign reviewer incentive scores.
        return ReviewerScore.award_points(self.request.user,
                                          self.addon,
                                          status,
                                          in_rereview=self.in_rereview)
Beispiel #3
0
    def process_public(self):
        """
        Makes an app public or approved.
        Changes status to Public/Public Waiting.
        Creates Approval note/email.
        """
        if self.addon.has_incomplete_status():
            # Failsafe.
            return

        # Hold onto the status before we change it.
        status = self.addon.status
        if self.addon.make_public == amo.PUBLIC_IMMEDIATELY:
            self._process_public_immediately()
        else:
            self._process_approved()

        if self.in_escalate:
            EscalationQueue.objects.filter(addon=self.addon).delete()

        # Clear priority_review flag on approval - its not persistant.
        if self.addon.priority_review:
            self.addon.update(priority_review=False)

        # Assign reviewer incentive scores.
        return ReviewerScore.award_points(self.request.amo_user, self.addon,
                                          status)
Beispiel #4
0
 def process_clear_rereview(self):
     """
     Clear app from re-review queue.
     Doesn't change status.
     Creates Reviewer-only note.
     """
     RereviewQueue.objects.filter(addon=self.addon).delete()
     self.create_note(mkt.LOG.REREVIEW_CLEARED)
     log.info(u"Re-review cleared for app: %s" % self.addon)
     # Assign reviewer incentive scores.
     return ReviewerScore.award_points(self.request.user, self.addon, self.addon.status, in_rereview=True)
Beispiel #5
0
 def process_clear_rereview(self):
     """
     Clear app from re-review queue.
     Doesn't change status.
     Doesn't create note/email.
     """
     RereviewQueue.objects.filter(addon=self.addon).delete()
     self.create_note(amo.LOG.REREVIEW_CLEARED)
     log.info(u'Re-review cleared for app: %s' % self.addon)
     # Assign reviewer incentive scores.
     return ReviewerScore.award_points(self.request.user, self.addon,
                                       self.addon.status, in_rereview=True)
Beispiel #6
0
    def process_approve(self):
        """
        Handle the approval of apps and/or files.
        """
        if self.addon.has_incomplete_status():
            # Failsafe.
            return

        # Hold onto the status before we change it.
        status = self.addon.status
        if self.addon.publish_type == mkt.PUBLISH_IMMEDIATE:
            self._process_public(mkt.STATUS_PUBLIC)
        elif self.addon.publish_type == mkt.PUBLISH_HIDDEN:
            self._process_public(mkt.STATUS_UNLISTED)
        else:
            self._process_private()

        # Note: Post save signals shouldn't happen here. All the set_*()
        # methods pass _signal=False to prevent them from being sent. They are
        # manually triggered in the view after the transaction is committed to
        # avoid multiple indexing tasks getting fired with stale data.
        #
        # This does mean that we need to call update_version() manually to get
        # the addon in the correct state before updating names. We do that,
        # passing _signal=False again to prevent it from sending
        # 'version_changed'. The post_save() that happen in the view will
        # call it without that parameter, sending 'version_changed' normally.
        self.addon.update_version(_signal=False)
        if self.addon.is_packaged:
            self.addon.update_name_from_package_manifest()
        self.addon.update_supported_locales()
        self.addon.resend_version_changed_signal = True

        if self.in_escalate:
            EscalationQueue.objects.filter(addon=self.addon).delete()

        # Clear priority_review flag on approval - its not persistant.
        if self.addon.priority_review:
            self.addon.update(priority_review=False)

        # Assign reviewer incentive scores.
        return ReviewerScore.award_points(self.request.user, self.addon,
                                          status)
Beispiel #7
0
    def process_approve(self):
        """
        Handle the approval of apps and/or files.
        """
        if self.addon.has_incomplete_status():
            # Failsafe.
            return

        # Hold onto the status before we change it.
        status = self.addon.status
        if self.addon.publish_type == mkt.PUBLISH_IMMEDIATE:
            self._process_public(mkt.STATUS_PUBLIC)
        elif self.addon.publish_type == mkt.PUBLISH_HIDDEN:
            self._process_public(mkt.STATUS_UNLISTED)
        else:
            self._process_private()

        # Note: Post save signals shouldn't happen here. All the set_*()
        # methods pass _signal=False to prevent them from being sent. They are
        # manually triggered in the view after the transaction is committed to
        # avoid multiple indexing tasks getting fired with stale data.
        #
        # This does mean that we need to call update_version() manually to get
        # the addon in the correct state before updating names. We do that,
        # passing _signal=False again to prevent it from sending
        # 'version_changed'. The post_save() that happen in the view will
        # call it without that parameter, sending 'version_changed' normally.
        self.addon.update_version(_signal=False)
        if self.addon.is_packaged:
            self.addon.update_name_from_package_manifest()
        self.addon.update_supported_locales()
        self.addon.resend_version_changed_signal = True

        if self.in_escalate:
            EscalationQueue.objects.filter(addon=self.addon).delete()

        # Clear priority_review flag on approval - its not persistant.
        if self.addon.priority_review:
            self.addon.update(priority_review=False)

        # Assign reviewer incentive scores.
        return ReviewerScore.award_points(self.request.user, self.addon,
                                          status)
Beispiel #8
0
 def _give_points(self, user=None, app=None, status=None):
     user = user or self.user
     app = app or self.app
     ReviewerScore.award_points(user, app, status or app.status)
Beispiel #9
0
 def _give_points(self, user=None, app=None, status=None):
     user = user or self.user
     app = app or self.app
     ReviewerScore.award_points(user, app, status or app.status)