예제 #1
0
def update_settings_from_fixture(fixture,
                                 overwrite_group=False,
                                 overwrite_setting=False):
    """Updates the database settings from a fixture.
    Returns the updated groups and settings.

    :param fixture: The fixture which should be inserted/updated.
    :param overwrite_group: Set this to ``True`` if you want to overwrite
                            the group if it already exists.
                            Defaults to ``False``.
    :param overwrite_setting: Set this to ``True`` if you want to overwrite the
                              setting if it already exists.
                              Defaults to ``False``.
    """
    updated_settings = {}

    for settingsgroup in fixture:

        group = SettingsGroup.query.filter_by(key=settingsgroup[0]).first()

        if (group is not None and overwrite_group) or group is None:

            if group is not None:
                group.name = settingsgroup[1]["name"]
                group.description = settingsgroup[1]["description"]
            else:
                group = SettingsGroup(
                    key=settingsgroup[0],
                    name=settingsgroup[1]["name"],
                    description=settingsgroup[1]["description"])

            group.save()
            updated_settings[group] = []

        for settings in settingsgroup[1]["settings"]:

            setting = Setting.query.filter_by(key=settings[0]).first()

            if (setting is not None and overwrite_setting) or setting is None:

                if setting is not None:
                    setting.value = settings[1]["value"]
                    setting.value_type = settings[1]["value_type"]
                    setting.name = settings[1]["name"]
                    setting.description = settings[1]["description"]
                    setting.extra = settings[1].get("extra", "")
                    setting.settingsgroup = group.key
                else:
                    setting = Setting(key=settings[0],
                                      value=settings[1]["value"],
                                      value_type=settings[1]["value_type"],
                                      name=settings[1]["name"],
                                      description=settings[1]["description"],
                                      extra=settings[1].get("extra", ""),
                                      settingsgroup=group.key)

                setting.save()
                updated_settings[group].append(setting)

    return updated_settings
예제 #2
0
def create_settings_from_fixture(fixture):
    """Inserts the settings from a fixture into the database.
    Returns the created groups and settings.

    :param fixture: The fixture which should inserted.
    """
    created_settings = {}
    for settingsgroup in fixture:
        group = SettingsGroup(
            key=settingsgroup[0],
            name=settingsgroup[1]["name"],
            description=settingsgroup[1]["description"]
        )
        group.save()
        created_settings[group] = []

        for settings in settingsgroup[1]["settings"]:
            setting = Setting(
                key=settings[0],
                value=settings[1]["value"],
                value_type=settings[1]["value_type"],
                name=settings[1]["name"],
                description=settings[1]["description"],
                extra=settings[1].get("extra", ""),     # Optional field

                settingsgroup=group.key
            )
            if setting:
                setting.save()
                created_settings[group].append(setting)

    return created_settings
예제 #3
0
파일: populate.py 프로젝트: aregsar/flaskbb
def create_settings_from_fixture(fixture):
    """
    Inserts the settings from a fixture into the database.
    """
    for settingsgroup in fixture:
        group = SettingsGroup(
            key=settingsgroup[0],
            name=settingsgroup[1]['name'],
            description=settingsgroup[1]['description']
        )

        group.save()

        for settings in settingsgroup[1]['settings']:
            setting = Setting(
                key=settings[0],
                value=settings[1]['value'],
                value_type=settings[1]['value_type'],
                name=settings[1]['name'],
                description=settings[1]['description'],
                extra=settings[1].get('extra', ""),     # Optional field

                settingsgroup=group.key
            )
            setting.save()
예제 #4
0
def create_settings_from_fixture(fixture):
    """
    Inserts the settings from a fixture into the database.
    """
    for settingsgroup in fixture:
        group = SettingsGroup(
            key=settingsgroup[0],
            name=settingsgroup[1]['name'],
            description=settingsgroup[1]['description']
        )

        group.save()

        for settings in settingsgroup[1]['settings']:
            setting = Setting(
                key=settings[0],
                value=settings[1]['value'],
                value_type=settings[1]['value_type'],
                name=settings[1]['name'],
                description=settings[1]['description'],
                extra=settings[1].get('extra', ""),     # Optional field

                settingsgroup=group.key
            )
            setting.save()
예제 #5
0
def update_settings_from_fixture(fixture, overwrite_group=False,
                                 overwrite_setting=False):
    """
    Updates the database settings from a fixture.
    Returns the number of updated groups and settings.
    """
    groups_count = 0
    settings_count = 0
    for settingsgroup in fixture:

        group = SettingsGroup.query.filter_by(key=settingsgroup[0]).first()

        if group is not None and overwrite_group or group is None:
            groups_count += 1
            group = SettingsGroup(
                key=settingsgroup[0],
                name=settingsgroup[1]['name'],
                description=settingsgroup[1]['description']
            )

            group.save()

        for settings in settingsgroup[1]['settings']:

            setting = Setting.query.filter_by(key=settings[0]).first()

            if setting is not None and overwrite_setting or setting is None:
                settings_count += 1
                setting = Setting(
                    key=settings[0],
                    value=settings[1]['value'],
                    value_type=settings[1]['value_type'],
                    name=settings[1]['name'],
                    description=settings[1]['description'],
                    extra=settings[1].get('extra', ""),
                    settingsgroup=group.key
                )
                setting.save()
    return groups_count, settings_count
예제 #6
0
def create_settings_from_fixture(fixture):
    """Inserts the settings from a fixture into the database.

    :param fixture: The fixture which should inserted.
    """
    for settingsgroup in fixture:
        group = SettingsGroup(key=settingsgroup[0],
                              name=settingsgroup[1]["name"],
                              description=settingsgroup[1]["description"])

        group.save()

        for settings in settingsgroup[1]["settings"]:
            setting = Setting(
                key=settings[0],
                value=settings[1]["value"],
                value_type=settings[1]["value_type"],
                name=settings[1]["name"],
                description=settings[1]["description"],
                extra=settings[1].get("extra", ""),  # Optional field
                settingsgroup=group.key)
            setting.save()
예제 #7
0
def update_settings_from_fixture(fixture, overwrite_group=False,
                                 overwrite_setting=False):
    """
    Updates the database settings from a fixture.
    Returns the number of updated groups and settings.
    """
    groups_count = 0
    settings_count = 0
    for settingsgroup in fixture:

        group = SettingsGroup.query.filter_by(key=settingsgroup[0]).first()

        if group is not None and overwrite_group or group is None:
            groups_count += 1
            group = SettingsGroup(
                key=settingsgroup[0],
                name=settingsgroup[1]['name'],
                description=settingsgroup[1]['description']
            )

            group.save()

        for settings in settingsgroup[1]['settings']:

            setting = Setting.query.filter_by(key=settings[0]).first()

            if setting is not None and overwrite_setting or setting is None:
                settings_count += 1
                setting = Setting(
                    key=settings[0],
                    value=settings[1]['value'],
                    value_type=settings[1]['value_type'],
                    name=settings[1]['name'],
                    description=settings[1]['description'],
                    extra=settings[1].get('extra', ""),
                    settingsgroup=group.key
                )
                setting.save()
    return groups_count, settings_count
예제 #8
0
def update_settings_from_fixture(fixture, overwrite_group=False,
                                 overwrite_setting=False):
    """Updates the database settings from a fixture.
    Returns the updated groups and settings.

    :param fixture: The fixture which should be inserted/updated.
    :param overwrite_group: Set this to ``True`` if you want to overwrite
                            the group if it already exists.
                            Defaults to ``False``.
    :param overwrite_setting: Set this to ``True`` if you want to overwrite the
                              setting if it already exists.
                              Defaults to ``False``.
    """
    updated_settings = {}

    for settingsgroup in fixture:

        group = SettingsGroup.query.filter_by(key=settingsgroup[0]).first()

        if (group is not None and overwrite_group) or group is None:

            if group is not None:
                group.name = settingsgroup[1]["name"]
                group.description = settingsgroup[1]["description"]
            else:
                group = SettingsGroup(
                    key=settingsgroup[0],
                    name=settingsgroup[1]["name"],
                    description=settingsgroup[1]["description"]
                )

            group.save()

        for settings in settingsgroup[1]["settings"]:

            setting = Setting.query.filter_by(key=settings[0]).first()

            if (setting is not None and overwrite_setting) or setting is None:

                if setting is not None:
                    setting.value = settings[1]["value"]
                    setting.value_type = settings[1]["value_type"]
                    setting.name = settings[1]["name"]
                    setting.description = settings[1]["description"]
                    setting.extra = settings[1].get("extra", "")
                    setting.settingsgroup = group.key
                else:
                    setting = Setting(
                        key=settings[0],
                        value=settings[1]["value"],
                        value_type=settings[1]["value_type"],
                        name=settings[1]["name"],
                        description=settings[1]["description"],
                        extra=settings[1].get("extra", ""),
                        settingsgroup=group.key
                    )

                setting.save()
                updated_settings[group] = []
                updated_settings[group].append(setting)
    return updated_settings