After discussion today, it seems that renaming some of the classes, and refactoring endpoints would be helpful.
class Experiment(models.Model) # aka ExperimentCollection
- name
- slug
- theme # FK
- about # TextField (markdown)
- consent # TextField (markdown)
class Phase(models.Model) # aka ExperimentCollectionGroup
- experiment # FK
- order
- dashboard # boolean
- randomize # boolean
class Rule(models.Model) # aka Experiment
- order
- name
- slug
- questions # may also be FK from dedicated Question model
- rule # ChoiceField
This means researchers/maintainers would always have to encapsulate a Rule within a Phase and Experiment, but it also feels more logical in that we're now moving towards adding Consent and Theme to both Experiment and ExperimentColection (in our current nomenclature).
After discussion today, it seems that renaming some of the classes, and refactoring endpoints would be helpful.
This means researchers/maintainers would always have to encapsulate a
Rule
within aPhase
andExperiment
, but it also feels more logical in that we're now moving towards addingConsent
andTheme
to bothExperiment
andExperimentColection
(in our current nomenclature).