diff options
Diffstat (limited to 'chimere/models.py')
| -rw-r--r-- | chimere/models.py | 18 |
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): |
