summaryrefslogtreecommitdiff
path: root/chimere
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2012-11-19 14:15:34 +0100
committerÉtienne Loks <etienne.loks@peacefrogs.net>2012-11-19 14:15:34 +0100
commitbe4348c325404e4125dcb3998b9367d63c9dcdda (patch)
treec30fe5c0380d40996557d4b2349a81077ad4fb04 /chimere
parent7d8c3719bb2dfaa70b1d6c5e2a19c53588091d3b (diff)
downloadChimère-be4348c325404e4125dcb3998b9367d63c9dcdda.tar.bz2
Chimère-be4348c325404e4125dcb3998b9367d63c9dcdda.zip
Admin: add a disable action
Diffstat (limited to 'chimere')
-rw-r--r--chimere/admin.py14
-rw-r--r--chimere/tests.py29
2 files changed, 39 insertions, 4 deletions
diff --git a/chimere/admin.py b/chimere/admin.py
index 482c276..e611ee0 100644
--- a/chimere/admin.py
+++ b/chimere/admin.py
@@ -47,6 +47,12 @@ from chimere.utils import unicode_normalize, ShapefileManager, KMLManager,\
CSVManager
from chimere.widgets import TextareaWidget
+def disable(modeladmin, request, queryset):
+ for item in queryset:
+ item.status = 'D'
+ item.save()
+disable.short_description = _(u"Disable")
+
def validate(modeladmin, request, queryset):
for item in queryset:
item.status = 'A'
@@ -152,8 +158,8 @@ class MarkerAdmin(admin.ModelAdmin):
search_fields = ("name",)
list_display = ('name', 'status')
list_filter = ('status', 'categories')
- actions = [validate, managed_modified, export_to_kml, export_to_shapefile,
- export_to_csv]
+ actions = [validate, disable, managed_modified, export_to_kml,
+ export_to_shapefile, export_to_csv]
exclude = ['submiter_session_key', 'import_key', 'import_version',
'available_date']
readonly_fields = ['submiter_email', 'submiter_comment', 'import_source',
@@ -184,8 +190,8 @@ class RouteAdmin(admin.ModelAdmin):
exclude = ['height', 'width']
form = RouteAdminForm
readonly_fields = ('associated_file',)
- actions = [validate, managed_modified, export_to_kml, export_to_shapefile,
- export_to_csv]
+ actions = [validate, disable, managed_modified, export_to_kml,
+ export_to_shapefile, export_to_csv]
def queryset(self, request):
qs = self.model._default_manager.get_query_set()
diff --git a/chimere/tests.py b/chimere/tests.py
index 5e0ba7c..eeb970c 100644
--- a/chimere/tests.py
+++ b/chimere/tests.py
@@ -212,6 +212,35 @@ class FeedsTest(TestCase):
doc = lxml.etree.fromstring(response.content)
self.assertEqual(int(doc.xpath('count(//item)')), 2)
+class AdminTest(TestCase):
+ def setUp(self):
+ self.areas = areas_setup()
+ self.markers = marker_setup()
+ self.adminuser = User.objects.create_superuser('admin',
+ 'admin@test.com',
+ 'pass')
+ self.client.login(username='admin', password='pass')
+
+ def test_actions(self):
+ q_markers = Marker.objects.filter(pk__in=[m.pk for m in self.markers])
+ # disable
+ response = self.client.post('/admin/chimere/marker/',
+ data={'action':['disable'],
+ '_selected_action':[unicode(m.pk)
+ for m in self.markers],
+ })
+ self.assertEqual(q_markers.count(),
+ q_markers.filter(status='D').count())
+ # validate
+ response = self.client.post('/admin/chimere/marker/',
+ data={'action':['validate'],
+ '_selected_action':[unicode(m.pk)
+ for m in self.markers]
+ })
+ self.assertEqual(q_markers.count(),
+ q_markers.filter(status='A').count())
+
+
class MarkerFormTest(TestCase):
def setUp(self):
self.subcategories = subcategory_setup()