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