You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bloodhound.apache.org by gj...@apache.org on 2012/11/02 13:00:17 UTC

svn commit: r1404932 - in /incubator/bloodhound/trunk/bloodhound_multiproduct/multiproduct: api.py model.py

Author: gjm
Date: Fri Nov  2 12:00:16 2012
New Revision: 1404932

URL: http://svn.apache.org/viewvc?rev=1404932&view=rev
Log:
change trac tickets to link to product.prefix instead of product.name - includes a basic migration to update tickets from the old name references - towards #110

Modified:
    incubator/bloodhound/trunk/bloodhound_multiproduct/multiproduct/api.py
    incubator/bloodhound/trunk/bloodhound_multiproduct/multiproduct/model.py

Modified: incubator/bloodhound/trunk/bloodhound_multiproduct/multiproduct/api.py
URL: http://svn.apache.org/viewvc/incubator/bloodhound/trunk/bloodhound_multiproduct/multiproduct/api.py?rev=1404932&r1=1404931&r2=1404932&view=diff
==============================================================================
--- incubator/bloodhound/trunk/bloodhound_multiproduct/multiproduct/api.py (original)
+++ incubator/bloodhound/trunk/bloodhound_multiproduct/multiproduct/api.py Fri Nov  2 12:00:16 2012
@@ -33,7 +33,7 @@ from trac.web.chrome import ITemplatePro
 
 from multiproduct.model import Product
 
-DB_VERSION = 1
+DB_VERSION = 2
 DB_SYSTEM_KEY = 'bloodhound_multi_product_version'
 PLUGIN_NAME = 'Bloodhound multi product'
 
@@ -102,6 +102,18 @@ class MultiProductSystem(Component):
                     for statement in db_connector.to_sql(table):
                         db(statement)
                 db_installed_version = self.get_version()
+            
+            if db_installed_version == 1:
+                from multiproduct.model import Product
+                products = Product.select(self.env)
+                for prod in products:
+                    db("""UPDATE ticket SET product=%s
+                          WHERE product=%s""", (prod.prefix, prod.name))
+                
+                db("""UPDATE system SET value=%s
+                      WHERE name=%s""", (DB_VERSION, DB_SYSTEM_KEY))
+                self.log.info("Upgraded multiproduct db schema from version %d"
+                              " to %d" % (db_installed_version, DB_VERSION))
     
     # ITemplateProvider methods
     def get_templates_dirs(self):
@@ -122,7 +134,7 @@ class MultiProductSystem(Component):
     def get_select_fields(self):
         """Product select fields"""
         return [(35, {'name': 'product', 'label': N_('Product'),
-                      'cls': Product, 'optional': True})]
+                      'cls': Product, 'pk': 'prefix', 'optional': True})]
     
     def get_radio_fields(self):
         """Product radio fields"""

Modified: incubator/bloodhound/trunk/bloodhound_multiproduct/multiproduct/model.py
URL: http://svn.apache.org/viewvc/incubator/bloodhound/trunk/bloodhound_multiproduct/multiproduct/model.py?rev=1404932&r1=1404931&r2=1404932&view=diff
==============================================================================
--- incubator/bloodhound/trunk/bloodhound_multiproduct/multiproduct/model.py (original)
+++ incubator/bloodhound/trunk/bloodhound_multiproduct/multiproduct/model.py Fri Nov  2 12:00:16 2012
@@ -273,9 +273,8 @@ class Product(ModelBase):
         now = datetime.now(utc)
         comment = 'Product %s renamed to %s' % (old_name, new_name)
         if old_name != new_name:
-            for t in Product.get_tickets(self._env, old_name):
+            for t in Product.get_tickets(self._env, self._data['prefix']):
                 ticket = Ticket(self._env, t['id'], db)
-                ticket['product'] = new_name
                 ticket.save_changes(author, comment, now)
     
     @classmethod