Fix #634 -- Do not allow deleting the last date of an event series (#675)

* Checking for the last date in the event series before deleting a date. Last date in a event series should never be delted.

* Adding check to ensure that last date in a event series is not deleted. Editing unit test around deleting subevent to assert on alert-danger

* Increasing the scope of test_delete. We are now creating 2 subevents and testing deleting one and ensuring that the last one is not deleted

* Fixing alert text. Removing a redundant if condition for checking subevent count

* Adding assert for second event to ensure its not deleted

* Minor fixes and rebase
This commit is contained in:
Aiman Parvaiz
2018-01-14 04:54:22 -08:00
committed by Raphael Michel
parent 50575d45c1
commit dd42037f21
3 changed files with 14 additions and 3 deletions

View File

@@ -8,7 +8,7 @@ from pytz import timezone
from tests.base import SoupTest, extract_form_fields
from pretix.base.models import (
Event, Order, OrderPosition, Organizer, Team, User,
Event, Order, OrderPosition, Organizer, SubEvent, Team, User,
)
from pretix.base.models.items import SubEventItem
from pretix.testutils.mock import mocker_context
@@ -594,6 +594,7 @@ class SubEventsTest(SoupTest):
self.client.login(email='dummy@dummy.dummy', password='dummy')
self.subevent1 = self.event1.subevents.create(name='SE1', date_from=now())
self.subevent2 = self.event1.subevents.create(name='SE2', date_from=now())
def test_list(self):
doc = self.get_doc('/control/event/ccc/30c3/subevents/')
@@ -699,7 +700,11 @@ class SubEventsTest(SoupTest):
assert doc.select("button")
doc = self.post_doc('/control/event/ccc/30c3/subevents/%d/delete' % self.subevent1.pk, {})
assert doc.select(".alert-success")
assert not SubEventItem.objects.filter(pk=self.subevent1.pk).exists()
# deleting the second event
doc = self.post_doc('/control/event/ccc/30c3/subevents/%d/delete' % self.subevent2.pk, {})
assert doc.select(".alert-danger")
assert SubEvent.objects.filter(pk=self.subevent2.pk).exists()
assert not SubEvent.objects.filter(pk=self.subevent1.pk).exists()
def test_delete_with_orders(self):
o = Order.objects.create(