diff --git a/RIGS/rigboard.py b/RIGS/rigboard.py index fc14a89e..2e2869ac 100644 --- a/RIGS/rigboard.py +++ b/RIGS/rigboard.py @@ -54,7 +54,7 @@ class EventOembed(generic.View): def get(self, request, pk=None): - embed_url = reverse('event_embed', args=[pk]) + embed_url = reverse('event_embed', args=[pk]) full_url = "{0}://{1}{2}".format(request.scheme, request.META['HTTP_HOST'], embed_url) data = { @@ -121,6 +121,7 @@ class EventDuplicate(EventUpdate): old = super(EventDuplicate, self).get_object(queryset) # Get the object (the event you're duplicating) new = copy.copy(old) # Make a copy of the object in memory new.based_on = old # Make the new event based on the old event + new.purchase_order = None if self.request.method in ('POST', 'PUT'): # This only happens on save (otherwise items won't display in editor) new.pk = None # This means a new event will be created on save, and all items will be re-created @@ -216,4 +217,4 @@ class EventArchive(generic.ArchiveIndexView): if len(qs) == 0: messages.add_message(self.request, messages.WARNING, "No events have been found matching those criteria.") - return qs \ No newline at end of file + return qs diff --git a/RIGS/test_functional.py b/RIGS/test_functional.py index 7e5010f7..673dadd1 100644 --- a/RIGS/test_functional.py +++ b/RIGS/test_functional.py @@ -438,7 +438,7 @@ class EventTest(LiveServerTestCase): pass def testEventDuplicate(self): - testEvent = models.Event.objects.create(name="TE E1", status=models.Event.PROVISIONAL, start_date=date.today() + timedelta(days=6), description="start future no end") + testEvent = models.Event.objects.create(name="TE E1", status=models.Event.PROVISIONAL, start_date=date.today() + timedelta(days=6), description="start future no end", purchase_order="TESTPO") item1 = models.EventItem( event=testEvent, @@ -498,6 +498,8 @@ class EventTest(LiveServerTestCase): infoPanel = self.browser.find_element_by_xpath('//div[contains(text(), "Event Info")]/..') self.assertIn("N0000%d"%testEvent.pk, infoPanel.find_element_by_xpath('//dt[text()="Based On"]/following-sibling::dd[1]').text) + # Check the PO hasn't carried through + self.assertNotIn("TESTPO", infoPanel.find_element_by_xpath('//dt[text()="PO"]/following-sibling::dd[1]').text) @@ -506,6 +508,8 @@ class EventTest(LiveServerTestCase): #Check that based-on hasn't crept into the old event infoPanel = self.browser.find_element_by_xpath('//div[contains(text(), "Event Info")]/..') self.assertNotIn("N0000%d"%testEvent.pk, infoPanel.find_element_by_xpath('//dt[text()="Based On"]/following-sibling::dd[1]').text) + # Check the PO remains on the old event + self.assertIn("TESTPO", infoPanel.find_element_by_xpath('//dt[text()="PO"]/following-sibling::dd[1]').text) # Check the items are as they were table = self.browser.find_element_by_id('item-table') # ID number is known, see above