def test_create_translations(self): self.populate(self.session) en = self.session.query(Language).filter(Language.lang == 'en').one() it = self.session.query(Language).filter(Language.lang == 'it').one() q = self.session.query(PageInfo).filter(PageInfo.lang == en) self.assertNotEqual(q.all(), []) Language.disable(self.session, 2) self.assertEqual(q.all(), []) Language.enable(self.session, 2, 1) translations = q.all() self.assertNotEqual(translations, []) self.assertEqual(set([t.lang for t in translations]), set([en]))
def test_enable(self): self.populate(self.session) language = self.session.query(Language).\ filter(Language.lang==u'en').one() language.enabled = False src_language = self.session.query(Language).\ filter(Language.lang==u'it').one() dst_language = self.session.query(Language).\ filter(Language.lang==u'de').one() language = Language.enable(self.session, dst_language.id, src_language.id) self.assertEqual(dst_language, language) original = self.session.query(NodeInfo).\ filter(NodeInfo.lang.has(id=src_language.id)).count() translations = self.session.query(NodeInfo).\ filter(NodeInfo.lang.has(id=dst_language.id)).count() self.assertEqual(translations, original)
def enable(self): """ Enable the language identified by 'lang_id'. """ try: def_lang = self.request.registry.settings['default_locale_name'] def_lang = Language.get_by_lang(self.session, def_lang) language = Language.enable(self.session, int(self.request.params['lang_id']), def_lang.id) self.session.flush() except QuotaError as e: self.log.exception(e) self.session.rollback() success = False msg = self.request.translate( 'Hai raggiunto il numero massimo di lingue acquistate.') except Exception as e: self.log.exception('Cannot enable requested language: %s', e) self.session.rollback() success = False msg=self.request.translate( u"Errore durante la procedura di aggiunta della lingua.") else: self.log.debug('Enabled: %s', language) self.session.commit() name = language.locale.get_display_name().title() success = True msg = self.request.translate( u'Lingua %s aggiunta con successo.' % name) self.proxy.invalidate(language=language) finally: return dict(success=success, msg=msg)