def load_types_from_file(cls, file_name='attribute_types.json'): count = 0 file_path = os.path.abspath( os.path.join(__file__, os.path.pardir, 'data', file_name)) with open(file_path, 'r') as fp: attribute_types = json.load(fp) for attribute_type in attribute_types: attribute_name = attribute_type['name'] name_i18n = f'attribute.{attribute_name}' for locale in attribute_type['locales']: locale_code = locale['locale_code'] if not db.session.query(I18NLocale).get(locale_code): db.session.add(I18NLocale(code=locale_code, desc='')) i18n_create(name_i18n, locale['locale_code'], locale['name'], description=f"Attribute type {attribute_name}") count += 1 db.session.commit() fp.close() return count
def load_from_file(cls, file_name='roles.json'): count = 0 file_path = os.path.abspath( os.path.join(__file__, os.path.pardir, 'data', file_name)) with open(file_path, 'r') as fp: if db.session.query(Role).count() == 0: roles = json.load(fp) for role in roles: role_name = role['name'] name_i18n = f'role.{role_name}' for locale in role['locales']: locale_code = locale['locale_code'] if not db.session.query(I18NLocale).get(locale_code): db.session.add( I18NLocale(code=locale_code, desc='')) i18n_create(name_i18n, locale['locale_code'], locale['name'], description=f"Role {role_name}") db.session.add(cls(name_i18n=name_i18n, active=True)) count += 1 db.session.commit() fp.close() return count return 0
def load_from_file(cls, file_name='country-codes.json', locale_code='en-US'): count = 0 file_path = os.path.abspath( os.path.join(__file__, os.path.pardir, 'data', file_name)) if not db.session.query(I18NLocale).get(locale_code): db.session.add(I18NLocale(code=locale_code, desc='English US')) with open(file_path, 'r') as fp: countries = json.load(fp) for country in countries: country_code = country['Code'] country_name = country['Name'] name_i18n = f'country.name.{country_code}' i18n_create(name_i18n, locale_code, country_name, description=f"Country {country_name}") db.session.add(cls(code=country_code, name_i18n=name_i18n)) count += 1 db.session.commit() return count
def enumerated_value_factory(sqla): """Create a fake enumerated value.""" attributes = sqla.query(Attribute).all() if not attributes: create_multiple_attributes(sqla, 5, 1) attributes = sqla.query(Attribute).all() value_string = rl_fake().name() value_i18n = f'enumerated.{value_string}'[:32] locale_code = 'en-US' if not sqla.query(I18NLocale).get(locale_code): sqla.add(I18NLocale(code=locale_code, desc='English US')) if not sqla.query(I18NKey).get(value_i18n): i18n_create(value_i18n, locale_code, value_string, description=f"Enum Value {value_string}") enumerated_value = { 'attributeId': random.choice(attributes).id, 'valueI18n': value_i18n, 'active': flip() } return enumerated_value
def load_from_file(cls, file_name='country-codes.json'): count = 0 file_path = os.path.abspath( os.path.join(__file__, os.path.pardir, 'data', file_name)) with open(file_path, 'r') as fp: countries = json.load(fp) for country in countries: country_code = country['Code'] country_name = country['Name'] name_i18n = f'country.name.{country_code}' for locale in country['locales']: locale_code = locale['locale_code'] # e.g., en-US if not db.session.query(I18NLocale).get(locale_code): # Don't have this locale code db.session.add(I18NLocale(code=locale_code, desc='')) if not i18n_check(name_i18n, locale_code): # Don't have this country i18n_create(name_i18n, locale_code, locale['name'], description=f"Country {country_name}") # Add to the Country table. if not db.session.query(cls).filter_by( code=country_code).count(): db.session.add(cls(code=country_code, name_i18n=name_i18n)) count += 1 db.session.commit() fp.close() return count
def add_attribute_type(name, sqla, locale_code): type_i18n = f'attribute.type.{name}' if not sqla.query(I18NLocale).get(locale_code): sqla.add(I18NLocale(code=locale_code, desc='English US')) if not sqla.query(I18NKey).get(type_i18n): i18n_create(type_i18n, 'en-US', name, description=f"Type {name}")
def add_i18n_code(name, sqla, locale_code, name_i18n): if not sqla.query(I18NLocale).get(locale_code): sqla.add(I18NLocale(code=locale_code, desc='')) try: i18n_create(name_i18n, locale_code, name, description=f"Type {name}") except: # entry is already in value table pass return name_i18n