def db_create_questionnaire(store, questionnaire_dict, language): fill_localized_keys(questionnaire_dict, models.Questionnaire.localized_keys, language) q = models.db_forge_obj(store, models.Questionnaire, questionnaire_dict) for step in questionnaire_dict.get('steps', []): db_create_step(store, step, language) return q
def db_create_questionnaire(session, tid, questionnaire_dict, language): fill_localized_keys(questionnaire_dict, models.Questionnaire.localized_keys, language) questionnaire_dict['tid'] = tid q = models.db_forge_obj(session, models.Questionnaire, questionnaire_dict) for step in questionnaire_dict.get('steps', []): step['questionnaire_id'] = q.id db_create_step(session, tid, step, language) return q
def db_create_questionnaire(session, state, tid, questionnaire_dict, language): fill_localized_keys(questionnaire_dict, models.Questionnaire.localized_keys, language) questionnaire_dict['tid'] = tid q = models.db_forge_obj(session, models.Questionnaire, questionnaire_dict) for step in questionnaire_dict.get('steps', []): step['questionnaire_id'] = q.id db_create_step(session, tid, step, language) return q
def load_default_questionnaires(store): qfiles = [os.path.join(GLSettings.questionnaires_path, path) for path in os.listdir(GLSettings.questionnaires_path)] for qfile in qfiles: questionnaire = read_json_file(qfile) steps = questionnaire.pop('steps') q = store.find(models.Questionnaire, id=questionnaire['id']).one() if q is None: q = models.db_forge_obj(store, models.Questionnaire, questionnaire) else: store.find(models.Step, questionnaire_id=q.id).remove() for step in steps: step['questionnaire_id'] = q.id db_create_step(store, step, None)
def db_create_steps(store, questionnaire, steps, language): """ Create the specified steps :param store: the store on which perform queries. :param questionnaire: the questionnaire on which register specified steps. :param steps: a dictionary containing the new steps. :param language: the language of the specified steps. """ for step in steps: step['questionnaire_id'] = questionnaire.id questionnaire.steps.add(db_create_step(store, step, language))
def db_create_steps(store, context, steps, language): """ Create the specified steps :param store: the store on which perform queries. :param context: the context on which register specified steps. :param steps: a dictionary containing the new steps. :param language: the language of the specified steps. """ for step in steps: step['context_id'] = context.id context.steps.add(db_create_step(store, step, language))
def load_default_questionnaires(session): qfiles = [ os.path.join(Settings.questionnaires_path, path) for path in os.listdir(Settings.questionnaires_path) ] for qfile in qfiles: questionnaire = read_json_file(qfile) steps = questionnaire.pop('steps') q = session.query(models.Questionnaire).filter( models.Questionnaire.id == questionnaire['id']).one_or_none() if q is None: q = models.db_forge_obj(session, models.Questionnaire, questionnaire) else: session.query(models.Step).filter( models.Step.questionnaire_id == q.id).delete( synchronize_session='fetch') for step in steps: step['questionnaire_id'] = q.id db_create_step(session, 1, step, None)