summaryrefslogtreecommitdiff
path: root/chimere/main/forms.py
diff options
context:
space:
mode:
authoretienne <etienne@9215b0d5-fb2c-4bbd-8d3e-bd2e9090e864>2010-03-14 18:35:23 +0000
committeretienne <etienne@9215b0d5-fb2c-4bbd-8d3e-bd2e9090e864>2010-03-14 18:35:23 +0000
commit64acbb356f5a177dc5bd80e7ad493ee554ca0e09 (patch)
tree8d3708eb5a235581d598cdbe672524f1d453df35 /chimere/main/forms.py
parent63a9537e7deeb473145512fe8a080c62ea62c2c7 (diff)
downloadChimère-64acbb356f5a177dc5bd80e7ad493ee554ca0e09.tar.bz2
Chimère-64acbb356f5a177dc5bd80e7ad493ee554ca0e09.zip
Correct projection problems on database #87 - Filter categories for moderator by area #88
git-svn-id: http://www.peacefrogs.net/svn/chimere/trunk@72 9215b0d5-fb2c-4bbd-8d3e-bd2e9090e864
Diffstat (limited to 'chimere/main/forms.py')
-rw-r--r--chimere/main/forms.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/chimere/main/forms.py b/chimere/main/forms.py
index 74577d1..4618321 100644
--- a/chimere/main/forms.py
+++ b/chimere/main/forms.py
@@ -23,7 +23,7 @@ Forms
from django import forms
from django.contrib.gis.db import models
from django.utils.translation import ugettext as _
-from django.contrib.auth.models import User
+from django.contrib.auth.models import User, Permission, ContentType
from django.core.mail import EmailMessage, BadHeaderError
from chimere import settings
@@ -250,4 +250,19 @@ class AreaAdminForm(forms.ModelForm):
new_area.upper_left_corner = 'POINT(%s %s)' % (area[0][0], area[0][1])
new_area.lower_right_corner = 'POINT(%s %s)' % (area[1][0],
area[1][1])
+ content_type = ContentType.objects.get(app_label="main",
+ model="area")
+ if new_area.urn:
+ mnemo = 'change_area_' + new_area.urn
+ perm = Permission.objects.filter(codename=mnemo)
+ if not perm:
+ perm = Permission(name='Can change ' + new_area.name,
+ content_type_id=content_type.id, codename=mnemo)
+ perm.save()
+ else:
+ if 'urn' in self.initial:
+ mnemo = 'change_area_' + self.initial['urn']
+ perm = Permission.objects.filter(codename=mnemo)
+ if perm:
+ perm[0].delete()
return new_area