parent
ac5aca4220
commit
6b178ed049
12 changed files with 221 additions and 115 deletions
@ -0,0 +1,62 @@ |
|||||||
|
# -*- 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() |
||||||
|
""" |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in new issue