Refactor datatype festival #133
Labels
No labels
Component: User interface
Component: Wymeditor
Help wanted
Level: Difficult
Level: Easy
Level: Moderate
Pagetype: Festival
Pagetype: Mailinglist
Pagetype: Peer reviewed article
Pagetype: Text
Privacy GDPR AVG
status: has conflicts
Status: Needs changes
Status: Needs discussion
Status: Needs review
Status: Ready to merge
Status: Waiting for response
Type: Bug
Type: Enhancement
Type: Question
Usecase: De Stadsbron
Usecase: Koppelting
Usecase: MeetjeStad
Value: Coders
Value: Security
Value: Users
Value: Visitors
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
harmen/hypha#133
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The datatype festival could be a lot easier once the datatype event (#131) is implemented.
Such an "event" page type, when used as part of a festival, should probably not get its own url in the root namespace (like normal pages), but instead only exist "inside" the festival page (where the festival page is responsible for routing requests to the event and/or processes requests itself). This still allows getting a list of all "event" pages if you query recursively.
Then the festival page XML will refer to the event page id for each contribution.
Having separate page XML for contribution events would probably simplify translation and versioning for events as well (#335).
To allow customizing display or derive attributes for certain kinds of events, a "subtype" approach might be useful, where there is e.g. a
festival_contribution_eventoragenda_eventwhich is a subclass ofeventand can override some methods (and maybe also add subtype-specific methods and fields). Such a subtype could just be thetype="..."value in the hypha.xml, but that would somewhat complicate querying "give me all events" (though with some reflection, getting a list of all datatypes that extend theeventbase type is certainly possible). Maybe adding asubtype(or somethingimplements="event") could make querying easier (but that does essentially duplicate the PHP class inheritance info in the XML).Open question: Where to store the extra data? E.g. "Notes for the organizers" is not an event property, but only exists for festival contributions. Do we store that in the festival XML, along with the reference to the event page id? Or inside the event page XML as an "extra" attribute/tag (i.e. not interpreted by code that looks at any event, but interpreted by the festival module)? Storing it inside the event XML could help to include the property in the translation / versioning structure (though for this particular "notes for the organizers", this would not need to be translated, maybe only versioned).
I would put the extra field(s) in the festival XML as they apply specifically to the context of the festival and need no translation.