summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chimere/admin.py13
-rw-r--r--chimere/models.py15
2 files changed, 25 insertions, 3 deletions
diff --git a/chimere/admin.py b/chimere/admin.py
index 36072ab..2fb36e8 100644
--- a/chimere/admin.py
+++ b/chimere/admin.py
@@ -60,6 +60,8 @@ def disable(modeladmin, request, queryset):
for item in queryset:
item.status = 'D'
item.save()
+
+
disable.short_description = _("Disable")
@@ -67,6 +69,8 @@ def validate(modeladmin, request, queryset):
for item in queryset:
item.status = 'A'
item.save()
+
+
validate.short_description = _("Validate")
@@ -79,6 +83,8 @@ def export_to_kml(modeladmin, request, queryset):
content_type='application/vnd.google-earth.kml+xml')
response['Content-Disposition'] = 'attachment; filename=%s' % filename
return response
+
+
export_to_kml.short_description = _("Export to KML")
@@ -94,6 +100,8 @@ def export_to_shapefile(modeladmin, request, queryset):
response['Content-Type'] = 'application/zip'
response.write(zip_stream)
return response
+
+
export_to_shapefile.short_description = _("Export to Shapefile")
@@ -105,6 +113,8 @@ def export_to_csv(modeladmin, request, queryset):
response = HttpResponse(result, content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename=%s' % filename
return response
+
+
export_to_csv.short_description = _("Export to CSV")
@@ -163,6 +173,8 @@ def managed_modified(modeladmin, request, queryset):
return render_to_response('admin/chimere/managed_modified.html',
{'item': item, 'item_ref': item_ref},
context_instance=RequestContext(request))
+
+
managed_modified.short_description = _("Managed modified items")
@@ -175,6 +187,7 @@ class UserAdmin(VanillaUserAdmin):
list_display = ('username', 'email', 'first_name', 'last_name', 'is_staff')
inlines = (CatLimitInline,)
+
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
diff --git a/chimere/models.py b/chimere/models.py
index c1b47d3..d00d0b6 100644
--- a/chimere/models.py
+++ b/chimere/models.py
@@ -2057,19 +2057,28 @@ class Area(models.Model, SimpleArea):
"""
Get the sql statement for the test if the point is included in the area
"""
- return Q(point__contained=self.getWkt())
+ q = Q(point__contained=self.getWkt())
+ if self.subcategories.count():
+ q = q & Q(categories__in=self.subcategories.all())
+ return q
def getIncludeRoute(self):
"""
Get the sql statement for the test if the route is included in the area
"""
- return Q(route__contained=self.getWkt())
+ q = Q(route__contained=self.getWkt())
+ if self.subcategories.count():
+ q = q & Q(categories__in=self.subcategories.all())
+ return q
def getIncludePolygon(self):
"""
Get the sql statement for the test if the route is included in the area
"""
- return Q(polygon__contained=self.getWkt())
+ q = Q(polygon__contained=self.getWkt())
+ if self.subcategories.count():
+ q = q & Q(categories__in=self.subcategories.all())
+ return q
pre_save_area_values = {}