class not_translated_yet(BrowserView): """ View to inform user that the view requested is not translated yet, and shows the already translated related content. """ __call__ = ViewPageTemplateFile('templates/not_translated_yet.pt') implements(IPublishTraverse) def __init__(self, context, request): super(not_translated_yet, self).__init__(context, request) self.tg = None def publishTraverse(self, request, name): if self.tg is None: # ../@@not_translated_yet/translationgroup self.tg = TranslationManager(name) else: raise NotFound(self, name, request) return self def already_translated(self): if self.tg is not None: # Need to check if the user has permission return self.tg.get_restricted_translations().items() else: return [] def has_any_translation(self): if self.tg is not None: return len(self.tg.get_restricted_translations().items()) > 0 else: return 0 def language_name(self, lang=None): """ Get the current language native name """ if lang is None: lang_code = self.request.get('set_language') else: lang_code = lang util = getUtility(IContentLanguageAvailability) data = util.getLanguages(True) lang_info = data.get(lang_code) return lang_info.get('native', None) or lang_info.get('name')
def get(self): uuid = self.getTranslationUuid() if isLanguageIndependent(self.field) and uuid: manager = TranslationManager(uuid) result = manager.get_restricted_translations() if len(result) >= 1: orig_lang = result.keys()[0] obj = result[orig_lang] name = self.field.__name__ try: value = getattr(aq_base(obj), name) except AttributeError: pass else: return value if self.field.default is None: return NO_VALUE return self.field.default