diff options
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 |
commit | 1a2c18b6960f2c392f3a55bf20698fa0a6b748e8 (patch) | |
tree | 50b6fcc739bc2edb72c3505c2fd4e2ab555cb949 | |
parent | f7d13ba1410b6e22f1b0668e27828b7ed676eed1 (diff) | |
download | Chimère-1a2c18b6960f2c392f3a55bf20698fa0a6b748e8.tar.bz2 Chimère-1a2c18b6960f2c392f3a55bf20698fa0a6b748e8.zip |
Admin: fix right managements
-rw-r--r-- | chimere/admin.py | 15 | ||||
-rw-r--r-- | chimere/views.py | 2 |
2 files changed, 11 insertions, 6 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): diff --git a/chimere/views.py b/chimere/views.py index 572aef3..30982c9 100644 --- a/chimere/views.py +++ b/chimere/views.py @@ -363,7 +363,7 @@ def uploadFile(request, category_id='', area_name=''): try: category = SubCategory.objects.get(pk=category_id) response_dct['category'] = str(category) - except: + except SubCategory.DoesNotExist: pass # If the form has been submited if request.method == 'POST': |