diff options
| -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)  | 
