Also add a unicode representation for WatchFilters so they show up in the admin UI informatively.
…y fails. * Add an is_active column. * Add stub implementation for confirmation email. * Update .notify() to send a confirmation email and raise an ActivationRequestFailed exception if the email message fails to send. * Add function Event._activation_email, which receives a watch and an email and returns an EmailMessage. * Make questions anonymous watches work, add extra views for confirming/unsubscribing from watches. * Add Event.get_activation_url() for use in email templates. * Add Event.get_watch_description() for events to describe their watches in string form. This comes in handy when sending out emails, to explain why the receiver is getting this. * Catch SMTPRecipientsRefused exception and show message about it. * Update wiki tests.
Leave EventWatch there for the moment so migrations can use it.
…Django cascading deletes to remove watches to deleted objects.
Add a task and fire it off on user activation, i.e. after we know email is valid.
…inks. Fixes bug 632041.
* QuestionEvent abstraction for common __init__() stuff * QuestionReplyEvent, QuestionSolvedEvent for new answers/new solutions. * WatchQuestionForm tests, also don't allow logged-in users to override what email the notification goes to. (I.e. improve WatchQuestionForm validation) * Update templates to reflect new notification.
When you edit a localized document 'based on' a previous revision of the *localized* document (i.e. not of the English doc) we were setting the 'based_on' value to a revision of the localized doc, not the English doc. Now we set the 'based_on' revision to the correct English document but still prefill the form with the revision of the localized document you're editing. Whew. STR: * Go to any localized article's history. * Pick any revision and 'edit based on this revision'. * Attempt to submit. Without this patch, you'll see an error. With it, everything should work. Also worth noting that the new test fails on master but passes here.
Mostly copied from forums notifications, including tests. * Refactor tests, add a test_views.py, like in forums app. * Add visual notification as in forums. * Add an attrs_eq to sumo.utils for checking email outputs. * Rename forums/kbforums events for clarity, now they are NewPostEvent, NewThreadEvent. * Fix some tests that weren't failing on this branch but were failing on master, by mock patching Site.objects.get_current()
…bles. Not factoring up search app's implementation of crc32() since the notifications app is going to break off anyway.
* Used it to replace our pop-in and fixed-modal code in wiki and questions. * Replace jquery.ui.dialog in Army of Awesome
Renumber Notifications migration to be at home on master.
…ore comprehensible. Throw ValueError when someone tries to exclude an unsaved user.
… according to new notifications API. I forgot about this, so add tests so this doesn't happen in the future.
… multiple instances of the same model in the process.