summaryrefslogtreecommitdiff
path: root/chimere/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2012-10-08 16:03:31 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2012-10-08 16:03:31 +0200
commitaa7386a2eadcfba26aafba790bb649533066f435 (patch)
treed08c9d14c703c26b2841bc6c4e5a7764a798b2d3 /chimere/models.py
parent2b138ae34c3fc6d5443c1ae228a0d552eb4df37b (diff)
downloadChimère-aa7386a2eadcfba26aafba790bb649533066f435.tar.bz2
Chimère-aa7386a2eadcfba26aafba790bb649533066f435.zip
Fix area moderation
Diffstat (limited to 'chimere/models.py')
-rw-r--r--chimere/models.py18
1 files changed, 16 insertions, 2 deletions
diff --git a/chimere/models.py b/chimere/models.py
index 3767fcb..593d712 100644
--- a/chimere/models.py
+++ b/chimere/models.py
@@ -26,15 +26,16 @@ from lxml import etree
from PIL import Image
from subprocess import Popen, PIPE
+from django import forms
from django.conf import settings
+from django.contrib import admin
+from django.contrib.auth.models import Permission, ContentType
from django.contrib.gis.db import models
from django.contrib.gis.gdal import SpatialReference
-from django.contrib import admin
from django.core.files import File
from django.core.exceptions import ValidationError, ObjectDoesNotExist
from django.core.urlresolvers import reverse
from django.db.models.signals import post_save, pre_save, m2m_changed
-from django import forms
from django.template import defaultfilters
from django.utils.translation import ugettext_lazy as _
@@ -1162,6 +1163,19 @@ def area_post_save(sender, **kwargs):
for default in defaults:
default.default = False
default.save()
+ if not area.urn:
+ area.urn = defaultfilters.slugify(area.name)
+ area.save()
+ mnemo = 'change_area_' + area.urn
+ perm = Permission.objects.filter(codename=mnemo)
+ if not perm.count():
+ lbl = "Can change " + area.name
+ content_type = ContentType.objects.get(app_label="chimere",
+ model="area")
+ perm = Permission(name=lbl, content_type_id=content_type.id,
+ codename=mnemo)
+ perm.save()
+
post_save.connect(area_post_save, sender=Area)
class AreaLayers(models.Model):