def Title(self, language=None, prefix_with_reference_number=True): title = ITranslatedTitle(self).translated_title(language) if prefix_with_reference_number: title = self._prefix_with_reference_number(title) if isinstance(title, unicode): return title.encode('utf-8') return title or ''
def migrate_repositoryfolder_titles(self, repositoryfolder): """Because the repositoryfolder is required, we set the current title for both languages. """ ITranslatedTitle( repositoryfolder).title_de = repositoryfolder.effective_title ITranslatedTitle( repositoryfolder).title_fr = repositoryfolder.effective_title repositoryfolder.reindexObject()
def test_title_setter(self): self.login(self.manager) for lang in TranslatedTitle.SUPPORTED_LANGUAGES: setattr(ITranslatedTitle(self.repository_root), u'title_{}'.format(lang), self.titles[lang].upper()) for lang in TranslatedTitle.SUPPORTED_LANGUAGES: self.assertEquals( self.titles[lang].upper(), getattr(ITranslatedTitle(self.repository_root), 'title_{}'.format(lang)))
def test_title_setter(self): repository_root = create(Builder('repository_root')) for lang in TranslatedTitle.SUPPORTED_LANGUAGES: setattr(ITranslatedTitle(repository_root), u'title_{}'.format(lang), u'TITLE {}'.format(lang.upper())) for lang in TranslatedTitle.SUPPORTED_LANGUAGES: self.assertEquals( u'TITLE {}'.format(lang.upper()), getattr(ITranslatedTitle(repository_root), 'title_{}'.format(lang)))
def __call__(self): query = {'portal_type': ['opengever.private.root']} for folder in self.objects(query, 'Set title on private root folders'): idxs = [] if not ITranslatedTitle(folder).title_de: ITranslatedTitle(folder).title_de = u'Meine Ablage' idxs.append('title_de') if not ITranslatedTitle(folder).title_fr: ITranslatedTitle(folder).title_fr = u'Mon depot' idxs.append('title_fr') if idxs: folder.reindexObject(idxs=idxs)
def get_number_mapping(self): items = [] intid_util = getUtility(IIntIds) for prefix, intid in self.get_child_mapping().iteritems(): obj = intid_util.queryObject(intid) if obj: title = ITranslatedTitle(obj).translated_title() active = (self.get_prefix_mapping()[intid] == prefix) else: # if a repositoryfolder is already removed the intid # utility raises an KeyError. But the number should still # be in the list, because it should be available to remove # via the reference prefix manager. active = False title = _('label_already_removed', '-- Already removed object --') items.append({'prefix': prefix, 'title': title, 'active': active}) def key_sorter(obj): key = obj['prefix'] if (key.isdigit()): return int(key) return key return sorted(items, key=key_sorter)
def get_repository_title(self): # TODO: use disposition itself instead of the first dossier parent = self.dossiers[0].obj while not IRepositoryRoot.providedBy(parent): parent = aq_parent(aq_inner(parent)) return ITranslatedTitle(parent).translated_title()
def test_translated_attribute_can_be_set_to_none(self): repository_root = create(Builder('repository_root') .having(title_de=u"Ablage", title_fr=u"syst\xe8me d'ordre")) root_translation = ITranslatedTitle(repository_root) repository_root.title_de = None repository_root.title_fr = None self.assertIsNone(root_translation.translated_title()) self.assertIsNone(root_translation.translated_title(language='de')) self.assertIsNone(root_translation.translated_title(language='fr')) self.assertEqual('', repository_root.Title()) self.assertEqual('', repository_root.Title(language='de')) self.assertEqual('', repository_root.Title(language='fr'))
def test_translated_attribute_can_be_set_to_none(self): repository_root = create( Builder('repository_root').having(title_de=u"Ablage", title_fr=u"syst\xe8me d'ordre")) root_translation = ITranslatedTitle(repository_root) repository_root.title_de = None repository_root.title_fr = None self.assertIsNone(root_translation.translated_title()) self.assertIsNone(root_translation.translated_title(language='de')) self.assertIsNone(root_translation.translated_title(language='fr')) self.assertEqual('', repository_root.Title()) self.assertEqual('', repository_root.Title(language='de')) self.assertEqual('', repository_root.Title(language='fr'))
def test_translated_title_returns_title_in_fallback_language_when_asked_language_not_supported( self, browser): self.login(self.regular_user, browser=browser) self.assertEquals( u"Ordnungssystem", ITranslatedTitle( self.repository_root).translated_title(language='it'))
def test_translated_title_returns_title_in_asked_language(self, browser): self.login(self.regular_user, browser=browser) set_preferred_language(self.portal.REQUEST, 'de-ch') self.assertEquals( u"Syst\xe8me de classement", ITranslatedTitle( self.repository_root).translated_title(language='fr'))
def test_translated_title_returns_title_in_fallback_language_when_asked_language_not_supported( self, browser): repository_root = create( Builder('repository_root').having(title_de=u"Ablage", title_fr=u"syst\xe8me d'ordre")) self.assertEquals( u"Ablage", ITranslatedTitle(repository_root).translated_title(language='it'))
def test_translated_title_returns_title_in_asked_language(self, browser): repository_root = create( Builder('repository_root').having(title_de=u"Ablage", title_fr=u"syst\xe8me d'ordre")) set_preferred_language(self.portal.REQUEST, 'de-ch') self.assertEquals( u"syst\xe8me d'ordre", ITranslatedTitle(repository_root).translated_title(language='fr'))
def test_translated_title_config_is_consistent(self): self.assertEqual(len(TRANSLATED_TITLE_NAMES), len(TranslatedTitle.SUPPORTED_LANGUAGES)) names = ['title_{}'.format(code) for code in TranslatedTitle.SUPPORTED_LANGUAGES] self.assertItemsEqual(names, TRANSLATED_TITLE_NAMES) self.assertItemsEqual(names, ITranslatedTitle.names())
def test_title_getter(self): titles = dict( (u'title_{}'.format(lang), u'Repository title in {}'.format(lang)) for lang in TranslatedTitle.SUPPORTED_LANGUAGES) repository_root = create(Builder('repository_root').having(**titles)) for lang in TranslatedTitle.SUPPORTED_LANGUAGES: self.assertEquals( u"Repository title in {}".format(lang), getattr(ITranslatedTitle(repository_root), 'title_{}'.format(lang)))
def test_translated_title_config_is_consistent(self): self.assertEqual(len(TRANSLATED_TITLE_NAMES), len(TranslatedTitle.SUPPORTED_LANGUAGES)) names = [ 'title_{}'.format(code) for code in TranslatedTitle.SUPPORTED_LANGUAGES ] self.assertItemsEqual(names, TRANSLATED_TITLE_NAMES) self.assertItemsEqual(names, ITranslatedTitle.names())
def title(self): return ITranslatedTitle(self.context).translated_title()
def migrate_titles(self, obj): ITranslatedTitle(obj).title_de = IBasic(obj).title obj.reindexObject()
def title_fr_indexer(obj): if ITranslatedTitleSupport.providedBy(obj): return ITranslatedTitle(obj).title_fr return None
def migrate_repositoryroot_titles(self, repositoryroot): ITranslatedTitle(repositoryroot).title_de = IBasic( repositoryroot).title repositoryroot.reindexObject()
def get_title(self, obj): if ITranslatedTitleSupport.providedBy(obj): return ITranslatedTitle(obj).title_de return obj.title
def migrate_titles(self, obj): ITranslatedTitle(obj).title_de = IOpenGeverBase(obj).title obj.reindexObject()