As the numbers Models in an app grows, it becomes tedious to find the model 
we are searching for in a long list on the index page (and navigation bar) 
of the Django admin

As a part of a new project, I wanted to reorder and logically group models 
that do not necessarily reflect the apps of the project. I found this 
little library called 
[django-modeladmin-reorder](https://github.com/mishbahr/django-modeladmin-reorder)
 
that does it by remapping the fields with a middleware.

However, I think it would be cleaner if Django supported it natively as 
this can be useful in almost every project. A layer called AdminApp between 
the `admin` and the ModelAdmin registered would be the perfect middle 
ground.

**Proposal**

- Create a new class in admin called `AdminApp` 
    - The AdminApp should be registerable to admin
    - The AdminApp should accept ModelAdmin to be registered with it 
- Wire up the ModelAdmins and AdminApps to see custom layout that is not 
tied to apps
- For all ModelAdmins registered directly to admin, fallback to current 
implementation

```
class AgencyAdmin(admin.ModelAdmin):
   pass

class AgencyConfigAdmin(admin.ModelAdmin):
   pass

class AgencyAdminApp(admin.AdminApp):
   label = "Agency Details"

class AgentAdmin(admin.ModelAdmin):
   pass


admin.register(AgentAdmin) # Existing implementation

# Option 1 : without decorators
## Add Models to AdminApp
AgencyAdminApp.register(AgencyAdmin)
AgencyAdminApp.register(AgencyConfigAdmin)
## Add New AdminApp tp Admin
admin.register_app(AgencyAdminApp) 

# Option 2 : with decorators
admin.register(AgencyAdmin, admin_app=AgencyAdminApp)
admin.register(AgencyConfigAdmin, admin_app=AgencyAdminApp)
```

I feel like this seems like a decent middle ground that doesn't break 
existing implementation but allows the app to be expanded in the future. 

So what do you think about the idea? If the core team is interested, I'll 
be more than willing to work on this but I am first time contributor and 
will need some mentoring on it.

 I've also made a forum post for the same : 
https://forum.djangoproject.com/t/custom-admin-apps-for-grouping-and-reordering-models/9723

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers  (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-developers+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-developers/dd42ef6b-a52b-4ab0-b579-1114eb92b0f4n%40googlegroups.com.

Reply via email to