summaryrefslogtreecommitdiff
path: root/chimere/main/forms.py
diff options
context:
space:
mode:
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