manager: fix virtual agenda import (#45084)
This commit is contained in:
parent
cbae56f0e1
commit
65c1766db4
|
@ -312,7 +312,10 @@ class Agenda(models.Model):
|
|||
excluded_timeperiod['agenda'] = agenda
|
||||
TimePeriod.import_json(excluded_timeperiod).save()
|
||||
for real_agenda in real_agendas:
|
||||
real_agenda = Agenda.objects.get(slug=real_agenda['slug'], kind=real_agenda['kind'])
|
||||
try:
|
||||
real_agenda = Agenda.objects.get(slug=real_agenda['slug'], kind=real_agenda['kind'])
|
||||
except Agenda.DoesNotExist:
|
||||
raise AgendaImportError(_('The real agenda "%s" does not exist.') % real_agenda['slug'])
|
||||
try:
|
||||
vm, created = VirtualMember.objects.get_or_create(
|
||||
virtual_agenda=agenda, real_agenda=real_agenda
|
||||
|
|
|
@ -305,6 +305,21 @@ def test_import_export_virtual_agenda_with_included_agenda(app):
|
|||
)
|
||||
|
||||
|
||||
def test_import_export_virtual_agenda_with_missing_agenda(app):
|
||||
virtual_agenda = Agenda.objects.create(label='Virtual Agenda', kind='virtual')
|
||||
foo_agenda = Agenda.objects.create(label='Foo', kind='meetings')
|
||||
VirtualMember.objects.create(virtual_agenda=virtual_agenda, real_agenda=foo_agenda)
|
||||
output = get_output_of_command('export_site')
|
||||
payload = json.loads(output)
|
||||
del payload['agendas'][0] # remove real agenda
|
||||
|
||||
virtual_agenda.delete()
|
||||
foo_agenda.delete()
|
||||
with pytest.raises(AgendaImportError) as excinfo:
|
||||
import_site(payload, overwrite=False)
|
||||
assert 'The real agenda "foo" does not exist.' in '%s' % excinfo.value
|
||||
|
||||
|
||||
def test_import_export_desk_missing_fields(app, meetings_agenda):
|
||||
output = get_output_of_command('export_site')
|
||||
payload = json.loads(output)
|
||||
|
|
Loading…
Reference in New Issue