Commit 82e70dcc authored by Michal Čihař's avatar Michal Čihař

Check for file lock error when updating repository

Signed-off-by: default avatarMichal Čihař <michal@cihar.com>
parent d9fc28cf
......@@ -25,6 +25,7 @@ from django.contrib.auth.decorators import login_required, permission_required
from weblate.trans.views.helper import (
get_project, get_subproject, get_translation
)
from weblate.trans.filelock import FileLockException
@login_required
......@@ -60,15 +61,27 @@ def commit_translation(request, project, subproject, lang):
return redirect(obj)
def perform_update(request, obj):
"""
Helper function to do the repository update.
"""
try:
if obj.do_update(request, method=request.GET.get('method', None)):
messages.success(request, _('All repositories were updated.'))
except FileLockException:
messages.error(
request,
_('Failed to update repository, another update in progress.')
)
return redirect(obj)
@login_required
@permission_required('trans.update_translation')
def update_project(request, project):
obj = get_project(request, project)
if obj.do_update(request, method=request.GET.get('method', None)):
messages.success(request, _('All repositories were updated.'))
return redirect(obj)
return perform_update(request, obj)
@login_required
......@@ -76,10 +89,7 @@ def update_project(request, project):
def update_subproject(request, project, subproject):
obj = get_subproject(request, project, subproject)
if obj.do_update(request, method=request.GET.get('method', None)):
messages.success(request, _('All repositories were updated.'))
return redirect(obj)
return perform_update(request, obj)
@login_required
......@@ -87,10 +97,7 @@ def update_subproject(request, project, subproject):
def update_translation(request, project, subproject, lang):
obj = get_translation(request, project, subproject, lang)
if obj.do_update(request, method=request.GET.get('method', None)):
messages.success(request, _('All repositories were updated.'))
return redirect(obj)
return perform_update(request, obj)
@login_required
......
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