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
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
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()
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
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()
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