summaryrefslogtreecommitdiff
path: root/chimere/admin.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-03-03 16:12:51 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-03-03 16:12:51 +0100
commit1a2c18b6960f2c392f3a55bf20698fa0a6b748e8 (patch)
tree50b6fcc739bc2edb72c3505c2fd4e2ab555cb949 /chimere/admin.py
parentf7d13ba1410b6e22f1b0668e27828b7ed676eed1 (diff)
downloadChimère-1a2c18b6960f2c392f3a55bf20698fa0a6b748e8.tar.bz2
Chimère-1a2c18b6960f2c392f3a55bf20698fa0a6b748e8.zip
Admin: fix right managements
Diffstat (limited to 'chimere/admin.py')
-rw-r--r--chimere/admin.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/chimere/admin.py b/chimere/admin.py
index 4a540e4..55bc972 100644
--- a/chimere/admin.py
+++ b/chimere/admin.py
@@ -274,6 +274,8 @@ def moderator_right(user, qs, geo_type='marker'):
contained = contained | area.getIncludeMarker()
elif geo_type == 'route':
contained = contained | area.getIncludeRoute()
+ elif geo_type == 'polygon':
+ contained = contained | area.getIncludePolygon()
qs = qs.filter(contained)
if user.subcategory_limit_to.count():
qs = qs.filter(categories__in=SubCategory.objects.filter(
@@ -331,6 +333,7 @@ class MarkerAdmin(admin.ModelAdmin):
fieldsets = MARKER_FIELDSETS
inlines = [MultimediaMarkerInline, PictureMarkerInline]
has_properties = True
+ geo_type = 'marker'
def get_fieldsets(self, request, obj=None):
"""
@@ -352,16 +355,16 @@ class MarkerAdmin(admin.ModelAdmin):
Filter queryset with specific rights
"""
qs = super().get_queryset(request)
- qs = moderator_right(request.user, qs, geo_type='marker')
+ qs = moderator_right(request.user, qs, geo_type=self.geo_type)
ordering = self.ordering or ()
if ordering:
qs = qs.order_by(*ordering)
return qs.distinct()
def admin_modification(self, request, item_id):
- '''
+ """
Redirect to the marker modification form
- '''
+ """
return managed_modified(
self, request, Marker.objects.filter(pk=item_id))
@@ -408,6 +411,7 @@ class RouteAdmin(MarkerAdmin):
fieldsets = ROUTE_FIELDSETS
inlines = []
has_properties = False
+ geo_type = 'route'
def queryset(self, request):
qs = self.model._default_manager.get_query_set()
@@ -418,9 +422,9 @@ class RouteAdmin(MarkerAdmin):
return qs
def admin_modification(self, request, item_id):
- '''
+ """
Redirect to the route modification form
- '''
+ """
return managed_modified(self, request,
Route.objects.filter(pk=item_id))
@@ -440,6 +444,7 @@ class PolygonAdmin(MarkerAdmin):
'ref_item']
inlines = []
fieldsets = POLYGON_FIELDSETS
+ geo_type = 'polygon'
class LayerInline(admin.TabularInline):