diff --git a/src/pretix/base/models/event.py b/src/pretix/base/models/event.py index 6350c9109..e42bcc242 100644 --- a/src/pretix/base/models/event.py +++ b/src/pretix/base/models/event.py @@ -559,7 +559,8 @@ class Event(EventMixin, LoggedModel): self.plugins = other.plugins self.is_public = other.is_public - self.date_admission = other.date_admission + if other.date_admission: + self.date_admission = self.date_from + (other.date_admission - other.date_from) self.testmode = other.testmode self.save() self.log_action('pretix.object.cloned', data={'source': other.slug, 'source_id': other.pk}) diff --git a/src/tests/base/test_models.py b/src/tests/base/test_models.py index bf270261b..066789b62 100644 --- a/src/tests/base/test_models.py +++ b/src/tests/base/test_models.py @@ -1888,7 +1888,8 @@ class EventTest(TestCase): def test_copy(self): event1 = Event.objects.create( organizer=self.organizer, name='Download', slug='ab1234', - date_from=datetime.datetime(2013, 12, 26, tzinfo=datetime.timezone.utc), + date_from=datetime.datetime(2013, 12, 26, 9, 0, 0, tzinfo=datetime.timezone.utc), + date_admission=datetime.datetime(2013, 12, 26, 8, 0, 0, tzinfo=datetime.timezone.utc), is_public=True, ) tr7 = event1.tax_rules.create(rate=Decimal('7.00')) @@ -1919,7 +1920,7 @@ class EventTest(TestCase): event2 = Event.objects.create( organizer=self.organizer, name='Download', slug='ab54321', - date_from=datetime.datetime(2013, 12, 26, tzinfo=datetime.timezone.utc) + date_from=datetime.datetime(2013, 12, 27, 9, 0, 0, tzinfo=datetime.timezone.utc), ) event2.copy_data_from(event1) @@ -1927,6 +1928,8 @@ class EventTest(TestCase): a.refresh_from_db() assert a.event == event1 + assert event2.date_admission == datetime.datetime(2013, 12, 27, 8, 0, 0, tzinfo=datetime.timezone.utc) + trnew = event2.tax_rules.first() assert trnew.rate == tr7.rate c1new = event2.categories.get(name='Tickets')