summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2012-11-19 14:16:10 +0100
committerÉtienne Loks <etienne.loks@peacefrogs.net>2012-11-19 14:16:10 +0100
commitf77c4859fa9927155a5fb2be14c2c5ffb9469279 (patch)
tree0c5da9904f7176d2702a2c2a603f2e11592efa71
parentec8c8ff64ee885f6a02ae56249e1e012e4df1438 (diff)
parentbe4348c325404e4125dcb3998b9367d63c9dcdda (diff)
downloadChimère-f77c4859fa9927155a5fb2be14c2c5ffb9469279.tar.bz2
Chimère-f77c4859fa9927155a5fb2be14c2c5ffb9469279.zip
Merge branch 'master' into saclay
-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 b34deaa..ad24706 100644
--- a/chimere/admin.py
+++ b/chimere/admin.py
@@ -47,6 +47,12 @@ from chimere.models import Category, Icon, SubCategory, Marker, \
from chimere.utils import unicode_normalize, ShapefileManager, KMLManager,\
CSVManager
+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', 'ref_item']
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 f8b41b1..61a4dd6 100644
--- a/chimere/tests.py
+++ b/chimere/tests.py
@@ -221,6 +221,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()