Skip to content
This repository has been archived by the owner on Aug 26, 2022. It is now read-only.

Watch tree 842340 #3602

Merged
merged 19 commits into from
Nov 12, 2015
Merged

Watch tree 842340 #3602

merged 19 commits into from
Nov 12, 2015

Conversation

groovecoder
Copy link
Contributor

Spot-check instructions:

  1. Sign in
  2. Go to a doc with a sub-article
  3. Under the advanced menu, click the "Subscribe to this article and all its sub-articles"
    • Verify the subscription notification UI is correct
  4. Sign in as a different user
  5. Go to the sub-article
  6. Edit the sub-article
  7. Check the ./manage.py worker console output.
    • Verify our notification email is sent to the user who subscribed to the article + sub-articles. E.g.:
...
Subject: [MDN] Page "groovechild" changed by DavidWalshOS
From: notifications@developer.mozilla.org
...
--
You are subscribed to edits on: User:groovecoder and all its sub-articles.
Unsubscribe from these emails:
https://example.com/unsubscribe/14?s=dCvbUfbpab

BONUS spot-check waffle flag:
8. Add a waffle flag called watch_menu and activate it for a user
9. Visit a doc with a sub-article as the user

  • Verify there's a new UI "eye" element with the Subscribe links inside
  • Tests
  • Analytics tracking for split-testing
  • Bug 1218448 - Subscribe to article: notification never dismisses
  • Feedback from @stephaniehobson on this UI approach: moving all of the "subscribe" page items into their own page nav menu:
    doc-watch-menu

On non-English pages, there are 3 items in the menu:

doc-watch-menu-fr

@stephaniehobson
Copy link
Contributor

TL;DR I like this direction I want to A/B test to make sure we don't lose edits to clutter.

I don't know if it's a good idea to be adding buttons to the interface. Another display option here would be to separate them within the menu using a dotted line.

screen shot 2015-10-26 at 21 00 43

But I know that you know that subscriptions increase return visits so I'm not sure how to weigh more subscriptions vs clutter. Maybe we could get @hoosteeno to weigh in?

If we're going to increase the prominence of these options now's a good time to play around with them. There are so many good opportunities for A/B testing here:

  • "subscribe to this article" vs "email me when this article updates"
  • eye icon vs feed icon vs email icon (the eye icon is occasionally used for accessibility options probably not often enough that it's a problem but worth testing)

@jezdez
Copy link
Contributor

jezdez commented Oct 27, 2015

Minor nit, I think "children" is a bit of a misleading term for describing subpages as it implies that users know our data tree model. Could we call it "section"? Or maybe "subpages"?

@groovecoder
Copy link
Contributor Author

Great comments.

I'll re-use the term "sub-articles" that we use in the advanced menu. (i.e., "New sub-article")

I'll start by split-testing between:

  • Separate "Subscribe" menu with eye icon
  • "Subscribe" menu options in the Advanced menu, separated by a dotted line

Let's test that for a week or more, then look at testing verbage and iconography.

@stephaniehobson - do we already have an element (<hr/>?) or class for an <li> separator?

@groovecoder groovecoder force-pushed the watch-tree-842340 branch 2 times, most recently from 261bbfc to 6792b70 Compare October 27, 2015 12:49
@groovecoder
Copy link
Contributor Author

Updated with a watch_menu flag to allow us to split-test ...

mdn-watch-tree-split

Need to add tests now.

@groovecoder
Copy link
Contributor Author

Okay, this is ready for final review & spot-checking. Who wants it? @stephaniehobson for front-end & spot-check? @robhudson, @jwhitlock, or @jezdez for back-end code review?

@groovecoder
Copy link
Contributor Author

Also rebased this on latest master.

@stephaniehobson
Copy link
Contributor

If you put two lists next to each other in a navigation drop down the border should appear automatically, sorry, should have said.

@jwhitlock jwhitlock self-assigned this Oct 28, 2015
@stephaniehobson
Copy link
Contributor

includes the link to subscribe to sub-articles but it has no sub-articles

Some tags around the language will save us some RTL headaches.

Subscribe to <bdi>English (US)</bdi> version

After subscribing to a tree, when visiting a child article there is no indication for the user that they are already subscribed to that article. Is it even possible to subscribe to a tree and than unsubscribe from a child? If the user is subscribed to both the tree and the child will they get duplicate email notifications? Is this a toggle - if I subscribe to the tree and then subscribe to the article have I actually unsubscribed?

I think we can answer some of these questions by including some text in the menu if they are subscribed to the tree already. Something like "You are subscribed to this article's parent and all of its children", only more clear and friendly than what I scribble in a github comment box 8 minutes before I have to leave to catch a flight.

Wasn't able to test the emails actually sending, happy to do it on Friday if it still needs doing but I'll need more detailed steps. Anyway, going to go get on a plane now.

verify expected emails in tests
{{ _('You are subscribed to edits on: {title} and all its sub-articles.')|f(title=title) }}
{% else %}
{{ _('You are subscribed to edits on: {title}.')|f(title=title) }}
{% endif %}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this is an email, do you want to use jinja2 whitespace eating tags? Or do you want those strings indented?

@groovecoder
Copy link
Contributor Author

So, the first implementation I have for showing the parent tree subscription(s) to the user is simply putting an "Unsubscribe" link for each parent tree the user is watching in the menu. It's not pretty, and it could get fugly if users watch multiple trees above a doc. (Though I'm not sure why they would?)
mdn-watch-menu-tree-unsubscribes
Would probably like some better UX/UI direction before merging this. 😐 @stephaniehobson - more suggestions?

data)
self.assertEquals(2, len(mail.outbox))
message = mail.outbox[0]
assert testuser2.email in message.to
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

any reason to not use self.assertIn here? I'm all for using native assert statements in tests, but that'd be a third option of conventions in our tests. I'd rather move us to pure Django tests that offer stuff like self.assertIn :-/

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In today's backend meeting we agreed to start removing nose assertion helpers to cut down on the different number of conventions in our tests. Going to leave this as-is unless/until we start removing native asserts.

@groovecoder
Copy link
Contributor Author

Assigning to @stephaniehobson to review (and hopefully not puke from) my proposed just-stick-it-in-the-menu UX approach.

@stephaniehobson
Copy link
Contributor

Needs a rebase :/

@stephaniehobson
Copy link
Contributor

Small problem with the HTML escaping:

screen shot 2015-11-09 at 15 36 27

Suggestions (not blocking):

  • put the article title in italics in the menu
  • re-order the menus so that events relating to the page the user is on are grouped together (ie, Add detail to setup description #1 is always (un)subscribe to this article and Bug 674755 #2 is always (un)subscribe to this article and sub-articles)

R+ after rebase, changes are optional.

@stephaniehobson
Copy link
Contributor

Oh, except fixing the problem with the HTML escaping. That's not optional.

Conflicts:
	kuma/wiki/events.py
	kuma/wiki/views/document.py
@groovecoder
Copy link
Contributor Author

Merge was easier than rebase. Looking into the rest ...

move parent tree watch links below page watch links
@groovecoder
Copy link
Contributor Author

  • Escaped the doc title in tree menu items.
  • Moved tree items below page items.
    Italicizing the page title and escaping it at the same time will be tricky, so I'm leaving that for a follow-up enhancement.

@groovecoder
Copy link
Contributor Author

Assigning to @stephaniehobson to double-check my updates. Then this is good to merge.

@stephaniehobson
Copy link
Contributor

Quotes around the article name instead of italics would also be an improvement, but not one to block on ;)

R+

stephaniehobson added a commit that referenced this pull request Nov 12, 2015
@stephaniehobson stephaniehobson merged commit e833a8b into master Nov 12, 2015
@groovecoder groovecoder deleted the watch-tree-842340 branch November 23, 2015 13:47
@groovecoder
Copy link
Contributor Author

After the first week of ~50/50 split testing ...

The separate watch menu doesn't seem to have much effect on users clicking the "Edit" button. Conversion rate with the separate watch menu is 0.04% vs. 0.03% with the watch items included in the "Advanced" menu. (Note: I haven't done a full statistical analysis on the level of Optimizely testing.)

watch-menu-week-edit-goal

In addition, the extra menu doesn't seem to have much effect on users going to the "Translate" screen either. Conversion rate with the separate watch menu is 0.03% vs. 0.02% with the watch items included in the "Advanced" menu. (Again, I haven't done a full statistical analysis on the level of Optimizely testing.)

watch-menu-week-translate-goal

There even less data for the new "Watch" goal, but there are 2x as many conversions with the separate watch menu so far.

watch-menu-week-watch-goal

With all that said, I'm leaning towards keeping the separate watch menu and removing the items from the advanced menu. But, let's give it another week to collect some more data.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants