diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2013-10-27 17:53:23 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2013-10-27 17:54:15 +0100 |
commit | 8fe311d5e587fd185ec407c01895b91a23af1478 (patch) | |
tree | 60b665cd6baca62080215f649d0b38a378818b79 | |
parent | 05ef969c988248f83660544a7e40954f1f13365b (diff) | |
download | Chimère-8fe311d5e587fd185ec407c01895b91a23af1478.tar.bz2 Chimère-8fe311d5e587fd185ec407c01895b91a23af1478.zip |
Admin: only register model if not yet registered
This mecanism allow to specialized admin in projects
-rw-r--r-- | chimere/admin.py | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/chimere/admin.py b/chimere/admin.py index 3119b5d..b4ac5ce 100644 --- a/chimere/admin.py +++ b/chimere/admin.py @@ -416,7 +416,6 @@ class ImporterAdmin(admin.ModelAdmin): list_filter = ('importer_type', 'categories') readonly_fields = ('state',) actions = [importing, cancel_import, export_to_osm, cancel_export] -admin.site.register(Importer, ImporterAdmin) class PageAdmin(admin.ModelAdmin): """ @@ -461,15 +460,25 @@ class PropertyModelChoiceInline(admin.TabularInline): class PropertyModelAdmin(admin.ModelAdmin): inlines = [PropertyModelChoiceInline] -# register of differents database fields -admin.site.register(Page, PageAdmin) -admin.site.register(News, NewsAdmin) -admin.site.register(Category, CategoryAdmin) -admin.site.register(Icon, IconAdmin) -admin.site.register(Marker, MarkerAdmin) -admin.site.register(Route, RouteAdmin) -if not settings.CHIMERE_HIDE_PROPERTYMODEL: +# only register if not yet registered: this mecanism allow to specialized admin +# in projects +registered_models = admin.site._registry.keys() +for model, modeladmin in ((Importer, ImporterAdmin), + (Page, PageAdmin), + (News, NewsAdmin), + (Category, CategoryAdmin), + (Icon, IconAdmin), + (Marker, MarkerAdmin), + (Route, RouteAdmin), + (Map, MapAdmin), + (ColorTheme, ColorThemeAdmin), + (Layer, None)): + if model not in registered_models: + if modeladmin: + admin.site.register(model, modeladmin) + else: + admin.site.register(model) + +if PropertyModel not in registered_models and \ + not settings.CHIMERE_HIDE_PROPERTYMODEL: admin.site.register(PropertyModel, PropertyModelAdmin) -admin.site.register(Map, MapAdmin) -admin.site.register(ColorTheme, ColorThemeAdmin) -admin.site.register(Layer) |