You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.0 KiB
62 lines
2.0 KiB
# -*- coding: utf-8 -*-
|
|
from settings.models import settings_dict, Setting
|
|
|
|
|
|
from django.conf import settings
|
|
from functions.translate import get_translated_fields
|
|
|
|
def fill_missing_languages(obj):
|
|
all_langs = [code for code, lang in settings.LANGUAGES]
|
|
obj_langs = obj.get_available_languages()
|
|
missing_languages = list(set(all_langs) - set(obj_langs))
|
|
if missing_languages:
|
|
# get first Translation object (require)
|
|
translation = obj.translations.all()[0]
|
|
|
|
fields = get_translated_fields(obj)
|
|
for code in missing_languages:
|
|
# translate
|
|
obj.translate(code)
|
|
# go through all fields and set value
|
|
for field in fields:
|
|
setattr(obj, field, getattr(translation, field))
|
|
|
|
obj.save()
|
|
|
|
#from city.models import City
|
|
#city = City.objects.get(id=37)
|
|
#city
|
|
#
|
|
def fill_meta_information(obj):
|
|
s_list = settings_dict.get(obj.__class__.__name__)
|
|
if s_list:
|
|
for code, lang in settings.LANGUAGES:
|
|
fields_with_setting = [(setting.get('field_name'), Setting.objects.get(key=setting['key']).get_value(code)) \
|
|
for setting in s_list if setting.get('type') =='transl']
|
|
tr = obj._meta.translations_model.objects.get(language_code=code, master__id=getattr(obj, 'id'))
|
|
|
|
|
|
for field in fields_with_setting:
|
|
setattr(tr, field[0], field[1])
|
|
tr.save()
|
|
|
|
|
|
#return fields_with_setting
|
|
|
|
"""
|
|
s_list = settings_dict.get(obj.__class__.__name__)
|
|
return s_list
|
|
for s in s_list:
|
|
setting = Setting.objects.get(key=s.get('key'))
|
|
if setting.type != 'transl':
|
|
setattr(obj, s.get('field_name'), setting.get_value())
|
|
else:
|
|
for code, lang in settings.LANGUAGES:
|
|
tr = obj._meta.translations_model.objects.get(language_code=code, master__id=getattr(obj, 'id'))
|
|
setattr(tr, s.get('field_name'), setting.get_value(code))
|
|
tr.save()
|
|
"""
|
|
|
|
|
|
|
|
|
|
|