diff options
Diffstat (limited to 'chimere/models.py')
-rw-r--r-- | chimere/models.py | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/chimere/models.py b/chimere/models.py index fa139e0..cd2996d 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -1411,10 +1411,14 @@ class Map(models.Model, SimpleArea): ] if edit else [ {'public_read':True}] if user and user.is_authenticated(): - filters += [{'mapusers__user':user, 'mapusers__write':True}, - {'mapusers__user':user, 'mapusers__propose':True}, - ] if edit else [ - {'mapusers__user':user, 'mapusers__read':True},] + filters += [ + {'mapusers__user':user, 'mapusers__write':True}, + {'mapusers__user':user, 'mapusers__propose':True}, + {'mapgroups__group__user':user, 'mapgroups__write':True}, + {'mapgroups__group__user':user, 'mapgroups__propose':True}, + ] if edit else [ + {'mapusers__user':user, 'mapusers__read':True}, + {'mapgroups__group__user':user, 'mapgroups__read':True},] query = None for fltr in filters: fltr.update(map_filter) @@ -1565,6 +1569,16 @@ class MapUsers(models.Model): verbose_name = _("Map - user") verbose_name_plural = _("Map - users") +class MapGroups(models.Model): + map = models.ForeignKey(Map, related_name='mapgroups') + group = models.ForeignKey(Group, related_name='mapgroups') + 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 - group") + verbose_name_plural = _("Map - groups") + class MapLayers(models.Model): map = models.ForeignKey(Map) layer = models.ForeignKey(Layer) |