Commit 11a906ef authored by Weblate's avatar Weblate

Merge remote-tracking branch 'origin/master'

parents 21a38080 d00ae81b
......@@ -2130,13 +2130,13 @@ class Translation(models.Model):
# Detect changes
if unit.target != get_target(pounit) or unit.fuzzy != pounit.isfuzzy():
# Update fuzzy flag
pounit.markfuzzy(unit.fuzzy)
# Store translations
if unit.is_plural():
pounit.settarget(unit.get_target_plurals())
else:
pounit.settarget(unit.target)
# Update fuzzy flag
pounit.markfuzzy(unit.fuzzy)
# Optionally add unit to translation file
if add:
if isinstance(store, LISAfile):
......@@ -2553,7 +2553,7 @@ class Unit(models.Model):
except FileLockException:
logger.error('failed to lock backend for %s!', self)
messages.error(request, _('Failed to store message in the backend, lock timeout occurred!'))
return
return False
# Handle situation when backend did not find the message
if pounit is None:
......@@ -2561,12 +2561,14 @@ class Unit(models.Model):
messages.error(request, _('Message not found in backend storage, it is probably corrupted.'))
# Try reloading from backend
self.translation.update_from_blob(True)
return
return False
# Return if there was no change
if not saved and propagate:
if not saved:
# Propagate if we should
if propagate:
self.propagate(request)
return
return False
# Update translated flag
self.translated = is_translated(pounit)
......@@ -2587,7 +2589,6 @@ class Unit(models.Model):
old_translated = self.translation.translated
self.translation.update_stats()
if saved:
# Notify subscribed users about new translation
subscriptions = Profile.objects.subscribed_any_translation(
self.translation.subproject.project,
......@@ -2597,6 +2598,11 @@ class Unit(models.Model):
for subscription in subscriptions:
subscription.notify_any_translation(self, oldunit)
# Update user stats
profile = request.user.get_profile()
profile.translated += 1
profile.save()
# Notify about new contributor
if not Change.objects.filter(translation=self.translation, user=request.user).exists():
# Get list of subscribers for new contributor
......@@ -2635,7 +2641,7 @@ class Unit(models.Model):
if propagate:
self.propagate(request)
return saved
return True
def save(self, *args, **kwargs):
'''
......
......@@ -1362,11 +1362,9 @@ def translate(request, project, subproject, lang):
# Update unit and save it
unit.target = join_plural(form.cleaned_data['target'])
unit.fuzzy = form.cleaned_data['fuzzy']
unit.save_backend(request)
saved = unit.save_backend(request)
# Update stats
profile.translated += 1
profile.save()
if saved:
# Get new set of checks
newchecks = set(
unit.active_checks().values_list('check', flat=True)
......
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