Metron-Project / metron

Django website for a comic book database
https://metron.cloud/
GNU General Public License v3.0
90 stars 7 forks source link

Feature Request: Universe Entries & Issue Tags #173

Closed themadman0980 closed 9 months ago

themadman0980 commented 1 year ago

Is your feature request related to a problem? Please describe. There are many different universes within comics from Marvel, DC and other publishers. It would be extremely helpful to classify the universe within which an issue occurs for filtering and organisation purposes, and to help with finding similar reading content.

Describe the solution you'd like A new tag for issues titled "Universe", with a validated list of possible inputs from a centralised list of universes, each with a page describing the universe and its history. The process to add a universe to an issue would include creating a new Universe entry, and then going to an issue and selecting that Universe from the available list (as this grows, a search tool might be necessary).

For example, Marvel has an extensive list of universes, however it makes sense to start with the common ones like Earth-616, the Ultimate Marvel universe, and the Star-Wars universe.

Additional context As discussed on Matrix.

This could be an optional field, so while it may be more effort to include, it's not necessary to include it for each issue unless somebody wants to go to the effort of updating this metadata.

Each universe would probably need to be linked to one or more publishers, and one or more issues. It seems more logical to link at an issue level rather than a series level, although it would be nice to be able to bulk update this tag for a whole series within the Metron db. It might be wise to allow an issue to be a part of more than 1 universe (if there's some transition mid-issue).

bpepple commented 9 months ago

Done some initial work on this the last day or so. I've created a Universe model that contains the following fields:

And I've added a m2m universes field to the following models:

It might be worth adding a m2m field to the Series model, but I'm not sure how worthwhile that would be, so if someone in the community has opinion add a comment.

Regarding bulk updating, I'm creating a management command to handle updating a series for a universe. For requests, I'm thinking of adding a Discussion Page Topic, where folks can add a series & universe info that needs to updated by the admin.

Here's a screenshot of what a Universe Detail page would look like: image

I've still got to add tests and update the API for the changes, but the bulk of the work is done.

@themadman0980: Are there any other aspects of this I need to address?

themadman0980 commented 9 months ago

This sounds amazing!

One of the main benefits of universe tags for me is as a filtering mechanism for searches, and as such it would be helpful for series to have access to this. Is it possible to make it a calculated read only field which pulls from all the associated issues in the series?

bpepple commented 9 months ago

One of the main benefits of universe tags for me is as a filtering mechanism for searches, and as such it would be helpful for series to have access to this. Is it possible to make it a calculated read only field which pulls from all the associated issues in the series?

What are you filtering for? Issues? Series?

themadman0980 commented 9 months ago

At present, my main use case would be at a series level. But the data definitely belongs at an issue level given the potential for one off crossovers to a different universe IMO.

bpepple commented 9 months ago

Ok, I've pretty much finished this feature request. I think I just need to finish up the following tasks:

This should be a non-breaking change to the API, but to play it safe, I'll most likely push this to production after this week's releases (since those are the days the API is hit the hardest), most likely Thursday or Friday.