def handle_file_attached(event): """Handles event sent when a file is attached to a page""" names = set() request = event.request page = Page(request, event.pagename) subscribers = page.getSubscribers(request, return_users=1) notification.filter_subscriber_list(event, subscribers, True) recipients = [] for lang in subscribers: recipients.extend(subscribers[lang]) attachlink = request.getQualifiedURL(getAttachUrl(event.pagename, event.filename, request)) pagelink = request.getQualifiedURL(page.url(request, {})) for lang in subscribers.keys(): _ = lambda text: request.getText(text, lang=lang) data = notification.attachment_added(request, _, event.pagename, event.filename, event.size) links = [{'url': attachlink, 'description': _("Attachment link")}, {'url': pagelink, 'description': _("Page link")}] jids = [usr.jid for usr in subscribers[lang]] data['url_list'] = links data['action'] = "file_attached" if send_notification(request, jids, data): names.update(recipients) return notification.Success(names)
def handle_file_attached(event): """Sends an email to super users that have subscribed to this event type""" names = set() from_address = event.request.cfg.mail_from request = event.request page = Page(request, event.pagename) subscribers = page.getSubscribers(request, return_users=1) notification.filter_subscriber_list(event, subscribers, False) recipients = [] for lang in subscribers: recipients.extend(subscribers[lang]) attachlink = request.getBaseURL() + getAttachUrl(event.pagename, event.filename, request) pagelink = request.getQualifiedURL(page.url(request, {})) for lang in subscribers: emails = [] _ = lambda text: request.getText(text, lang=lang) links = _("Attachment link: %(attach)s\n" \ "Page link: %(page)s\n") % {'attach': attachlink, 'page': pagelink} data = notification.attachment_added(request, _, event.pagename, event.filename, event.size) data['text'] = data['text'] + links emails = [usr.email for usr in subscribers[lang]] if send_notification(request, from_address, emails, data): names.update(recipients) return notification.Success(names)
def handle_file_attached(event): """Handles event sent when a file is attached to a page""" names = set() request = event.request page = Page(request, event.pagename) subscribers = page.getSubscribers(request, return_users=1) notification.filter_subscriber_list(event, subscribers, True) recipients = [] for lang in subscribers: recipients.extend(subscribers[lang]) attachlink = request.getQualifiedURL(getAttachUrl(event.pagename, event.filename, request)) pagelink = request.getQualifiedURL(page.url(request, {})) for lang in subscribers.keys(): _ = lambda text: request.getText(text, lang=lang) data = notification.attachment_added(request, _, event.pagename, event.filename, event.size) links = [{'url': attachlink, 'description': _("Attachment link")}, {'url': pagelink, 'description': _("Page link")}] jids = [usr.jid for usr in subscribers[lang]] data['url_list'] = links data['action'] = "file_attached" if send_notification(request, jids, data): names.update(recipients) return notification.Success(names)
def handle_page_changed(event): """ Handles events related to page changes """ request = event.request page = event.page subscribers = page.getSubscribers(request, return_users=1) notification.filter_subscriber_list(event, subscribers, True) return page_change("page_changed", request, page, subscribers, revisions=page.getRevList(), comment=event.comment)
def handle_page_deleted(event): """Handles event sent when a page is deleted""" request = event.request page = event.page subscribers = page.getSubscribers(request, return_users=1) notification.filter_subscriber_list(event, subscribers, True) return page_change("page_deleted", request, page, subscribers)
def handle_page_changed(event): """ Handles events related to page changes """ request = event.request page = event.page subscribers = page.getSubscribers(request, return_users=1) notification.filter_subscriber_list(event, subscribers, True) return page_change("page_changed", request, page, subscribers, \ revisions=page.getRevList(), comment=event.comment)
def handle_page_deleted(event): """Handles event sent when a page is deleted""" request = event.request page = event.page subscribers = page.getSubscribers(request, return_users=1) notification.filter_subscriber_list(event, subscribers, True) return page_change("page_deleted", request, page, subscribers)
def test_filter_subscriber_list(request): user = User(request) event = events.Event(request) print "User is subscribed to this event on jabber." print "This means, that he should stay on the list." user.jid = "*****@*****.**" user.jabber_subscribed_events = [events.Event.__name__] subscribers = {"en": [user]} notification.filter_subscriber_list(event, subscribers, True) assert subscribers["en"] print "User is not subscribed to this event on jabber." print "The list should be empty." user.jid = "*****@*****.**" user.jabber_subscribed_events = [] subscribers = {"en": [user]} notification.filter_subscriber_list(event, subscribers, True) assert not subscribers["en"] print "User is subscribed to this event on email." print "This means, that he should stay on the list." user.email = "*****@*****.**" user.email_subscribed_events = [events.Event.__name__] subscribers = {"en": [user]} notification.filter_subscriber_list(event, subscribers, False) assert subscribers["en"] print "User is not subscribed to this event on email." print "The list should be empty." user.email = "*****@*****.**" user.email_subscribed_events = [] subscribers = {"en": [user]} notification.filter_subscriber_list(event, subscribers, False) assert not subscribers["en"]
def handle_page_renamed(event): """Handles event sent when a page is renamed""" request = event.request page = event.page old_name = event.old_page.page_name subscribers = page.getSubscribers(request, return_users=1) # Change request's page so that we filter subscribers of the OLD page request.page = event.old_page notification.filter_subscriber_list(event, subscribers, True) request.page = page return page_change("page_renamed", request, page, subscribers, old_name=old_name)
def test_filter_subscriber_list(request): user = User(request) event = events.Event(request) print "User is subscribed to this event on jabber." print "This means, that he should stay on the list." user.jid = "*****@*****.**" user.jabber_subscribed_events = [events.Event.__name__] subscribers = {"en": [user]} notification.filter_subscriber_list(event, subscribers, True) assert subscribers["en"] print "User is not subscribed to this event on jabber." print "The list should be empty." user.jid = "*****@*****.**" user.jabber_subscribed_events = [] subscribers = {"en": [user]} notification.filter_subscriber_list(event, subscribers, True) assert not subscribers["en"] print "User is subscribed to this event on email." print "This means, that he should stay on the list." user.email = "*****@*****.**" user.email_subscribed_events = [events.Event.__name__] subscribers = {"en": [user]} notification.filter_subscriber_list(event, subscribers, False) assert subscribers["en"] print "User is not subscribed to this event on email." print "The list should be empty." user.email = "*****@*****.**" user.email_subscribed_events = [] subscribers = {"en": [user]} notification.filter_subscriber_list(event, subscribers, False) assert not subscribers["en"]
def handle_page_renamed(event): """Handles event sent when a page is renamed""" request = event.request page = event.page old_name = event.old_page.page_name subscribers = page.getSubscribers(request, return_users=1) # Change request's page so that we filter subscribers of the OLD page request.page = event.old_page notification.filter_subscriber_list(event, subscribers, True) request.page = page return page_change("page_renamed", request, page, subscribers, old_name=old_name)
def handle_file_changed(event): """Sends an email to users that have subscribed to this event type""" names = set() from_address = event.request.cfg.mail_from request = event.request page = Page(request, event.pagename) if isinstance(event, ev.FileAttachedEvent): notification_fn = notification.attachment_added elif isinstance(event, ev.FileRemovedEvent): notification_fn = notification.attachment_removed subscribers = page.getSubscribers(request, return_users=1) notification.filter_subscriber_list(event, subscribers, False) recipients = [] for lang in subscribers: recipients.extend(subscribers[lang]) attachlink = request.getQualifiedURL( getAttachUrl(event.pagename, event.filename, request)) pagelink = request.getQualifiedURL(page.url(request, {})) for lang in subscribers: _ = lambda text: request.getText(text, lang=lang) links = _("Attachment link: %(attach)s\n" \ "Page link: %(page)s\n") % {'attach': attachlink, 'page': pagelink} data = notification_fn(request, _, event.pagename, event.filename, event.size) data['text'] = data['text'] + links emails = [usr.email for usr in subscribers[lang]] if send_notification(request, from_address, emails, data): names.update(recipients) return notification.Success(names)