agenda: fix event import (#53838)
This commit is contained in:
parent
d66778cfb8
commit
b8105d19ff
|
@ -1348,7 +1348,7 @@ class Event(models.Model):
|
|||
)
|
||||
data = clean_import_data(cls, data)
|
||||
if data.get('slug'):
|
||||
event, _ = cls.objects.update_or_create(slug=data['slug'], defaults=data)
|
||||
event, _ = cls.objects.update_or_create(agenda=data['agenda'], slug=data['slug'], defaults=data)
|
||||
else:
|
||||
event = cls(**data)
|
||||
event.save()
|
||||
|
|
|
@ -170,6 +170,7 @@ def test_import_export_events_agenda_options(app):
|
|||
def test_import_export_event_details(app):
|
||||
agenda = Agenda.objects.create(label='Foo Bar', kind='events')
|
||||
Event.objects.create(
|
||||
slug='event',
|
||||
agenda=agenda,
|
||||
description='description',
|
||||
pricing='100',
|
||||
|
@ -178,9 +179,17 @@ def test_import_export_event_details(app):
|
|||
places=42,
|
||||
start_datetime=now(),
|
||||
)
|
||||
# check event (agenda, slug) unicity
|
||||
agenda2 = Agenda.objects.create(label='Foo Bar 2', kind='events')
|
||||
Event.objects.create(
|
||||
slug='event',
|
||||
agenda=agenda2,
|
||||
places=42,
|
||||
start_datetime=now(),
|
||||
)
|
||||
|
||||
output = get_output_of_command('export_site')
|
||||
assert len(json.loads(output)['agendas']) == 1
|
||||
assert len(json.loads(output)['agendas']) == 2
|
||||
import_site(data={}, clean=True)
|
||||
|
||||
with tempfile.NamedTemporaryFile() as f:
|
||||
|
@ -188,12 +197,15 @@ def test_import_export_event_details(app):
|
|||
f.flush()
|
||||
call_command('import_site', f.name)
|
||||
|
||||
assert Agenda.objects.count() == 1
|
||||
assert Agenda.objects.count() == 2
|
||||
assert Event.objects.count() == 2
|
||||
first_imported_event = Agenda.objects.get(label='Foo Bar').event_set.first()
|
||||
assert first_imported_event.slug == 'event'
|
||||
assert first_imported_event.description == 'description'
|
||||
assert first_imported_event.pricing == '100'
|
||||
assert first_imported_event.url == 'https://example.net/'
|
||||
assert first_imported_event.publication_date == datetime.date(2020, 5, 11)
|
||||
assert Agenda.objects.get(label='Foo Bar 2').event_set.first().slug == 'event'
|
||||
|
||||
|
||||
def test_import_export_recurring_event(app, freezer):
|
||||
|
|
Loading…
Reference in New Issue