Data Model
Open Stories and Issues
I should be able to change the Type of a Property: Only where it makes sense, but we should at least be able to change a Text Property to a Large Text, and vice versa. In the longer run, we should have as robust a Type-conversion system as we can manage.
I should be able to customize the list of Instances of a Model: Initially, a List of Instance is just Display Name links, but we can do better. By default, it should just list the Display Names and links as it does now, but add an Instance List View that can be applied to a Model, which produces the default way to view an Instance in a list of them. This is a
very common concept, as it's turning out, so we might as well establish an official mechanism.
Need a _deduplicate function: Eric has a use case involving
_withValueIn()
, where he is feeding in a collection with a lot of duplicates, and is winding up with an
enormous, unmanageable number of duplicates. I think the behavior is technically correct, but he doesn't have a way to produce workable results.
This could be addressed by having a simple _deduplicate
function, which takes a QList and returns a proper QSet, removing all duplicates along the way.
Need Links with Metadata: It would be very useful to be able to have Links that contain additional fields, so you could say more about this particular relationship.
Closed Stories and Issues
From a Model Value, I should be able to access the enclosing Thing: This is a subtle but significant problem pointed out by Eric. Sometimes, when you are building a sophisticated Model Type, you really want to be able to access contextual information that exists on the enclosing Bundle. For example, in his highly-customized Review Types, he wants to be able to display the current Average -- but the Average Property is on the Thing, not on the Review, and the Review currently has no way of getting to the enclosing Thing, even in workaround.
Issues not pointing to Titles in Comics Space?: DEATHLY CRITICAL: something is very, very wrong. Everything looks fine when I am doing the data entry, but it appears broken when the Space reloads!!! Worse, the older Issues look fine -- it's just the new stuff that's broken. And the brokenness is that these Issues have links to their Titles, but those links have illegal OIDs. All of which suggests that the OIDs are being saved wrong, which is about as bad as bad gets. This needs to be investigated and fixed
immediately.
Model View should not be NotInherited: Eric uses sub-Models more heavily than anyone else, and his sub-Models actually
don't change the structure so much as they do identity. So this lack of inheritance is a pain.
Refactoring Spaces and Changing Models: So, I've just hit my first major refactoring issue. I've defined Hero, Villain, and Environment as top-level Models. I realize now, though, that what I
really want is a top-level concept of Deck, with children Hero Deck, Villain Deck, and Environment Deck. Now, at this stage, I haven't entered so much data in the existing structure that it would be ludicrous to redo it all if need be. But this seems like just the first instance of something that will happen frequently in Querki, and may want a more robust way of addressing it.
It seems to me that users will need some way to either:
- change what Model a Thing is based on, or
- some semi-automated tool to help them migrate large amounts of data from an old Model to a new one.
[Alternatively, to solve the particular issue I'm facing, it might make sense to create some way for a "Link Model" to point to a collection of Link Models, rather than 1 or nothing.]