Author: kmtracey
Date: 2009-04-21 13:58:32 -0500 (Tue, 21 Apr 2009)
New Revision: 10612

Modified:
   django/branches/releases/1.0.X/
   django/branches/releases/1.0.X/django/forms/models.py
   django/branches/releases/1.0.X/tests/regressiontests/admin_views/models.py
   django/branches/releases/1.0.X/tests/regressiontests/admin_views/tests.py
Log:
[1.0.X] Fixed #9651: fixed save_as with inline forms. Thanks, kmike and 
Mnewman. 

Backport of r10353 from trunk.



Property changes on: django/branches/releases/1.0.X
___________________________________________________________________
Name: svnmerge-integrated
   - 
/django/trunk:1-9097,9099-9102,9104-9109,9111,9113-9144,9146-9151,9153-9156,9158-9159,9161-9187,9189-9247,9249-9262,9264-9277,9279-9298,9301-9302,9305-9331,9333-9343,9345,9347,9350-9352,9355-9396,9399-9462,9466-9469,9471-9488,9491-9526,9529,9533-9536,9539-9550,9556-9557,9559-9560,9562-9568,9570-9591,9595-9619,9621-9624,9626-9636,9638-9642,9644-9645,9647-9689,9691-9699,9703-9706,9709-9713,9716-9723,9725-9726,9730-9738,9740-9741,9750-9751,9757-9758,9761-9762,9767-9768,9770-9780,9782-9784,9789-9790,9793-9798,9801-9802,9806-9807,9809-9813,9821-9837,9842-9843,9847-9859,9861,9863-9875,9877-9881,9883-9887,9899-9903,9906-9909,9912,9914,9916-9917,9919-9920,9922-9927,9929,9931-9937,9939,9942-9943,9945-9950,9953-9954,9956-9962,9966-9977,9979-9984,9986-9988,9990-10001,10003-10004,10007,10009-10010,10013-10017,10019-10020,10022-10025,10031,10036-10041,10049-10052,10054-10061,10066-10069,10071-10076,10078-10079,10085-10087,10104,10106,10125-10127,10136,10138-10140,10143,10145-10147,10149-10160,10163-10167,10170,10173,10175-10176,10180,10185,10189,10192-10196,10198-10221,10223-10228,10230-10234,10236-10247,10250-10257,10259-10270,10273-10274,10276-10280,10282-10314,10316,10319-10322,10324-10325,10328-10329,10333-10344,10348-10351,10354-10356,10358-10363,10365-10368,10371-10380,10386-10407,10411,10413-10427,10429-10437,10440-10442,10444-10445,10447-10450,10452-10453,10457-10464,10466-10467,10469-10480,10482-10485,10489-10492,10495-10497,10499-10504,10508-10509,10511-10514,10517-10520,10524-10525,10528,10530-10535,10537,10539-10542,10544-10548,10550-10557,10561,10563-10564,10567-10571,10573-10574,10576-10578,10580-10589,10591-10592,10595-10596,10599-10600,10603
   + 
/django/trunk:1-9097,9099-9102,9104-9109,9111,9113-9144,9146-9151,9153-9156,9158-9159,9161-9187,9189-9247,9249-9262,9264-9277,9279-9298,9301-9302,9305-9331,9333-9343,9345,9347,9350-9352,9355-9396,9399-9462,9466-9469,9471-9488,9491-9526,9529,9533-9536,9539-9550,9556-9557,9559-9560,9562-9568,9570-9591,9595-9619,9621-9624,9626-9636,9638-9642,9644-9645,9647-9689,9691-9699,9703-9706,9709-9713,9716-9723,9725-9726,9730-9738,9740-9741,9750-9751,9757-9758,9761-9762,9767-9768,9770-9780,9782-9784,9789-9790,9793-9798,9801-9802,9806-9807,9809-9813,9821-9837,9842-9843,9847-9859,9861,9863-9875,9877-9881,9883-9887,9899-9903,9906-9909,9912,9914,9916-9917,9919-9920,9922-9927,9929,9931-9937,9939,9942-9943,9945-9950,9953-9954,9956-9962,9966-9977,9979-9984,9986-9988,9990-10001,10003-10004,10007,10009-10010,10013-10017,10019-10020,10022-10025,10031,10036-10041,10049-10052,10054-10061,10066-10069,10071-10076,10078-10079,10085-10087,10104,10106,10125-10127,10136,10138-10140,10143,10145-10147,10149-10160,10163-10167,10170,10173,10175-10176,10180,10185,10189,10192-10196,10198-10221,10223-10228,10230-10234,10236-10247,10250-10257,10259-10270,10273-10274,10276-10280,10282-10314,10316,10319-10322,10324-10325,10328-10329,10333-10344,10348-10351,10353-10356,10358-10363,10365-10368,10371-10380,10386-10407,10411,10413-10427,10429-10437,10440-10442,10444-10445,10447-10450,10452-10453,10457-10464,10466-10467,10469-10480,10482-10485,10489-10492,10495-10497,10499-10504,10508-10509,10511-10514,10517-10520,10524-10525,10528,10530-10535,10537,10539-10542,10544-10548,10550-10557,10561,10563-10564,10567-10571,10573-10574,10576-10578,10580-10589,10591-10592,10595-10596,10599-10600,10603

Modified: django/branches/releases/1.0.X/django/forms/models.py
===================================================================
--- django/branches/releases/1.0.X/django/forms/models.py       2009-04-21 
18:36:45 UTC (rev 10611)
+++ django/branches/releases/1.0.X/django/forms/models.py       2009-04-21 
18:58:32 UTC (rev 10612)
@@ -496,6 +496,9 @@
             # Remove the primary key from the form's data, we are only
             # creating new instances
             form.data[form.add_prefix(self._pk_field.name)] = None
+
+            # Remove the foreign key from the form's data
+            form.data[form.add_prefix(self.fk.name)] = None
         return form
 
     #...@classmethod

Modified: 
django/branches/releases/1.0.X/tests/regressiontests/admin_views/models.py
===================================================================
--- django/branches/releases/1.0.X/tests/regressiontests/admin_views/models.py  
2009-04-21 18:36:45 UTC (rev 10611)
+++ django/branches/releases/1.0.X/tests/regressiontests/admin_views/models.py  
2009-04-21 18:58:32 UTC (rev 10612)
@@ -240,7 +240,7 @@
 
 admin.site.register(Article, ArticleAdmin)
 admin.site.register(CustomArticle, CustomArticleAdmin)
-admin.site.register(Section, inlines=[ArticleInline])
+admin.site.register(Section, save_as=True, inlines=[ArticleInline])
 admin.site.register(ModelWithStringPrimaryKey)
 admin.site.register(Color)
 admin.site.register(Thing, ThingAdmin)

Modified: 
django/branches/releases/1.0.X/tests/regressiontests/admin_views/tests.py
===================================================================
--- django/branches/releases/1.0.X/tests/regressiontests/admin_views/tests.py   
2009-04-21 18:36:45 UTC (rev 10611)
+++ django/branches/releases/1.0.X/tests/regressiontests/admin_views/tests.py   
2009-04-21 18:58:32 UTC (rev 10612)
@@ -23,6 +23,7 @@
 
 class AdminViewBasicTest(TestCase):
     fixtures = ['admin-views-users.xml', 'admin-views-colors.xml', 
'admin-views-fabrics.xml']
+    urlbit = 'admin'
 
     def setUp(self):
         self.client.login(username='super', password='secret')
@@ -74,48 +75,66 @@
         response = 
self.client.post('/test_admin/admin/admin_views/section/add/', post_data)
         self.failUnlessEqual(response.status_code, 302) # redirect somewhere
 
+    # Post data for edit inline
+    inline_post_data = {
+        "name": u"Test section",
+        # inline data
+        "article_set-TOTAL_FORMS": u"6",
+        "article_set-INITIAL_FORMS": u"3",
+        "article_set-0-id": u"1",
+        # there is no title in database, give one here or formset will fail.
+        "article_set-0-title": u"Norske bostaver æøå skaper problemer",
+        "article_set-0-content": u"<p>Middle content</p>",
+        "article_set-0-date_0": u"2008-03-18",
+        "article_set-0-date_1": u"11:54:58",
+        "article_set-0-section": u"1",
+        "article_set-1-id": u"2",
+        "article_set-1-title": u"Need a title.",
+        "article_set-1-content": u"<p>Oldest content</p>",
+        "article_set-1-date_0": u"2000-03-18",
+        "article_set-1-date_1": u"11:54:58",
+        "article_set-2-id": u"3",
+        "article_set-2-title": u"Need a title.",
+        "article_set-2-content": u"<p>Newest content</p>",
+        "article_set-2-date_0": u"2009-03-18",
+        "article_set-2-date_1": u"11:54:58",
+        "article_set-3-id": u"",
+        "article_set-3-title": u"",
+        "article_set-3-content": u"",
+        "article_set-3-date_0": u"",
+        "article_set-3-date_1": u"",
+        "article_set-4-id": u"",
+        "article_set-4-title": u"",
+        "article_set-4-content": u"",
+        "article_set-4-date_0": u"",
+        "article_set-4-date_1": u"",
+        "article_set-5-id": u"",
+        "article_set-5-title": u"",
+        "article_set-5-content": u"",
+        "article_set-5-date_0": u"",
+        "article_set-5-date_1": u"",
+    }
+
     def testBasicEditPost(self):
         """
         A smoke test to ensure POST on edit_view works.
         """
-        post_data = {
-            "name": u"Test section",
-            # inline data
-            "article_set-TOTAL_FORMS": u"6",
-            "article_set-INITIAL_FORMS": u"3",
-            "article_set-0-id": u"1",
-            # there is no title in database, give one here or formset
-            # will fail.
-            "article_set-0-title": u"Norske bostaver æøå skaper problemer",
-            "article_set-0-content": u"<p>Middle content</p>",
-            "article_set-0-date_0": u"2008-03-18",
-            "article_set-0-date_1": u"11:54:58",
-            "article_set-1-id": u"2",
-            "article_set-1-title": u"Need a title.",
-            "article_set-1-content": u"<p>Oldest content</p>",
-            "article_set-1-date_0": u"2000-03-18",
-            "article_set-1-date_1": u"11:54:58",
-            "article_set-2-id": u"3",
-            "article_set-2-title": u"Need a title.",
-            "article_set-2-content": u"<p>Newest content</p>",
-            "article_set-2-date_0": u"2009-03-18",
-            "article_set-2-date_1": u"11:54:58",
-            "article_set-3-id": u"",
-            "article_set-3-title": u"",
-            "article_set-3-content": u"",
-            "article_set-3-date_0": u"",
-            "article_set-3-date_1": u"",
-            "article_set-4-id": u"",
-            "article_set-4-title": u"",
-            "article_set-4-content": u"",
-            "article_set-4-date_0": u"",
-            "article_set-4-date_1": u"",
-            "article_set-5-id": u"",
-            "article_set-5-title": u"",
-            "article_set-5-content": u"",
-            "article_set-5-date_0": u"",
-            "article_set-5-date_1": u"",
-        }
+        response = self.client.post('/test_admin/%s/admin_views/section/1/' % 
self.urlbit, self.inline_post_data)
+        self.failUnlessEqual(response.status_code, 302) # redirect somewhere
+
+    def testEditSaveAs(self):
+        """
+        Test "save as".
+        """
+        post_data = self.inline_post_data.copy()
+        post_data.update({
+            '_saveasnew': u'Save+as+new',
+            "article_set-1-section": u"1",
+            "article_set-2-section": u"1",
+            "article_set-3-section": u"1",
+            "article_set-4-section": u"1",
+            "article_set-5-section": u"1",
+        })
         response = 
self.client.post('/test_admin/admin/admin_views/section/1/', post_data)
         self.failUnlessEqual(response.status_code, 302) # redirect somewhere
 


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-updates@googlegroups.com
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to