This re-does part of #45 - creating a split between historical constructs and descriptions in narrative sources. Refactoring was done to avoid the duplication of every entity having both a Historical and SourceDescription version, which is not always needed.
Creates base classes and admin utilities in core.
Updates the space app. These changes are quite minor, mostly adding some fields for where/how information is represented in the source. SpaceDescriptions now require a source - the migrations add a "MISSING SOURCE" object as a placeholder.
Updates the agent app, which is more radical. The Agent model is split into HistoricalPerson and AgentDescription. I decided to simply delete all existing agents from the database, rather than converting them into one of the new models. For existing agents, we don't actually know if they are described in narrative sources or not.
Updates for letter and event will follow later, but I wanted to avoid a massive PR.
Notes:
Some fields in the letter/event apps are commented out because they refer to agents (which were deleted).
As we discussed earlier, a HistoricalPerson is a single person, while an agent can also be a group. This is because identifying groups as "historical figures" can get ship-of-Theseus-y. It's also less relevant for users.
Date of birth/death are only added as properties on historical figures; as I understand from the researchers, birth/death dates only feature in their analysis as "historical background information".
You can add names, gender, social status, and location (for groups) as part of an agent's description. This results in a form pretty similar to the mock-up in #44
This re-does part of #45 - creating a split between historical constructs and descriptions in narrative sources. Refactoring was done to avoid the duplication of every entity having both a Historical and SourceDescription version, which is not always needed.
core
.space
app. These changes are quite minor, mostly adding some fields for where/how information is represented in the source. SpaceDescriptions now require a source - the migrations add a "MISSING SOURCE" object as a placeholder.agent
app, which is more radical. TheAgent
model is split intoHistoricalPerson
andAgentDescription
. I decided to simply delete all existing agents from the database, rather than converting them into one of the new models. For existing agents, we don't actually know if they are described in narrative sources or not.Updates for
letter
andevent
will follow later, but I wanted to avoid a massive PR.Notes:
letter
/event
apps are commented out because they refer to agents (which were deleted).HistoricalPerson
is a single person, while an agent can also be a group. This is because identifying groups as "historical figures" can get ship-of-Theseus-y. It's also less relevant for users.