agendas: add desk_simple_management flag (#48924)
This commit is contained in:
parent
7da43d286f
commit
67739e6da0
|
@ -0,0 +1,19 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('agendas', '0073_auto_20210125_1800'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='agenda',
|
||||
name='desk_simple_management',
|
||||
field=models.BooleanField(default=False),
|
||||
),
|
||||
]
|
|
@ -195,6 +195,7 @@ class Agenda(models.Model):
|
|||
booking_form_url = models.CharField(
|
||||
_('Booking form URL'), max_length=200, blank=True, validators=[django_template_validator]
|
||||
)
|
||||
desk_simple_management = models.BooleanField(default=False)
|
||||
|
||||
class Meta:
|
||||
ordering = ['label']
|
||||
|
|
|
@ -54,10 +54,6 @@ from .widgets import SplitDateTimeField
|
|||
|
||||
|
||||
class AgendaAddForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Agenda
|
||||
fields = ['label', 'kind', 'category', 'edit_role', 'view_role']
|
||||
|
||||
edit_role = forms.ModelChoiceField(
|
||||
label=_('Edit Role'), required=False, queryset=Group.objects.all().order_by('name')
|
||||
)
|
||||
|
@ -65,6 +61,19 @@ class AgendaAddForm(forms.ModelForm):
|
|||
label=_('View Role'), required=False, queryset=Group.objects.all().order_by('name')
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = Agenda
|
||||
fields = ['label', 'kind', 'category', 'edit_role', 'view_role']
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
super().save()
|
||||
if self.instance.kind == 'meetings':
|
||||
default_desk = self.instance.desk_set.create(label=_('Desk 1'))
|
||||
default_desk.import_timeperiod_exceptions_from_settings(enable=True)
|
||||
self.instance.desk_simple_management = True
|
||||
self.instance.save()
|
||||
return self.instance
|
||||
|
||||
|
||||
class AgendaEditForm(forms.ModelForm):
|
||||
class Meta:
|
||||
|
|
|
@ -616,14 +616,6 @@ class AgendaAddView(CreateView):
|
|||
raise PermissionDenied()
|
||||
return super(AgendaAddView, self).dispatch(request, *args, **kwargs)
|
||||
|
||||
def form_valid(self, form):
|
||||
model_form = super(AgendaAddView, self).form_valid(form)
|
||||
if self.object.kind == 'meetings':
|
||||
default_desk = Desk(agenda=self.object, label=_('Desk 1'))
|
||||
default_desk.save()
|
||||
default_desk.import_timeperiod_exceptions_from_settings(enable=True)
|
||||
return model_form
|
||||
|
||||
def get_success_url(self):
|
||||
return reverse('chrono-manager-agenda-settings', kwargs={'pk': self.object.id})
|
||||
|
||||
|
|
|
@ -883,6 +883,24 @@ def test_add_agenda(app, admin_user):
|
|||
assert '<h2>Settings' in resp.text
|
||||
assert agenda.minimal_booking_delay == 1
|
||||
assert agenda.maximal_booking_delay == 56
|
||||
assert agenda.kind == 'events'
|
||||
assert agenda.desk_simple_management is False
|
||||
|
||||
resp = app.get('/manage/agendas/add/')
|
||||
resp.form['label'] = 'Foo bar 2'
|
||||
resp.form['kind'] = 'meetings'
|
||||
resp = resp.form.submit()
|
||||
agenda = Agenda.objects.latest('pk')
|
||||
assert agenda.kind == 'meetings'
|
||||
assert agenda.desk_simple_management is True
|
||||
|
||||
resp = app.get('/manage/agendas/add/')
|
||||
resp.form['label'] = 'Foo bar 3'
|
||||
resp.form['kind'] = 'virtual'
|
||||
resp = resp.form.submit()
|
||||
agenda = Agenda.objects.latest('pk')
|
||||
assert agenda.kind == 'virtual'
|
||||
assert agenda.desk_simple_management is False
|
||||
|
||||
|
||||
@override_settings(
|
||||
|
|
Loading…
Reference in New Issue