Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoralaaosh <alaaosh@54714841-351b-0410-a198-e36a94b762f5>2009-12-14 23:48:44 (GMT)
committer Sayamindu Dasgupta <sayamindu@gmail.com>2010-01-08 22:37:51 (GMT)
commit05bccad2468d0facd6fe89919b59d15396f350c2 (patch)
tree5792e8f0aa35847566e662c6bb293f4ab43e4b68
parentbec67a2ab285629c4eb2aabe209166d9ae8942de (diff)
gracefully handle users who change permissions but forget to choose a profile
git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/Pootle-2.0/Pootle@13505 54714841-351b-0410-a198-e36a94b762f5
-rw-r--r--Pootle-2.0.0/local_apps/pootle_app/views/language/admin_permissions.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/Pootle-2.0.0/local_apps/pootle_app/views/language/admin_permissions.py b/Pootle-2.0.0/local_apps/pootle_app/views/language/admin_permissions.py
index f75a02f..672748b 100644
--- a/Pootle-2.0.0/local_apps/pootle_app/views/language/admin_permissions.py
+++ b/Pootle-2.0.0/local_apps/pootle_app/views/language/admin_permissions.py
@@ -169,8 +169,8 @@ def get_permission_data(directory):
permission_data.append({'id': None,
'permissions': [permission for permission in default_permissions],
'username': '',
- 'profiles': u'None',
- 'profile_data': [(u'None', '')] + [(profile.id, profile.user.username)
+ 'profiles': None,
+ 'profile_data': [(None, '')] + [(profile.id, profile.user.username)
for profile in profiles_without_permissions],
'new': True})
return permission_data
@@ -191,12 +191,12 @@ def process_update(request, directory):
return deleted_forms, changed_forms
def get_permission_set(form):
+ if form.is_new_user() and form.cleaned_data['profiles'].isdigit():
permission_set = PermissionSet(profile_id=int(form.cleaned_data['profiles']), directory=directory)
- if form.is_new_user():
permission_set.save()
return permission_set
+ elif form.cleaned_data['id'] is not None:
return PermissionSet.objects.get(pk=form.cleaned_data['id'])
- else:
if request.method == 'POST':
permission_set_formset = PermissionSetFormSet(data=request.POST, initial=get_permission_data(directory))
@@ -212,6 +212,8 @@ def process_update(request, directory):
for form in changed_forms:
permission_set = get_permission_set(form)
+ if permission_set is None:
+ continue
# pootle_permissions is a (permission codename ->
# PermissionSet) dict. We get the permission codenames
# from form['permissions'].data.