Merge lp:~henninge/launchpad/bug-314839 into lp:launchpad

Proposed by Henning Eggers
Status: Merged
Approved by: Данило Шеган
Approved revision: no longer in the source branch.
Merged at revision: not available
Proposed branch: lp:~henninge/launchpad/bug-314839
Merge into: lp:launchpad
To merge this branch: bzr merge lp:~henninge/launchpad/bug-314839
Reviewer Review Type Date Requested Status
Данило Шеган (community) Approve
Review via email: mp+2739@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Henning Eggers (henninge) wrote :

Test command: ./test.py -vv -t potemplate.txt
Pre-imp call with jtv
fixes https://bugs.edge.launchpad.net/rosetta/+bug/314839

This adds a filter for the iscurrent flag to POTemplateSubset. The filter is added during creation and thus used in all queries on the subset. It is put to use in the translation import queue for auto approval.

Revision history for this message
Henning Eggers (henninge) wrote :
Download full text (7.6 KiB)

=== modified file 'lib/canonical/launchpad/database/potemplate.py'
--- lib/canonical/launchpad/database/potemplate.py 2008-10-10 09:17:54 +0000
+++ lib/canonical/launchpad/database/potemplate.py 2009-01-09 14:51:27 +0000
@@ -734,16 +734,18 @@
     implements(IPOTemplateSubset)

     def __init__(self, sourcepackagename=None, from_sourcepackagename=None,
- distroseries=None, productseries=None):
+ distroseries=None, productseries=None, iscurrent=None):
         """Create a new `POTemplateSubset` object.

         The set of POTemplate depends on the arguments you pass to this
         constructor. The sourcepackagename, from_sourcepackagename,
         distroseries and productseries are just filters for that set.
+ In addition, iscurrent sets the filter for the iscurrent flag.
         """
         self.sourcepackagename = sourcepackagename
         self.distroseries = distroseries
         self.productseries = productseries
+ self.iscurrent = iscurrent
         self.clausetables = []
         self.orderby = ['id']

@@ -773,6 +775,11 @@
             self.orderby.append('DistroSeries.name')
             self.clausetables.append('DistroSeries')

+ # Add the filter for the iscurrent flag if requested.
+ if iscurrent is not None:
+ self.query += " AND POTemplate.iscurrent=%s" % (
+ sqlvalues(iscurrent))
+
         # Finally, we sort the query by its path in all cases.
         self.orderby.append('POTemplate.path')

@@ -932,15 +939,16 @@
         return POTemplate.select(orderBy=['-date_last_updated'])

     def getSubset(self, distroseries=None, sourcepackagename=None,
- productseries=None):
+ productseries=None, iscurrent=None):
         """See `IPOTemplateSet`."""
         return POTemplateSubset(
             distroseries=distroseries,
             sourcepackagename=sourcepackagename,
- productseries=productseries)
+ productseries=productseries,
+ iscurrent=iscurrent)

     def getSubsetFromImporterSourcePackageName(self, distroseries,
- sourcepackagename):
+ sourcepackagename, iscurrent=None):
         """See `IPOTemplateSet`."""
         if distroseries is None or sourcepackagename is None:
             raise AssertionError(
@@ -948,7 +956,8 @@

         return POTemplateSubset(
             distroseries=distroseries,
- sourcepackagename=sourcepackagename)
+ sourcepackagename=sourcepackagename,
+ iscurrent=iscurrent)

     def getPOTemplateByPathAndOrigin(self, path, productseries=None,
         distroseries=None, sourcepackagename=None):

=== modified file 'lib/canonical/launchpad/database/translationimportqueue.py'
--- lib/canonical/launchpad/database/translationimportqueue.py 2009-01-03 19:32:48 +0000
+++ lib/canonical/launchpad/database/translationimportqueue.py 2009-01-09 14:55:51 +0000
@@ -259,7 +259,8 @@
         potemplate_subset = potemplateset.getSubset(
             distroseries=self.distroseries,
             sourcepackagename=self.sourcepackagename,
- productseries=self.productseries)
+ pro...

Read more...

Revision history for this message
Данило Шеган (danilo) wrote :

Code looks good, a test would benefit from not depending on sampledata (factory is thy friend).

review: Needs Fixing
Revision history for this message
Henning Eggers (henninge) wrote :
Download full text (7.9 KiB)

=== modified file 'lib/canonical/launchpad/database/potemplate.py'
--- lib/canonical/launchpad/database/potemplate.py 2008-10-10 09:17:54 +0000
+++ lib/canonical/launchpad/database/potemplate.py 2009-01-09 14:51:27 +0000
@@ -734,16 +734,18 @@
     implements(IPOTemplateSubset)

     def __init__(self, sourcepackagename=None, from_sourcepackagename=None,
- distroseries=None, productseries=None):
+ distroseries=None, productseries=None, iscurrent=None):
         """Create a new `POTemplateSubset` object.

         The set of POTemplate depends on the arguments you pass to this
         constructor. The sourcepackagename, from_sourcepackagename,
         distroseries and productseries are just filters for that set.
+ In addition, iscurrent sets the filter for the iscurrent flag.
         """
         self.sourcepackagename = sourcepackagename
         self.distroseries = distroseries
         self.productseries = productseries
+ self.iscurrent = iscurrent
         self.clausetables = []
         self.orderby = ['id']

@@ -773,6 +775,11 @@
             self.orderby.append('DistroSeries.name')
             self.clausetables.append('DistroSeries')

+ # Add the filter for the iscurrent flag if requested.
+ if iscurrent is not None:
+ self.query += " AND POTemplate.iscurrent=%s" % (
+ sqlvalues(iscurrent))
+
         # Finally, we sort the query by its path in all cases.
         self.orderby.append('POTemplate.path')

@@ -932,15 +939,16 @@
         return POTemplate.select(orderBy=['-date_last_updated'])

     def getSubset(self, distroseries=None, sourcepackagename=None,
- productseries=None):
+ productseries=None, iscurrent=None):
         """See `IPOTemplateSet`."""
         return POTemplateSubset(
             distroseries=distroseries,
             sourcepackagename=sourcepackagename,
- productseries=productseries)
+ productseries=productseries,
+ iscurrent=iscurrent)

     def getSubsetFromImporterSourcePackageName(self, distroseries,
- sourcepackagename):
+ sourcepackagename, iscurrent=None):
         """See `IPOTemplateSet`."""
         if distroseries is None or sourcepackagename is None:
             raise AssertionError(
@@ -948,7 +956,8 @@

         return POTemplateSubset(
             distroseries=distroseries,
- sourcepackagename=sourcepackagename)
+ sourcepackagename=sourcepackagename,
+ iscurrent=iscurrent)

     def getPOTemplateByPathAndOrigin(self, path, productseries=None,
         distroseries=None, sourcepackagename=None):

=== modified file 'lib/canonical/launchpad/database/translationimportqueue.py'
--- lib/canonical/launchpad/database/translationimportqueue.py 2009-01-03 19:32:48 +0000
+++ lib/canonical/launchpad/database/translationimportqueue.py 2009-01-09 14:55:51 +0000
@@ -259,7 +259,8 @@
         potemplate_subset = potemplateset.getSubset(
             distroseries=self.distroseries,
             sourcepackagename=self.sourcepackagename,
- productseries=self.productseries)
+ pro...

Read more...

Revision history for this message
Данило Шеган (danilo) wrote :

Updated test looks much better: thanks for fixing this annoying warning Henning.

review: Approve