agendas: export default_view for all agendas (#54159)
This commit is contained in:
parent
306b08cfe7
commit
aecdcb82b4
|
@ -0,0 +1,20 @@
|
|||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('agendas', '0089_agenda_event_display_template'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='agenda',
|
||||
name='default_view',
|
||||
field=models.CharField(
|
||||
choices=[('day', 'Day view'), ('month', 'Month view'), ('open_events', 'Open events')],
|
||||
max_length=20,
|
||||
verbose_name='Default view',
|
||||
),
|
||||
),
|
||||
]
|
|
@ -200,7 +200,7 @@ class Agenda(models.Model):
|
|||
null=True,
|
||||
on_delete=models.SET_NULL,
|
||||
)
|
||||
default_view = models.CharField(_('Default view'), max_length=20, choices=AGENDA_VIEWS, default='month')
|
||||
default_view = models.CharField(_('Default view'), max_length=20, choices=AGENDA_VIEWS)
|
||||
booking_form_url = models.CharField(
|
||||
_('Booking form URL'), max_length=200, blank=True, validators=[django_template_validator]
|
||||
)
|
||||
|
@ -241,8 +241,11 @@ class Agenda(models.Model):
|
|||
self.minimal_booking_delay = 1
|
||||
if self.maximal_booking_delay is None:
|
||||
self.maximal_booking_delay = 8 * 7
|
||||
if self.kind != 'events' and self.pk is None:
|
||||
self.default_view = 'day'
|
||||
if not self.default_view:
|
||||
if self.kind == 'events':
|
||||
self.default_view = 'month'
|
||||
else:
|
||||
self.default_view = 'day'
|
||||
super(Agenda, self).save(*args, **kwargs)
|
||||
if created and self.kind == 'events':
|
||||
desk = Desk.objects.create(agenda=self, slug='_exceptions_holder')
|
||||
|
@ -354,11 +357,11 @@ class Agenda(models.Model):
|
|||
'edit': self.edit_role.name if self.edit_role else None,
|
||||
},
|
||||
'resources': [x.slug for x in self.resources.all()],
|
||||
'default_view': self.default_view,
|
||||
}
|
||||
if hasattr(self, 'reminder_settings'):
|
||||
agenda['reminder_settings'] = self.reminder_settings.export_json()
|
||||
if self.kind == 'events':
|
||||
agenda['default_view'] = self.default_view
|
||||
agenda['booking_form_url'] = self.booking_form_url
|
||||
agenda['events'] = [x.export_json() for x in self.event_set.filter(primary_event__isnull=True)]
|
||||
if hasattr(self, 'notifications_settings'):
|
||||
|
|
|
@ -274,6 +274,27 @@ def test_import_export_recurring_event(app, freezer):
|
|||
assert Event.objects.filter(primary_event=event, places=42).count() == 7
|
||||
|
||||
|
||||
def test_import_export_meetings_agenda_options(app):
|
||||
agenda = Agenda.objects.create(
|
||||
label='Foo Bar',
|
||||
kind='meetings',
|
||||
default_view='month',
|
||||
)
|
||||
|
||||
output = get_output_of_command('export_site')
|
||||
assert len(json.loads(output)['agendas']) == 1
|
||||
import_site(data={}, clean=True)
|
||||
|
||||
with tempfile.NamedTemporaryFile() as f:
|
||||
f.write(force_bytes(output))
|
||||
f.flush()
|
||||
call_command('import_site', f.name)
|
||||
|
||||
assert Agenda.objects.count() == 1
|
||||
agenda = Agenda.objects.first()
|
||||
assert agenda.default_view == 'month'
|
||||
|
||||
|
||||
def test_import_export_permissions(app):
|
||||
meetings_agenda = Agenda.objects.create(label='Foo Bar', kind='meetings')
|
||||
group1 = Group.objects.create(name=u'gé1')
|
||||
|
|
Loading…
Reference in New Issue