Commit 20c07e00 authored by Michal Čihař's avatar Michal Čihař

Exclude own actions from notifications (issue #147)

parent 22a68aad
......@@ -97,20 +97,24 @@ class ProfileManager(models.Manager):
'''
Manager providing shortcuts for subscription queries.
'''
def subscribed_any_translation(self, project, language):
return self.filter(subscribe_any_translation = True, subscriptions = project, languages = language)
def subscribed_any_translation(self, project, language, user):
return self.filter(subscribe_any_translation = True, subscriptions = project, languages = language).exclude(user = user)
def subscribed_new_string(self, project, language):
return self.filter(subscribe_new_string = True, subscriptions = project, languages = language)
def subscribed_new_suggestion(self, project, language):
return self.filter(subscribe_new_suggestion = True, subscriptions = project, languages = language)
def subscribed_new_suggestion(self, project, language, user):
ret = self.filter(subscribe_new_suggestion = True, subscriptions = project, languages = language)
# We don't want to filter out anonymous user
if user.is_authenticated():
ret = ret.exclude(user = user)
return ret
def subscribed_new_contributor(self, project, language):
return self.filter(subscribe_new_contributor = True, subscriptions = project, languages = language)
def subscribed_new_contributor(self, project, language, user):
return self.filter(subscribe_new_contributor = True, subscriptions = project, languages = language).exclude(user = user)
def subscribed_new_comment(self, project, language):
ret = self.filter(subscribe_new_comment = True, subscriptions = project)
def subscribed_new_comment(self, project, language, user):
ret = self.filter(subscribe_new_comment = True, subscriptions = project).exclude(user = user)
# Source comments go to every subscriber
if language is not None:
ret = ret.filter(languages = language)
......
......@@ -2150,7 +2150,8 @@ class Unit(models.Model):
# Notify subscribed users about new translation
subscriptions = Profile.objects.subscribed_any_translation(
self.translation.subproject.project,
self.translation.language
self.translation.language,
request.user
)
for subscription in subscriptions:
subscription.notify_any_translation(self, oldunit)
......@@ -2160,7 +2161,8 @@ class Unit(models.Model):
# Get list of subscribers for new contributor
subscriptions = Profile.objects.subscribed_new_contributor(
self.translation.subproject.project,
self.translation.language
self.translation.language,
request.user
)
for subscription in subscriptions:
subscription.notify_new_contributor(self.translation, request.user)
......
......@@ -915,7 +915,7 @@ def translate(request, project, subproject, lang):
unit.translation.invalidate_cache('suggestions')
# Notify subscribed users
from weblate.accounts.models import Profile
subscriptions = Profile.objects.subscribed_new_suggestion(obj.subproject.project, obj.language)
subscriptions = Profile.objects.subscribed_new_suggestion(obj.subproject.project, obj.language, request.user)
for subscription in subscriptions:
subscription.notify_new_suggestion(obj, sug)
# Update suggestion stats
......@@ -1191,7 +1191,7 @@ def comment(request, pk):
messages.info(request, _('Posted new comment'))
# Notify subscribed users
from weblate.accounts.models import Profile, send_notification_email
subscriptions = Profile.objects.subscribed_new_comment(obj.translation.subproject.project, lang)
subscriptions = Profile.objects.subscribed_new_comment(obj.translation.subproject.project, lang, request.user)
for subscription in subscriptions:
subscription.notify_new_comment(obj, comment)
# Notify upstream
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment