def gettermmatcher(self): """Returns the terminology matcher.""" terminology_stores = Store.objects.none() mtime = None if not self.is_terminology_project: # Get global terminology first try: termproject = TranslationProject.objects.get_terminology_project( self.language_id ) mtime = termproject.get_cached_value(CachedMethods.MTIME) terminology_stores = termproject.stores.live() except TranslationProject.DoesNotExist: pass if mtime is None: return if mtime != self.non_db_state.termmatchermtime: from pootle_misc.match import Matcher self.non_db_state.termmatcher = Matcher(terminology_stores.iterator()) self.non_db_state.termmatchermtime = mtime return self.non_db_state.termmatcher
def gettermmatcher(self): """Returns the terminology matcher.""" terminology_stores = Store.objects.none() mtime = None if not self.is_terminology_project: # Get global terminology first try: termproject = TranslationProject.objects \ .get_terminology_project(self.language_id) mtime = termproject.data.max_unit_mtime terminology_stores = termproject.stores.live() except TranslationProject.DoesNotExist: pass local_terminology = self.stores.live().filter( name__startswith='pootle-terminology') for store in local_terminology.iterator(): if mtime is None: mtime = store.data.max_unit_mtime else: mtime = max(mtime, store.data.max_unit_mtime) terminology_stores = terminology_stores | local_terminology if mtime is None: return if mtime != self.non_db_state.termmatchermtime: from pootle_misc.match import Matcher self.non_db_state.termmatcher = Matcher( terminology_stores.iterator()) self.non_db_state.termmatchermtime = mtime return self.non_db_state.termmatcher