Data flow ========= * All data is saved in the Postgres database. * Public questionnaires are put into the elasticsearch index. * Converting a model instance into JSON (for elasticsearch) is handled by the serializer: ``questionnaire.serializers.QuestionnaireSerializer`` * All relevant data (see below) must be available for objects from the model and elasticsearch; serializing and deserializing must work in both ways. Website ------- * The list view on qcat.wocat.net accesses eleasticsearch only. * The detail view on qcat.wocat.net calls the method ``get_details`` on the configuration of the serialized questionnaire. API --- * The list view lists all data from opensearchpy. * The detail view on qcat.wocat.net calls the method ``get_details`` on the configuration of the serialized questionnaire. Serializing ----------- * If possible, the serializer calls model properties. * All data which is depending on the config calls a method on the serializer * The configuration is loaded when the serializer is instantiated.