Fixed conflict for the Schemas.name getter
This commit is contained in:
parent
f39c915c9c
commit
0c45d05fdd
|
@ -483,13 +483,12 @@ class Schemas(models.Model):
|
||||||
return {}
|
return {}
|
||||||
return json.loads(self.data)
|
return json.loads(self.data)
|
||||||
|
|
||||||
#<<<<<<< HEAD
|
def _update_and_get_field(self, field_attr, schema_key, is_json=False):
|
||||||
def _update_and_get_field(self, field_attr, schema_key):
|
|
||||||
field_value = getattr(self, field_attr)
|
field_value = getattr(self, field_attr)
|
||||||
if not field_value:
|
if not field_value:
|
||||||
field_value = self.get_schema.get(schema_key, '')
|
field_value = self.get_schema.get(schema_key, [] if is_json else '')
|
||||||
self._update_model_field(field_attr, field_value)
|
self._update_model_field(field_attr, field_value)
|
||||||
return field_value
|
return json.loads(field_value) if is_json else field_value
|
||||||
|
|
||||||
def _update_model_field(self, field_attr, field_value):
|
def _update_model_field(self, field_attr, field_value):
|
||||||
if field_value:
|
if field_value:
|
||||||
|
@ -497,29 +496,38 @@ class Schemas(models.Model):
|
||||||
self.save(update_fields=[field_attr])
|
self.save(update_fields=[field_attr])
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def name(self):
|
def name(self, request=None):
|
||||||
return self._update_and_get_field('_name', 'name')
|
names = self._update_and_get_field('_name', 'name',
|
||||||
|
is_json=True)
|
||||||
|
language_code = self._get_language_code(request)
|
||||||
|
name = self._get_name_by_language(names, language_code)
|
||||||
|
|
||||||
|
return name
|
||||||
|
|
||||||
|
def _get_language_code(self, request=None):
|
||||||
|
language_code = settings.LANGUAGE_CODE
|
||||||
|
if request:
|
||||||
|
language_code = request.LANGUAGE_CODE
|
||||||
|
if self._is_catalan_code(language_code):
|
||||||
|
language_code = 'ca'
|
||||||
|
|
||||||
|
return language_code
|
||||||
|
|
||||||
|
def _get_name_by_language(self, names, lang_code):
|
||||||
|
for name in names:
|
||||||
|
if name.get('lang') == lang_code:
|
||||||
|
return name.get('value')
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
def _is_catalan_code(self, language_code):
|
||||||
|
return language_code == 'ca_ES'
|
||||||
|
|
||||||
@name.setter
|
@name.setter
|
||||||
def name(self, value):
|
def name(self, value):
|
||||||
self._name = value
|
self._name = json.dumps(value)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
#=======
|
|
||||||
def name(self, request=None):
|
|
||||||
names = {}
|
|
||||||
for name in self.get_schema.get('name', []):
|
|
||||||
lang = name.get('lang')
|
|
||||||
if 'ca' in lang:
|
|
||||||
lang = 'ca'
|
|
||||||
names[lang]= name.get('value')
|
|
||||||
|
|
||||||
if request and request.LANGUAGE_CODE in names.keys():
|
|
||||||
return names[request.LANGUAGE_CODE]
|
|
||||||
|
|
||||||
return names[settings.LANGUAGE_CODE]
|
|
||||||
|
|
||||||
#>>>>>>> main
|
|
||||||
def description(self):
|
def description(self):
|
||||||
return self._update_and_get_field('_description', 'description')
|
return self._update_and_get_field('_description', 'description')
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue