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): | 
