New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ability to sort tag pages by likes/view counts #3419

Open
first-timers bot opened this Issue Sep 24, 2018 · 8 comments

Comments

Projects
None yet
5 participants
@first-timers

first-timers bot commented Sep 24, 2018

Hi, this is a first-timers-only issue. This means we've worked to make it more legible to folks who either haven't contributed to our codebase before, or even folks who haven't contributed to open source before.

If that's you, we're interested in helping you take the first step and can answer questions and help you out as you do. Note that we're especially interested in contributions from people from groups underrepresented in free and open source software!

We know that the process of creating a pull request is the biggest barrier for new contributors. This issue is for you 💝

If you have contributed before, consider leaving this one for someone new, and looking through our general help wanted issues. Thanks!

🤔 What you will need to know.

Nothing. This issue is meant to welcome you to Open Source :) We are happy to walk you through the process.

📋 Step by Step

  • 🙋 Claim this issue: Comment below. If someone else has claimed it, ask if they've opened a pull request already and if they're stuck -- maybe you can help them solve a problem or move it along!

  • 📝 Update the file app/controllers/tag_controller.rb in the plots2 repository (press the little pen Icon) and edit the line as shown below.

See this page for some help in taking your first steps!

Below is a "diff" showing in red (and a -) which lines to remove, and in green (and a +) which lines to add:

@@ -85,6 +85,9 @@ def show
     @node_type = params[:node_type] || default_type
     @start = Time.parse(params[:start]) if params[:start]
     @end = Time.parse(params[:end]) if params[:end]
+    order_by = 'node_revisions.timestamp DESC'
+    order_by = 'node.views DESC' if params[:order] == 'views'
+    order_by = 'node.cached_likes DESC' if params[:order] == 'likes'
 
     node_type = 'note' if @node_type == 'questions' || @node_type == 'note'
     node_type = 'page' if @node_type == 'wiki'
@@ -99,7 +102,7 @@ def show
         .references(:term_data, :node_revisions)
         .where('term_data.name LIKE (?) OR term_data.parent LIKE (?)', params[:id][0..-2] + '%', params[:id][0..-2] + '%')
         .paginate(page: params[:page], per_page: 24)
-        .order('node_revisions.timestamp DESC')
+        .order(order_by)
     else
       @tags = Tag.where(name: params[:id])
 
@@ -115,14 +118,14 @@ def show
           .references(:term_data, :node_revisions)
           .where('term_data.name = ? OR term_data.name = ? OR term_data.parent = ?', params[:id], other_tag, params[:id])
           .paginate(page: params[:page], per_page: 24)
-          .order('node_revisions.timestamp DESC')
+          .order(order_by)
       else
         nodes = Node.where(status: 1, type: node_type)
           .includes(:revision, :tag)
           .references(:term_data, :node_revisions)
           .where('term_data.name = ? OR term_data.parent = ?', params[:id], params[:id])
           .paginate(page: params[:page], per_page: 24)
-          .order('node_revisions.timestamp DESC')
+          .order(order_by)
       end
     end
     nodes = nodes.where(created: @start.to_i..@end.to_i) if @start && @end
  • 💾 Commit your changes

  • 🔀 Start a Pull Request. There are two ways how you can start a pull request:

  1. If you are familiar with the terminal or would like to learn it, here is a great tutorial on how to send a pull request using the terminal.

  2. You can also edit files directly in your browser and open a pull request from there.

  • 🏁 Done Ask in comments for a review :)

🤔 Questions?

Leave a comment below!

Is someone else already working on this?

We encourage you to link to this issue by mentioning the issue # in your pull request, so we can see if someone's already started on it. If someone seem stuck, offer them some help! Otherwise, take a look at some other issues you can help with. Thanks!

(This issue was created by First-Timers-Bot.)

@jywarren

This comment has been minimized.

Show comment
Hide comment
@jywarren

jywarren Sep 24, 2018

Contributor

This one is for @nwyll!

Contributor

jywarren commented Sep 24, 2018

This one is for @nwyll!

@jywarren

This comment has been minimized.

Show comment
Hide comment
@jywarren

jywarren Sep 24, 2018

Contributor

If you have the code running on your own machine, once this is implemented, you should be able to test it out by going to:

http://localhost:3000/tag/test?order=likes

Once it's finally done and published, it'll appear at:

https://publiclab.org/tag/test?order=likes

Contributor

jywarren commented Sep 24, 2018

If you have the code running on your own machine, once this is implemented, you should be able to test it out by going to:

http://localhost:3000/tag/test?order=likes

Once it's finally done and published, it'll appear at:

https://publiclab.org/tag/test?order=likes

@avsingh999

This comment has been minimized.

Show comment
Hide comment
@avsingh999

avsingh999 Sep 24, 2018

Member

@jywarren can i work on this issue

Member

avsingh999 commented Sep 24, 2018

@jywarren can i work on this issue

@nwyll

This comment has been minimized.

Show comment
Hide comment
@nwyll

nwyll Sep 24, 2018

nwyll commented Sep 24, 2018

nwyll added a commit to nwyll/plots2 that referenced this issue Sep 24, 2018

nwyll added a commit to nwyll/plots2 that referenced this issue Sep 24, 2018

@nwyll nwyll referenced this issue Sep 24, 2018

Open

Update app/controllers/tag_controller.rb #3430

5 of 5 tasks complete
@SidharthBansal

This comment has been minimized.

Show comment
Hide comment
@SidharthBansal

SidharthBansal Sep 25, 2018

Member

@avsingh you are assigned another fto. #3423 After completing that you can explore various help wanted issues at public lab.

This issue is assigned to @nwyll by Jeff.

We want more people to work at public labs so we generally assign a single fto to a single person.
Thanks

Member

SidharthBansal commented Sep 25, 2018

@avsingh you are assigned another fto. #3423 After completing that you can explore various help wanted issues at public lab.

This issue is assigned to @nwyll by Jeff.

We want more people to work at public labs so we generally assign a single fto to a single person.
Thanks

@avsingh999

This comment has been minimized.

Show comment
Hide comment
@avsingh999

avsingh999 Sep 25, 2018

Member

No problem but @SidharthBansal i have send pr to this issue #3423

Member

avsingh999 commented Sep 25, 2018

No problem but @SidharthBansal i have send pr to this issue #3423

@jywarren

This comment has been minimized.

Show comment
Hide comment
@jywarren

jywarren Sep 28, 2018

Contributor

Just noting that we're still working with @nwyll on this one in #3430

Thanks!

Contributor

jywarren commented Sep 28, 2018

Just noting that we're still working with @nwyll on this one in #3430

Thanks!

@albanmahmut

This comment has been minimized.

Show comment
Hide comment
@albanmahmut

albanmahmut Oct 17, 2018

I changed the lines and committed. PR already, can you see it? #3419

albanmahmut commented Oct 17, 2018

I changed the lines and committed. PR already, can you see it? #3419

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment