Skip to content

Commit

Permalink
Added logic to skip adding categories that are already defined for a …
Browse files Browse the repository at this point in the history
…modeladmin
  • Loading branch information
tgecho committed Jan 17, 2011
1 parent 44508e0 commit 246c18d
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions categories/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,9 +103,18 @@ class Media:

for model,modeladmin in admin.site._registry.items():
if model in registry.values() and modeladmin.fieldsets:
admin.site.unregister(model)
admin.site.register(model, type('newadmin', (modeladmin.__class__,), {
'fieldsets': getattr(modeladmin, 'fieldsets', ()) + (('Categories',{
'fields': [cat.split('.')[1] for cat in registry]
}),)
}))
fieldsets = getattr(modeladmin, 'fieldsets', ())
fields = [cat.split('.')[1] for cat in registry]
# check each field to see if already defined
for cat in fields:
for k,v in fieldsets:
if cat in v['fields']:
fields.remove(cat)
# if there are any fields left, add them under the categories fieldset
if len(fields) > 0:
admin.site.unregister(model)
admin.site.register(model, type('newadmin', (modeladmin.__class__,), {
'fieldsets': fieldsets + (('Categories',{
'fields': fields
}),)
}))

0 comments on commit 246c18d

Please sign in to comment.