AO3-3764 Paginate tag set nominations review page#5752
AO3-3764 Paginate tag set nominations review page#5752pmonfort wants to merge 7 commits intootwcode:masterfrom
Conversation
11f0ab0 to
0bb47cc
Compare
| <%= check_all_none("Approve All", "Approve None", "approve") %> | ||
| <% if @paginations&.dig(tag_type) %> | ||
| <%== pagy_nav(@paginations[tag_type], | ||
| anchor_string: "id=\"#{tag_type}_nominations\"") %> |
There was a problem hiding this comment.
Question! Does the anchor_string here mean that the pagination links should be like ?fandom_page=3#fandom_nominations?
I swear I saw that behavior when I first pulled this code to try it out, but it has disappeared on me, so I'm confused. 😆
There was a problem hiding this comment.
Yes, that's the intended behavior! The anchor_string parameter name is a bit misleading, it refers to the HTML anchor element ( tag) not URL anchors/fragments. I've pushed a fix using the correct fragment parameter.
Good catch! Thanks!
sarken
left a comment
There was a problem hiding this comment.
Just a couple of nitpicks/questions about the tests! Aside from that, this looks good and I'm excited. 🎉
| Scenario: Owner of a tag set with over 30 nominations does not see the randomized selection message | ||
| Given I am logged in as "tagsetter" | ||
| And I set up the nominated tag set "Nominated Tags" with 6 fandom noms and 6 character noms | ||
| When there are 36 unreviewed nominations | ||
| Given I am logged in as "tagsetter" | ||
| And I review nominations for "Nominated Tags" | ||
| Then I should not see "There are too many nominations to show at once" |
There was a problem hiding this comment.
I'd be okay with removing this test. We can just confirm that the message has been removed during manual testing; we don't need to test it every time we run the tests for the rest of time. 😆
| tsn = TagSetNomination.create!(owned_tag_set: owned_tag_set, pseud: nominator.default_pseud) | ||
| FandomNomination.create!(tag_set_nomination: tsn, tagname: "Paginated Fandom #{i}") |
There was a problem hiding this comment.
Could we use factories for the tag set nominations and tag nominations? I think it would be something like:
tsn = create(:tag_set_nomination, owned_tag_set: owned_tag_set, pseud: nominator.default_pseud)
create(:tag_nomination, tag_set_nomination: tsn, tagname: "Paginated Fandom #{i}", type: "FandomNomination")
| context 'unreviewed fandom nominations <= 30' do | ||
| let(:fandom_nom_num) { 30 } | ||
| context "unreviewed fandom nominations within per page limit" do | ||
| let(:fandom_nom_num) { 20 } |
There was a problem hiding this comment.
Is there a reason it needs to be 20? If so, it would be a good idea to document why we do that instead of something like the per_page + 1 we do elsewhere.
Pull Request Checklist
as the first thing in your pull request title (e.g.
AO3-1234 Fix thing)until they are reviewed and merged before creating new pull requests.
Issue
https://otwarchive.atlassian.net/browse/AO3-3764
Purpose
When a tag set has more than 30 unreviewed nominations, moderators currently see a random subset with the message "There are too many nominations to show at once." This makes it impossible to systematically review all nominations.
This PR replaces the random selection with proper pagination using pagy:
created_atascending for deterministic resultsTesting Instructions
Credit
Pablo Monfort (he/him)