[extensions-web] extensions: Don't recalculate version on save



commit b6f8ba769a5fbc042ac7e4c8e0837ca175e34f51
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Sun Mar 4 13:21:21 2012 -0500

    extensions: Don't recalculate version on save

 sweettooth/extensions/models.py |   15 ++++++++-------
 sweettooth/extensions/tests.py  |    6 ++++++
 2 files changed, 14 insertions(+), 7 deletions(-)
---
diff --git a/sweettooth/extensions/models.py b/sweettooth/extensions/models.py
index ad57ba9..58bd53c 100644
--- a/sweettooth/extensions/models.py
+++ b/sweettooth/extensions/models.py
@@ -357,13 +357,14 @@ class ExtensionVersion(models.Model):
     def save(self, *args, **kwargs):
         assert self.extension is not None
 
-        # Get version number
-        try:
-            # Don't use extension.latest_version, as that will
-            # give us the latest visible version.
-            self.version = self.extension.versions.latest().version + 1
-        except self.DoesNotExist:
-            self.version = 1
+        if self.version == 0:
+            # Get version number
+            try:
+                # Don't use extension.latest_version, as that will
+                # give us the latest visible version.
+                self.version = self.extension.versions.latest().version + 1
+            except self.DoesNotExist:
+                self.version = 1
 
         super(ExtensionVersion, self).save(*args, **kwargs)
 
diff --git a/sweettooth/extensions/tests.py b/sweettooth/extensions/tests.py
index 7b3d74f..3ba69a5 100644
--- a/sweettooth/extensions/tests.py
+++ b/sweettooth/extensions/tests.py
@@ -242,6 +242,12 @@ class ExtensionVersionTest(BasicUserTestCase, TestCase):
         extension = models.Extension.objects.create_from_metadata(metadata, creator=self.user)
         version = models.ExtensionVersion.objects.create(extension=extension,
                                                          status=models.STATUS_ACTIVE)
+        self.assertEquals(version.version, 1)
+        # Make sure that saving again doesn't change the version.
+        version.save()
+        self.assertEquals(version.version, 1)
+        version.save()
+        self.assertEquals(version.version, 1)
 
         self.assertEquals(version.version, 1)
         self.assertEquals(extension.latest_version, version)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]