def watch_locale(request): """Start watching a locale for revisions ready for review.""" ReviewableRevisionInLocaleEvent.notify(request.user, locale=request.LANGUAGE_CODE) statsd.incr('wiki.watches.locale') # A 200 so jQuery interprets it as success return HttpResponse()
def render_readouts(request, readouts, template, locale=None, extra_data=None, product=None): """Render a readouts, possibly with overview page. Use the given template, pass the template the given readouts, limit the considered data to the given locale, and pass along anything in the `extra_data` dict to the template in addition to the standard data. """ current_locale = locale or request.LANGUAGE_CODE on_default_locale = request.LANGUAGE_CODE == settings.WIKI_DEFAULT_LANGUAGE default_kwargs = { 'locale': settings.WIKI_DEFAULT_LANGUAGE, } locale_kwargs = { 'locale': request.LANGUAGE_CODE, } ready_kwargs = {} if product is not None: default_kwargs['product'] = product.slug locale_kwargs['product'] = product.slug ready_kwargs['product'] = product.slug data = {'readouts': SortedDict((slug, class_(request, locale=locale, product=product)) for slug, class_ in readouts.iteritems() if class_.should_show_to(request)), 'default_locale': settings.WIKI_DEFAULT_LANGUAGE, 'default_locale_name': LOCALES[settings.WIKI_DEFAULT_LANGUAGE].native, 'current_locale': current_locale, 'current_locale_name': LOCALES[current_locale].native, 'request_locale_name': LOCALES[request.LANGUAGE_CODE].native, 'is_watching_default_approved': ApproveRevisionInLocaleEvent.is_notifying( request.user, **default_kwargs), 'is_watching_other_approved': None if on_default_locale else ApproveRevisionInLocaleEvent.is_notifying( request.user, **locale_kwargs), 'is_watching_default_locale': ReviewableRevisionInLocaleEvent.is_notifying( request.user, **default_kwargs), 'is_watching_other_locale': None if on_default_locale else ReviewableRevisionInLocaleEvent.is_notifying( request.user, **locale_kwargs), 'is_watching_default_ready': ReadyRevisionEvent.is_notifying(request.user, **ready_kwargs), 'on_default_locale': on_default_locale, 'announce_form': AnnouncementForm(), 'announcements': Announcement.get_for_locale_name(current_locale), 'product': product, 'products': Product.objects.filter(visible=True), } if extra_data: data.update(extra_data) return render(request, 'dashboards/' + template, data)
def unwatch_locale(request, product=None): """Stop watching a locale for revisions ready for review.""" kwargs = {'locale': request.LANGUAGE_CODE} if product is not None: kwargs['product'] = product ReviewableRevisionInLocaleEvent.stop_notifying(request.user, **kwargs) return HttpResponse()
def watch_locale(request, product=None): """Start watching a locale for revisions ready for review.""" kwargs = {'locale': request.LANGUAGE_CODE} if product is not None: kwargs['product'] = product ReviewableRevisionInLocaleEvent.notify(request.user, **kwargs) statsd.incr('wiki.watches.locale') return HttpResponse()
def render_readouts(request, readouts, template, locale=None, extra_data=None, product=None): """Render a readouts, possibly with overview page. Use the given template, pass the template the given readouts, limit the considered data to the given locale, and pass along anything in the `extra_data` dict to the template in addition to the standard data. """ current_locale = locale or request.LANGUAGE_CODE on_default_locale = request.LANGUAGE_CODE == settings.WIKI_DEFAULT_LANGUAGE default_kwargs = { 'locale': settings.WIKI_DEFAULT_LANGUAGE, } locale_kwargs = { 'locale': request.LANGUAGE_CODE, } ready_kwargs = {} if product is not None: default_kwargs['product'] = product.slug locale_kwargs['product'] = product.slug ready_kwargs['product'] = product.slug data = { 'readouts': OrderedDict((slug, class_(request, locale=locale, product=product)) for slug, class_ in readouts.items() if class_.should_show_to(request)), 'default_locale': settings.WIKI_DEFAULT_LANGUAGE, 'default_locale_name': LOCALES[settings.WIKI_DEFAULT_LANGUAGE].native, 'current_locale': current_locale, 'current_locale_name': LOCALES[current_locale].native, 'request_locale_name': LOCALES[request.LANGUAGE_CODE].native, 'is_watching_default_approved': ApproveRevisionInLocaleEvent.is_notifying(request.user, **default_kwargs), 'is_watching_other_approved': ( None if on_default_locale else ApproveRevisionInLocaleEvent.is_notifying(request.user, **locale_kwargs)), 'is_watching_default_locale': ( ReviewableRevisionInLocaleEvent.is_notifying(request.user, **default_kwargs)), 'is_watching_other_locale': ( None if on_default_locale else ReviewableRevisionInLocaleEvent.is_notifying(request.user, **locale_kwargs)), 'is_watching_default_ready': ReadyRevisionEvent.is_notifying(request.user, **ready_kwargs), 'on_default_locale': on_default_locale, 'announce_form': AnnouncementForm(), 'announcements': Announcement.get_for_locale_name(current_locale), 'product': product, 'products': Product.objects.filter(visible=True), } if extra_data: data.update(extra_data) return render(request, 'dashboards/' + template, data)
def _save_rev_and_notify(rev_form, creator, document, based_on_id=None, base_rev=None): """Save the given RevisionForm and send notifications.""" new_rev = rev_form.save(creator, document, based_on_id, base_rev) statsd.incr('wiki.revision') # Enqueue notifications ReviewableRevisionInLocaleEvent(new_rev).fire(exclude=new_rev.creator) EditDocumentEvent(new_rev).fire(exclude=new_rev.creator)
def unwatch_locale(request): """Stop watching a locale for revisions ready for review.""" ReviewableRevisionInLocaleEvent.stop_notifying(request.user, locale=request.LANGUAGE_CODE) return HttpResponse()
def unwatch_locale(request): """Stop watching a locale for revisions ready for review.""" ReviewableRevisionInLocaleEvent.stop_notifying( request.user, locale=request.LANGUAGE_CODE) return HttpResponse()