Commit eb36c9df authored by Weblate's avatar Weblate

Merge remote-tracking branch 'origin/master'

parents ddcf3fd8 20c07e00
...@@ -97,20 +97,24 @@ class ProfileManager(models.Manager): ...@@ -97,20 +97,24 @@ class ProfileManager(models.Manager):
''' '''
Manager providing shortcuts for subscription queries. Manager providing shortcuts for subscription queries.
''' '''
def subscribed_any_translation(self, project, language): def subscribed_any_translation(self, project, language, user):
return self.filter(subscribe_any_translation = True, subscriptions = project, languages = language) return self.filter(subscribe_any_translation = True, subscriptions = project, languages = language).exclude(user = user)
def subscribed_new_string(self, project, language): def subscribed_new_string(self, project, language):
return self.filter(subscribe_new_string = True, subscriptions = project, languages = language) return self.filter(subscribe_new_string = True, subscriptions = project, languages = language)
def subscribed_new_suggestion(self, project, language): def subscribed_new_suggestion(self, project, language, user):
return self.filter(subscribe_new_suggestion = True, subscriptions = project, languages = language) 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): def subscribed_new_contributor(self, project, language, user):
return self.filter(subscribe_new_contributor = True, subscriptions = project, languages = language) return self.filter(subscribe_new_contributor = True, subscriptions = project, languages = language).exclude(user = user)
def subscribed_new_comment(self, project, language): def subscribed_new_comment(self, project, language, user):
ret = self.filter(subscribe_new_comment = True, subscriptions = project) ret = self.filter(subscribe_new_comment = True, subscriptions = project).exclude(user = user)
# Source comments go to every subscriber # Source comments go to every subscriber
if language is not None: if language is not None:
ret = ret.filter(languages = language) ret = ret.filter(languages = language)
......
...@@ -2150,7 +2150,8 @@ class Unit(models.Model): ...@@ -2150,7 +2150,8 @@ class Unit(models.Model):
# Notify subscribed users about new translation # Notify subscribed users about new translation
subscriptions = Profile.objects.subscribed_any_translation( subscriptions = Profile.objects.subscribed_any_translation(
self.translation.subproject.project, self.translation.subproject.project,
self.translation.language self.translation.language,
request.user
) )
for subscription in subscriptions: for subscription in subscriptions:
subscription.notify_any_translation(self, oldunit) subscription.notify_any_translation(self, oldunit)
...@@ -2160,7 +2161,8 @@ class Unit(models.Model): ...@@ -2160,7 +2161,8 @@ class Unit(models.Model):
# Get list of subscribers for new contributor # Get list of subscribers for new contributor
subscriptions = Profile.objects.subscribed_new_contributor( subscriptions = Profile.objects.subscribed_new_contributor(
self.translation.subproject.project, self.translation.subproject.project,
self.translation.language self.translation.language,
request.user
) )
for subscription in subscriptions: for subscription in subscriptions:
subscription.notify_new_contributor(self.translation, request.user) subscription.notify_new_contributor(self.translation, request.user)
......
...@@ -915,7 +915,7 @@ def translate(request, project, subproject, lang): ...@@ -915,7 +915,7 @@ def translate(request, project, subproject, lang):
unit.translation.invalidate_cache('suggestions') unit.translation.invalidate_cache('suggestions')
# Notify subscribed users # Notify subscribed users
from weblate.accounts.models import Profile 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: for subscription in subscriptions:
subscription.notify_new_suggestion(obj, sug) subscription.notify_new_suggestion(obj, sug)
# Update suggestion stats # Update suggestion stats
...@@ -1191,7 +1191,7 @@ def comment(request, pk): ...@@ -1191,7 +1191,7 @@ def comment(request, pk):
messages.info(request, _('Posted new comment')) messages.info(request, _('Posted new comment'))
# Notify subscribed users # Notify subscribed users
from weblate.accounts.models import Profile, send_notification_email 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: for subscription in subscriptions:
subscription.notify_new_comment(obj, comment) subscription.notify_new_comment(obj, comment)
# Notify upstream # 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