Skip to content
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

Some kind of "unsubscribe" from Q&A threads #1610

Open
jywarren opened this issue Sep 11, 2017 · 17 comments · Fixed by #3185
Open

Some kind of "unsubscribe" from Q&A threads #1610

jywarren opened this issue Sep 11, 2017 · 17 comments · Fixed by #3185
Assignees
Labels
enhancement explains that the issue is to improve upon one of our existing features in progress

Comments

@jywarren
Copy link
Member

We're starting to get threads that are long and active enough that people want to unsubscribe, like this one:

https://publiclab.org/questions/warren/09-08-2017/how-do-you-merge-gps-logger-data-into-photographs#answer-385-comment

This level of email notification is actually a fairly new feature and we haven't implemented an unsubscribe yet. GitHub has the "Not Watching/Watching/Ignoring" resolution but also the "following this thread" one... needs some thinking through.

The current system looks for /all/ thread participants, using this method for new comments:

https://github.com/publiclab/plots2/blob/master/app/models/comment.rb#L106

And this one for new answers:

https://github.com/publiclab/plots2/blob/master/app/models/answer.rb#L27

If we were to offer an unsubscribe, we might need to change this system to actually add people as "likers" or "followers" when they comment or answer, so we could delete their "following" status even though they participated in the thread, and we don't delete their comment or answer itself.

This could be complex and we may want to start by looking at how the "subscribe to thread" mechanism works, using node_selection rather than directly counting comments.

@jywarren jywarren added the enhancement explains that the issue is to improve upon one of our existing features label Sep 11, 2017
@jywarren
Copy link
Member Author

@jlev thanks!

@jywarren
Copy link
Member Author

@Gauravano is solving this in #3119, i believe!

@grvsachdeva
Copy link
Member

You got it right @jywarren

@grvsachdeva
Copy link
Member

Actually, #3119 is a small part of this unsubscribe system, we want to build. Currently, a user can unsubscribe from the the

  1. Like notifications (user being author)
  2. Comment notifications (user being author)
  3. Indirect comment notification (user being commenter)

@jywarren we need to add more points to this, what do you think?

@jywarren
Copy link
Member Author

jywarren commented Jul 23, 2018 via email

@grvsachdeva
Copy link
Member

yes answer notifications and unsubscribing from a node like @shapironick mentioned here #2910 (comment) . What do you think?

@grvsachdeva grvsachdeva mentioned this issue Jul 26, 2018
5 tasks
@jywarren
Copy link
Member Author

agreed, so this is 2 additional types of unsubscribe?

Would Nick's suggestion be like, commented on a note but no longer want to be updated -- and how would we store that? Could we... store a "silence this thread" somewhere?

@grvsachdeva
Copy link
Member

I think what we can do is: We can add button on each note labeled as "Silence this thread". That would block all notifications from that node- be it comments, like, etc. We need to put some more checks in this, but I guess its doable. And, we need to store this in a table may be NodeSelection otherwise usertags would fill up fastly. What do you think about this @jywarren ?

@jywarren
Copy link
Member Author

jywarren commented Jul 26, 2018 via email

@grvsachdeva
Copy link
Member

The button can be added at many places, I guess we can come to that later. I will first see all places where NodeSelection is used, so that we don't mess up with any previous feature/function. Thanks!

@grvsachdeva
Copy link
Member

grvsachdeva commented Jul 30, 2018

Hi @jywarren I spent some time with NodeSelection, so here's the current situation. NodeSelection has these columns - uid, nid, following, liking. We use liking on our website actively. Coming to column following, I wasn't able to found any active functionality related to it, you have any idea?
Or, we can add new column like notification or subscription to the NodeSelection for storing the status. What do you think? Thanks!

@jywarren
Copy link
Member Author

jywarren commented Jul 30, 2018 via email

@grvsachdeva
Copy link
Member

ok, so we are using following, for saving status. Ok, so I will raise a PR for migration as we need to change the following of all existing nodeselection rows to true and also we need to set default to true. What do you think @jywarren ? Thanks!

@grvsachdeva
Copy link
Member

@jywarren so can I go for the above strategy?

@jywarren
Copy link
Member Author

jywarren commented Jul 31, 2018 via email

@grvsachdeva
Copy link
Member

grvsachdeva commented Aug 2, 2018

Checklist for the Node Un-subscription:

  • Make a migration for changing the default to true for new NodeSelection entries
  • Migration for changing following column in NodeSelection to true for present rows in DB
  • A controller method for handling subscribing and unsubscribing to node
  • before sending email, a check which would ensure that email should not be sent to the user if he has un-subscribed to that node
  • test for Emails

@jywarren I am following this checklist for this issue. Please add/change if I am forgetting something. Thanks!

@jywarren
Copy link
Member Author

jywarren commented Aug 2, 2018 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement explains that the issue is to improve upon one of our existing features in progress
Projects
None yet
2 participants