예제 #1
0
    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
예제 #2
0
    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
예제 #3
0
    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
예제 #4
0
    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
예제 #5
0
 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])
예제 #6
0
 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
         ])