11from django .contrib .gis import admin
2+ from django .contrib .postgres import fields
23from django .utils .translation import gettext as _
3- from gsmap .models import Municipality , Snapshot
4+ from django_json_widget .widgets import JSONEditorWidget
5+ from sortedm2m_filter_horizontal_widget .forms import SortedFilteredSelectMultiple
6+ from gsmap .models import Municipality , Snapshot , Workspace
47
58
69class MunicipalityAdmin (admin .OSMGeoAdmin ):
710 pass
811
912
1013class SnapshotAdmin (admin .OSMGeoAdmin ):
11- readonly_fields = (
12- 'id' , 'created' ,
13- )
14+ readonly_fields = ('id' , 'created' , 'modified' , 'get_absolute_link' )
1415 fieldsets = (
1516 (_ ('Meta' ), {
16- 'fields' : ('created' , 'id' , 'is_showcase' , 'archived' , 'deleted' )
17+ 'fields' : (
18+ 'id' , 'get_absolute_link' , 'created' , 'modified' ,
19+ 'is_showcase' , 'archived' , 'deleted' , 'permission'
20+ )
1721 }),
1822 (_ ('Main' ), {
1923 'fields' :
@@ -28,8 +32,41 @@ class SnapshotAdmin(admin.OSMGeoAdmin):
2832 # ('perimeter',),
2933 # }),
3034 )
31- list_display = ('id' , 'created' )
35+
36+ formfield_overrides = {
37+ fields .JSONField : {
38+ 'widget' : JSONEditorWidget
39+ },
40+ }
41+
42+ list_display = ('id' , 'title' , 'municipality' , 'permission' , 'is_showcase' ,
43+ 'created' , 'modified' )
44+ list_filter = ('is_showcase' , 'permission' )
45+ search_fields = ['title' , 'municipality__name' , 'municipality__canton' ]
46+
47+
48+ class WorkspaceAdmin (admin .OSMGeoAdmin ):
49+ readonly_fields = ('id' , 'created' , 'modified' , 'get_absolute_link' )
50+ fieldsets = (
51+ (_ ('Meta' ), {
52+ 'fields' : (
53+ 'id' , 'get_absolute_link' ,
54+ 'created' , 'modified'
55+ )
56+ }),
57+ (_ ('Main' ), {
58+ 'fields' : ('title' , 'description' , 'snapshots' ),
59+ }),
60+ )
61+ list_display = ('id' , 'title' , 'created' , 'modified' )
62+ search_fields = ['title' ]
63+
64+ def formfield_for_manytomany (self , db_field , request = None , ** kwargs ):
65+ if db_field .name == 'snapshots' :
66+ kwargs ['widget' ] = SortedFilteredSelectMultiple ()
67+ return super ().formfield_for_manytomany (db_field , request , ** kwargs )
3268
3369
3470admin .site .register (Municipality , MunicipalityAdmin )
3571admin .site .register (Snapshot , SnapshotAdmin )
72+ admin .site .register (Workspace , WorkspaceAdmin )
0 commit comments