Appeals on listing content rejections set REQUESTED, rather than creating NHR#24544
Open
eviljeff wants to merge 1 commit intomozilla:masterfrom
Open
Appeals on listing content rejections set REQUESTED, rather than creating NHR#24544eviljeff wants to merge 1 commit intomozilla:masterfrom
eviljeff wants to merge 1 commit intomozilla:masterfrom
Conversation
46db532 to
52a280d
Compare
diox
requested changes
Mar 2, 2026
Member
diox
left a comment
There was a problem hiding this comment.
Given that there is no NHR, I think we should the appeal somewhere more prominently. For a non-content review, the version list will have a NHR displayed in the version list, so it's easy to understand what the reviewer needs to do. Here, there is no indication of an appeal until you select an action and see the checkbox for the appeal job to resolve, so it's quite confusing.
Something like this? (add some conditions in case we don't want the clutter all the time, and tests)
diff --git a/src/olympia/reviewers/templates/reviewers/addon_details_box.html b/src/olympia/reviewers/templates/reviewers/addon_details_box.html
index 9e48ce8e31..aeff4cdfa0 100644
--- a/src/olympia/reviewers/templates/reviewers/addon_details_box.html
+++ b/src/olympia/reviewers/templates/reviewers/addon_details_box.html
@@ -170,8 +170,16 @@
{% endif %}
{% if approvals_info %}
<tr class="last-approval-date">
- <th> Last Approval Date </th>
- <td> {{ approvals_info.last_human_review|date }}</td>
+ <th>Last Human Full Approval Date</th>
+ <td>{{ approvals_info.last_human_review|date }}</td>
+ </tr>
+ <tr>
+ <th>Last Human Content Approval Date</th>
+ <td>{{ approvals_info.last_content_review|date }}</td>
+ </tr>
+ <tr>
+ <th>Content review status</th>
+ <td>{{ approvals_info.get_content_review_status_display() }}</td>
</tr>
{% endif %}
</tbody>
diff --git a/src/olympia/reviewers/views.py b/src/olympia/reviewers/views.py
index c87f6f5846..81ba74bf7a 100644
--- a/src/olympia/reviewers/views.py
+++ b/src/olympia/reviewers/views.py
@@ -624,11 +624,7 @@ def review(request, addon, channel=None):
else []
)
approvals_info = None
- if (
- channel == amo.CHANNEL_LISTED
- and addon.current_version
- and addon.current_version.was_auto_approved
- ):
+ if channel == amo.CHANNEL_LISTED:
try:
approvals_info = addon.addonapprovalscounter
except AddonApprovalsCounter.DoesNotExist:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes: mozilla/addons#16059
Description
Effectively makes appeals work like requesting a new review - setting AddonApprovalsCounter.CONTENT_REVIEW_STATUSES.REQUESTED - and don't set an NHR so it doesn't show up in the normal manual review queue.
Context
We were using CinderAddonHandledByReviewers so it was treating any appeal (or any action) like follow-up from a reviewer tools review, and flagging it for NHR; now we use a different entity class, without that additional code.
I think there are edge cases and additional scenarios that will occur once we start handling content review in Cinder directly, but that piece of work isn't far enough along to know exactly how it will work, so I skipped over that aspect. (In particular, if we allow policies with an action of AMO_REJECT_LISTING_CONTENT to be available in other queues, we'll need to think through how such an appeal should be handled - i.e. should it still be seen as a "content review"? And even if we limit where the policies are available, there is still the possibility of it coming via the t&s escalations queue)
Even without the NHR, appeal jobs on the back of a content review would be available for resolution on the non-content-review review page. There may be edge cases here, so we might want to consider filtering out those appeal jobs.
When I updated the requeue code for 2nd level I realised again that while a decision is held on a AMO_REJECT_LISTING_CONTENT action it will still be in the content review queue, so there isn't really anything extra we can do. (I thought there was already an issue about that bug, but I couldn't find one)
Testing
Checklist
#ISSUENUMat the top of your PR to an existing open issue in the mozilla/addons repository.