549
550
Call-site will have to have appropriate clauseTables.
552
# When all the code that uses this method is moved to Storm,
553
# we can replace it with _getStormClausesForPOFileMessages
554
# and then remove it.
552
556
'TranslationTemplateItem.potemplate = %s' % sqlvalues(
553
557
self.potemplate),
566
def _getStormClausesForPOFileMessages(self, current=True):
567
"""Get TranslationMessages for the POFile via TranslationTemplateItem.
570
TranslationTemplateItem.potemplate == self.potemplate,
571
(TranslationTemplateItem.potmsgsetID ==
572
TranslationMessage.potmsgsetID),
573
TranslationMessage.language == self.language,
576
clauses.append(TranslationTemplateItem.sequence > 0)
562
580
def getTranslationsFilteredBy(self, person):
563
581
"""See `IPOFile`."""
564
582
assert person is not None, "You must provide a person to filter by."
565
clauses = self._getClausesForPOFileMessages(current=False)
583
clauses = self._getStormClausesForPOFileMessages(current=False)
567
'TranslationMessage.submitter = %s' % sqlvalues(person))
585
TranslationMessage.submitter == person)
569
return TranslationMessage.select(
570
" AND ".join(clauses),
571
clauseTables=['TranslationTemplateItem'],
572
orderBy=['sequence', '-date_created'])
587
results = Store.of(self).find(
590
return results.order_by(
591
TranslationTemplateItem.sequence,
592
Desc(TranslationMessage.date_created))
574
594
def _getTranslatedMessagesQuery(self):
575
595
"""Get query data for fetching all POTMsgSets with translations.