I'm taking over a project with which the company are pretty unhappy with the usability of the website. It's using django, and the website is a very content based, user driven website. Having looked through the layout of the django folders, I'm beginning to question its structure.
There are many different types of content in the website, i.e. blog items, upcoming events, videos, images, mp3s and forum posts. At the moment, there is basically a separate django application for each type of content, i.e. there is an mp3s application folder with models and views, a video application folder with models and views etc.
/
/urls.py
/settings.py
/...
/events
/events/models.py
....
/videos/models.py
/
...
In my eyes, because they are all basically the same type of object, there should be one application folder called ContentObject that has a single models.py. In that, there is an abstract class ContentObject that has the most common attributes, and all the models for it's children (movies, videos etc.). This application's function is basically to manage all the objects.
The website has a blog area, a stream, a store and an event browser. Again, in my eyes, these should all be separate application folders that deal with presenting the objects from the ContentObject application to the user.
Is this a wise move? Apart from the logistics of restructuring, this approach seems much more logical, and adheres to the idea of loose coupling. That said, I have reservations about having an application (ContentObject) that doesn't really have any Views.
Can anyone give any input?