示例#1
0
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
示例#2
0
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
示例#3
0
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
示例#4
0
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)
示例#5
0
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))
示例#6
0
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))
示例#7
0
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))
示例#8
0
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)