diff options
| author | Étienne Loks <etienne.loks@peacefrogs.net> | 2013-06-16 21:02:24 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2013-06-16 21:02:24 +0200 | 
| commit | 81cc55bdada577a8b3c3cf1304f48c64810083aa (patch) | |
| tree | 1565a321cbe395e21d11687937fe86532dc58358 /chimere/models.py | |
| parent | 3635b97e30090c38946af1050a42fee8f6faca43 (diff) | |
| download | Chimère-81cc55bdada577a8b3c3cf1304f48c64810083aa.tar.bz2 Chimère-81cc55bdada577a8b3c3cf1304f48c64810083aa.zip  | |
Display/write rights management on maps
Diffstat (limited to 'chimere/models.py')
| -rw-r--r-- | chimere/models.py | 16 | 
1 files changed, 15 insertions, 1 deletions
diff --git a/chimere/models.py b/chimere/models.py index 60e4cd1..a1d96d0 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -1353,12 +1353,13 @@ class Map(models.Model, SimpleArea):      """A map      """      name = models.CharField(_(u"Name"), max_length=150) +    available = models.BooleanField(_(u"Available")) +    users = models.ManyToManyField(User, through='MapUsers')      urn = models.SlugField(_(u"Map urn"), max_length=50, blank=True,                             unique=True)      welcome_message = models.TextField(_(u"Welcome message"), blank=True,                                         null=True)      order = models.IntegerField(_(u"Order"), unique=True) -    available = models.BooleanField(_(u"Available"))      upper_left_corner = models.PointField(_(u"Upper left corner"),              default='POINT(0 0)', srid=settings.CHIMERE_EPSG_DISPLAY_PROJECTION)      lower_right_corner = models.PointField(_(u"Lower right corner"), @@ -1380,6 +1381,9 @@ class Map(models.Model, SimpleArea):                     u"available"))      external_css = models.URLField(_(u"Link to an external CSS"), blank=True,                                     null=True) +    public_read = models.BooleanField(_(u"Public can read the map")) +    public_propose = models.BooleanField(_(u"Public can propose item to the map")) +    public_write = models.BooleanField(_(u"Public can write without moderation to the map"))      restrict_to_extent = models.BooleanField(_(u"Restrict to the area extent"),                                               default=False)      objects = models.GeoManager() @@ -1522,6 +1526,16 @@ def get_users_by_map(map):      return User.objects.filter(Q(groups__permissions__codename=perm)|                                  Q(user_permissions__codename=perm)).all() +class MapUsers(models.Model): +    map = models.ForeignKey(Map, related_name='mapusers') +    user = models.ForeignKey(User, related_name='mapusers') +    read = models.BooleanField(_(u"Can read the map")) +    propose = models.BooleanField(_(u"Can propose item to the map")) +    write = models.BooleanField(_(u"Can write without moderation to the map")) +    class Meta: +        verbose_name = _("Map - user") +        verbose_name_plural = _("Map - users") +  class MapLayers(models.Model):      map = models.ForeignKey(Map)      layer = models.ForeignKey(Layer)  | 
