def __getattr__(self, name): value = super(FossilClinicalTrial, self).__getattr__(name) def filter_by_language(item): lang1 = (item.get('language', None) or '').lower() lang2 = (self._language or '').lower() return lang1 == lang2 if name in ('date_registration','created','updated','exported'): if isinstance(value, basestring): try: value = datetime.datetime.strptime(value, '%Y-%m-%d %H:%M:%S') except ValueError: value = datetime.datetime.strptime(value, '%Y-%m-%d') elif isinstance(value, dict) and value.get('translations', None): try: value = filter(filter_by_language, value['translations'])[0] #value = [t for t in value['translations'] if t.get('language', '').lower() == self._language.lower()][0] except IndexError: pass elif self._language: self._load_translations() try: value_trans = self._translations[lang_format(self._language)][name] if value_trans: value = value_trans except KeyError: pass return value
def __getattr__(self, name): value = super(FossilClinicalTrial, self).__getattr__(name) def filter_by_language(item): lang1 = (item.get('language', None) or '').lower() lang2 = (self._language or '').lower() return lang1 == lang2 if name in ('date_registration', 'created', 'updated', 'exported'): if isinstance(value, basestring): try: value = datetime.datetime.strptime(value, '%Y-%m-%d %H:%M:%S') except ValueError: value = datetime.datetime.strptime(value, '%Y-%m-%d') elif isinstance(value, dict) and value.get('translations', None): try: value = filter(filter_by_language, value['translations'])[0] #value = [t for t in value['translations'] if t.get('language', '').lower() == self._language.lower()][0] except IndexError: pass elif self._language: self._load_translations() try: value_trans = self._translations[lang_format( self._language)][name] if value_trans: value = value_trans except KeyError: pass return value
def rec_status(self): self._load_translations() try: value = self._translations[lang_format(self._language)]['recruitment_status'] except KeyError: value = self.recruitment_status # FIXME This should be serialized with right translation, so the following code # would be unnecessary if value: from vocabulary.models import RecruitmentStatus try: rec_status = RecruitmentStatus.objects.get(label=value['label']) trans = rec_status.translations.get(language=lang_format(self._language)) return trans.label except ObjectDoesNotExist: return value['label'] return value
def rec_status(self): self._load_translations() try: value = self._translations[lang_format( self._language)]['recruitment_status'] except KeyError: value = self.recruitment_status # FIXME This should be serialized with right translation, so the following code # would be unnecessary if value: from vocabulary.models import RecruitmentStatus try: rec_status = RecruitmentStatus.objects.get( label=value['label']) trans = rec_status.translations.get( language=lang_format(self._language)) return trans.label except ObjectDoesNotExist: return value['label'] return value
def _load_translations(self): if self._translations is None: self._translations = dict([(lang_format(t.get('language', '').lower()), t) for t in self.object_fossil.translations])
def _load_translations(self): if self._translations is None: self._translations = dict([ (lang_format(t.get('language', '').lower()), t) for t in self.object_fossil.translations ])