0002-agendas-add-desk_simple_management-flag-48924.patch
chrono/agendas/migrations/0074_simple_desks.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
from __future__ import unicode_literals |
|
3 | ||
4 |
from django.db import migrations, models |
|
5 | ||
6 | ||
7 |
class Migration(migrations.Migration): |
|
8 | ||
9 |
dependencies = [ |
|
10 |
('agendas', '0073_auto_20210125_1800'), |
|
11 |
] |
|
12 | ||
13 |
operations = [ |
|
14 |
migrations.AddField( |
|
15 |
model_name='agenda', |
|
16 |
name='desk_simple_management', |
|
17 |
field=models.BooleanField(default=False), |
|
18 |
), |
|
19 |
] |
chrono/agendas/models.py | ||
---|---|---|
195 | 195 |
booking_form_url = models.CharField( |
196 | 196 |
_('Booking form URL'), max_length=200, blank=True, validators=[django_template_validator] |
197 | 197 |
) |
198 |
desk_simple_management = models.BooleanField(default=False) |
|
198 | 199 | |
199 | 200 |
class Meta: |
200 | 201 |
ordering = ['label'] |
chrono/manager/forms.py | ||
---|---|---|
54 | 54 | |
55 | 55 | |
56 | 56 |
class AgendaAddForm(forms.ModelForm): |
57 |
class Meta: |
|
58 |
model = Agenda |
|
59 |
fields = ['label', 'kind', 'category', 'edit_role', 'view_role'] |
|
60 | ||
61 | 57 |
edit_role = forms.ModelChoiceField( |
62 | 58 |
label=_('Edit Role'), required=False, queryset=Group.objects.all().order_by('name') |
63 | 59 |
) |
... | ... | |
65 | 61 |
label=_('View Role'), required=False, queryset=Group.objects.all().order_by('name') |
66 | 62 |
) |
67 | 63 | |
64 |
class Meta: |
|
65 |
model = Agenda |
|
66 |
fields = ['label', 'kind', 'category', 'edit_role', 'view_role'] |
|
67 | ||
68 |
def save(self, *args, **kwargs): |
|
69 |
super().save() |
|
70 |
if self.instance.kind == 'meetings': |
|
71 |
default_desk = self.instance.desk_set.create(label=_('Desk 1')) |
|
72 |
default_desk.import_timeperiod_exceptions_from_settings(enable=True) |
|
73 |
self.instance.desk_simple_management = True |
|
74 |
self.instance.save() |
|
75 |
return self.instance |
|
76 | ||
68 | 77 | |
69 | 78 |
class AgendaEditForm(forms.ModelForm): |
70 | 79 |
class Meta: |
chrono/manager/views.py | ||
---|---|---|
616 | 616 |
raise PermissionDenied() |
617 | 617 |
return super(AgendaAddView, self).dispatch(request, *args, **kwargs) |
618 | 618 | |
619 |
def form_valid(self, form): |
|
620 |
model_form = super(AgendaAddView, self).form_valid(form) |
|
621 |
if self.object.kind == 'meetings': |
|
622 |
default_desk = Desk(agenda=self.object, label=_('Desk 1')) |
|
623 |
default_desk.save() |
|
624 |
default_desk.import_timeperiod_exceptions_from_settings(enable=True) |
|
625 |
return model_form |
|
626 | ||
627 | 619 |
def get_success_url(self): |
628 | 620 |
return reverse('chrono-manager-agenda-settings', kwargs={'pk': self.object.id}) |
629 | 621 |
tests/test_manager.py | ||
---|---|---|
883 | 883 |
assert '<h2>Settings' in resp.text |
884 | 884 |
assert agenda.minimal_booking_delay == 1 |
885 | 885 |
assert agenda.maximal_booking_delay == 56 |
886 |
assert agenda.kind == 'events' |
|
887 |
assert agenda.desk_simple_management is False |
|
888 | ||
889 |
resp = app.get('/manage/agendas/add/') |
|
890 |
resp.form['label'] = 'Foo bar 2' |
|
891 |
resp.form['kind'] = 'meetings' |
|
892 |
resp = resp.form.submit() |
|
893 |
agenda = Agenda.objects.latest('pk') |
|
894 |
assert agenda.kind == 'meetings' |
|
895 |
assert agenda.desk_simple_management is True |
|
896 | ||
897 |
resp = app.get('/manage/agendas/add/') |
|
898 |
resp.form['label'] = 'Foo bar 3' |
|
899 |
resp.form['kind'] = 'virtual' |
|
900 |
resp = resp.form.submit() |
|
901 |
agenda = Agenda.objects.latest('pk') |
|
902 |
assert agenda.kind == 'virtual' |
|
903 |
assert agenda.desk_simple_management is False |
|
886 | 904 | |
887 | 905 | |
888 | 906 |
@override_settings( |
889 |
- |