manager: remove hidden fields from Forms (#47091)
This commit is contained in:
parent
48c786e80e
commit
e934c54109
|
@ -117,11 +117,9 @@ class NewEventForm(forms.ModelForm):
|
|||
class Meta:
|
||||
model = Event
|
||||
widgets = {
|
||||
'agenda': forms.HiddenInput(),
|
||||
'publication_date': forms.DateInput(attrs={'type': 'date'}, format='%Y-%m-%d'),
|
||||
}
|
||||
fields = [
|
||||
'agenda',
|
||||
'start_datetime',
|
||||
'duration',
|
||||
'publication_date',
|
||||
|
@ -141,11 +139,9 @@ class EventForm(forms.ModelForm):
|
|||
class Meta:
|
||||
model = Event
|
||||
widgets = {
|
||||
'agenda': forms.HiddenInput(),
|
||||
'publication_date': forms.DateInput(attrs={'type': 'date'}, format='%Y-%m-%d'),
|
||||
}
|
||||
fields = [
|
||||
'agenda',
|
||||
'start_datetime',
|
||||
'duration',
|
||||
'publication_date',
|
||||
|
@ -166,21 +162,19 @@ class AgendaResourceForm(forms.Form):
|
|||
resource = forms.ModelChoiceField(label=_('Resource'), queryset=Resource.objects.none())
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
agenda = kwargs.pop('agenda')
|
||||
super().__init__(*args, **kwargs)
|
||||
self.fields['resource'].queryset = Resource.objects.exclude(agenda=self.initial['agenda'])
|
||||
self.fields['resource'].queryset = Resource.objects.exclude(agenda=agenda)
|
||||
|
||||
|
||||
class NewMeetingTypeForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = MeetingType
|
||||
widgets = {
|
||||
'agenda': forms.HiddenInput(),
|
||||
}
|
||||
exclude = ['slug', 'deleted']
|
||||
exclude = ['agenda', 'slug', 'deleted']
|
||||
|
||||
def clean(self):
|
||||
super().clean()
|
||||
agenda = self.cleaned_data['agenda']
|
||||
agenda = self.instance.agenda
|
||||
for virtual_agenda in agenda.virtual_agendas.all():
|
||||
for real_agenda in virtual_agenda.real_agendas.all():
|
||||
if real_agenda != agenda:
|
||||
|
@ -192,10 +186,7 @@ class NewMeetingTypeForm(forms.ModelForm):
|
|||
class MeetingTypeForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = MeetingType
|
||||
widgets = {
|
||||
'agenda': forms.HiddenInput(),
|
||||
}
|
||||
exclude = ['deleted']
|
||||
exclude = ['agenda', 'deleted']
|
||||
|
||||
def clean(self):
|
||||
super().clean()
|
||||
|
@ -232,18 +223,8 @@ class TimePeriodForm(forms.ModelForm):
|
|||
widgets = {
|
||||
'start_time': widgets.TimeWidget(),
|
||||
'end_time': widgets.TimeWidget(),
|
||||
'desk': forms.HiddenInput(),
|
||||
'agenda': forms.HiddenInput(),
|
||||
}
|
||||
exclude = []
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
has_desk = kwargs.pop('has_desk')
|
||||
super(TimePeriodForm, self).__init__(*args, **kwargs)
|
||||
if has_desk:
|
||||
del self.fields['agenda']
|
||||
else:
|
||||
del self.fields['desk']
|
||||
exclude = ['agenda', 'desk']
|
||||
|
||||
def clean_end_time(self):
|
||||
if self.cleaned_data['end_time'] <= self.cleaned_data['start_time']:
|
||||
|
@ -258,14 +239,11 @@ class NewDeskForm(forms.ModelForm):
|
|||
|
||||
class Meta:
|
||||
model = Desk
|
||||
widgets = {
|
||||
'agenda': forms.HiddenInput(),
|
||||
}
|
||||
exclude = ['slug']
|
||||
exclude = ['agenda', 'slug']
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.fields['copy_from'].queryset = Desk.objects.filter(agenda=self.initial['agenda'])
|
||||
self.fields['copy_from'].queryset = Desk.objects.filter(agenda=self.instance.agenda)
|
||||
|
||||
def save(self):
|
||||
if self.cleaned_data['copy_from']:
|
||||
|
@ -276,10 +254,7 @@ class NewDeskForm(forms.ModelForm):
|
|||
class DeskForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Desk
|
||||
widgets = {
|
||||
'agenda': forms.HiddenInput(),
|
||||
}
|
||||
exclude = []
|
||||
exclude = ['agenda']
|
||||
|
||||
|
||||
class TimePeriodExceptionForm(forms.ModelForm):
|
||||
|
@ -287,10 +262,7 @@ class TimePeriodExceptionForm(forms.ModelForm):
|
|||
|
||||
class Meta:
|
||||
model = TimePeriodException
|
||||
fields = ['desk', 'start_datetime', 'end_datetime', 'label']
|
||||
widgets = {
|
||||
'desk': forms.HiddenInput(),
|
||||
}
|
||||
fields = ['start_datetime', 'end_datetime', 'label']
|
||||
field_classes = {
|
||||
'start_datetime': SplitDateTimeField,
|
||||
'end_datetime': SplitDateTimeField,
|
||||
|
@ -300,7 +272,7 @@ class TimePeriodExceptionForm(forms.ModelForm):
|
|||
super().__init__(*args, **kwargs)
|
||||
if self.instance.pk is not None:
|
||||
del self.fields['all_desks']
|
||||
elif 'desk' in self.initial and self.initial['desk'].agenda.desk_set.count() == 1:
|
||||
elif self.instance.desk_id and self.instance.desk.agenda.desk_set.count() == 1:
|
||||
del self.fields['all_desks']
|
||||
|
||||
def clean(self):
|
||||
|
@ -316,15 +288,12 @@ class TimePeriodExceptionForm(forms.ModelForm):
|
|||
class VirtualMemberForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = VirtualMember
|
||||
fields = ['virtual_agenda', 'real_agenda']
|
||||
widgets = {
|
||||
'virtual_agenda': forms.HiddenInput(),
|
||||
}
|
||||
fields = ['real_agenda']
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(VirtualMemberForm, self).__init__(*args, **kwargs)
|
||||
self.fields['real_agenda'].queryset = Agenda.objects.filter(kind='meetings').exclude(
|
||||
virtual_agendas__pk__in=[kwargs['initial']['agenda']]
|
||||
virtual_agendas=self.instance.virtual_agenda
|
||||
)
|
||||
|
||||
|
||||
|
@ -528,10 +497,7 @@ class EventCancelForm(forms.ModelForm):
|
|||
class AgendaNotificationsForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = AgendaNotificationsSettings
|
||||
fields = '__all__'
|
||||
widgets = {
|
||||
'agenda': forms.HiddenInput(),
|
||||
}
|
||||
exclude = ['agenda']
|
||||
|
||||
@staticmethod
|
||||
def update_choices(choices, settings):
|
||||
|
|
|
@ -662,10 +662,12 @@ class ManagedAgendaMixin(ViewableAgendaMixin):
|
|||
def check_permissions(self, user):
|
||||
return self.agenda.can_be_managed(user)
|
||||
|
||||
def get_initial(self):
|
||||
initial = super(ManagedAgendaMixin, self).get_initial()
|
||||
initial['agenda'] = self.agenda.id
|
||||
return initial
|
||||
def get_form_kwargs(self):
|
||||
kwargs = super().get_form_kwargs()
|
||||
if not kwargs.get('instance'):
|
||||
kwargs['instance'] = self.model()
|
||||
kwargs['instance'].agenda = self.agenda
|
||||
return kwargs
|
||||
|
||||
def get_success_url(self):
|
||||
return reverse('chrono-manager-agenda-settings', kwargs={'pk': self.agenda.id})
|
||||
|
@ -1177,17 +1179,19 @@ class ManagedDeskMixin(object):
|
|||
raise PermissionDenied()
|
||||
return super(ManagedDeskMixin, self).dispatch(request, *args, **kwargs)
|
||||
|
||||
def get_form_kwargs(self):
|
||||
kwargs = super().get_form_kwargs()
|
||||
if not kwargs.get('instance'):
|
||||
kwargs['instance'] = self.model()
|
||||
kwargs['instance'].desk = self.desk
|
||||
return kwargs
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(ManagedDeskMixin, self).get_context_data(**kwargs)
|
||||
context['desk'] = self.desk
|
||||
context['agenda'] = self.desk.agenda
|
||||
return context
|
||||
|
||||
def get_initial(self):
|
||||
initial = super(ManagedDeskMixin, self).get_initial()
|
||||
initial['desk'] = self.desk
|
||||
return initial
|
||||
|
||||
def get_success_url(self):
|
||||
return reverse('chrono-manager-agenda-settings', kwargs={'pk': self.desk.agenda.id})
|
||||
|
||||
|
@ -1217,10 +1221,8 @@ class ManagedTimePeriodMixin(object):
|
|||
def dispatch(self, request, *args, **kwargs):
|
||||
self.time_period = self.get_object()
|
||||
self.agenda = self.time_period.agenda
|
||||
self.has_desk = False
|
||||
if self.time_period.desk:
|
||||
self.agenda = self.time_period.desk.agenda
|
||||
self.has_desk = True
|
||||
|
||||
if not self.agenda.can_be_managed(request.user):
|
||||
raise PermissionDenied()
|
||||
|
@ -1292,9 +1294,11 @@ class AgendaDuplicate(ManagedAgendaMixin, FormView):
|
|||
def get_success_url(self):
|
||||
return reverse('chrono-manager-agenda-settings', kwargs={'pk': self.new_agenda.pk})
|
||||
|
||||
def get_form_kwargs(self):
|
||||
return super(FormView, self).get_form_kwargs()
|
||||
|
||||
def form_valid(self, form):
|
||||
agenda = Agenda.objects.get(pk=self.kwargs['pk'])
|
||||
self.new_agenda = agenda.duplicate(label=form.cleaned_data['label'])
|
||||
self.new_agenda = self.agenda.duplicate(label=form.cleaned_data['label'])
|
||||
return super().form_valid(form)
|
||||
|
||||
|
||||
|
@ -1331,7 +1335,7 @@ class AgendaImportEventsView(ManagedAgendaMixin, FormView):
|
|||
agenda = None
|
||||
|
||||
def get_form_kwargs(self):
|
||||
kwargs = super(AgendaImportEventsView, self).get_form_kwargs()
|
||||
kwargs = super(FormView, self).get_form_kwargs()
|
||||
kwargs['agenda_pk'] = self.kwargs['pk']
|
||||
return kwargs
|
||||
|
||||
|
@ -1499,12 +1503,16 @@ event_delete = EventDeleteView.as_view()
|
|||
|
||||
class AgendaAddResourceView(ManagedAgendaMixin, FormView):
|
||||
template_name = 'chrono/manager_agenda_resource_form.html'
|
||||
model = Event
|
||||
form_class = AgendaResourceForm
|
||||
|
||||
def set_agenda(self, **kwargs):
|
||||
self.agenda = get_object_or_404(Agenda, id=kwargs.get('pk'), kind='meetings')
|
||||
|
||||
def get_form_kwargs(self):
|
||||
kwargs = super(FormView, self).get_form_kwargs()
|
||||
kwargs['agenda'] = self.agenda
|
||||
return kwargs
|
||||
|
||||
def form_valid(self, form):
|
||||
self.agenda.resources.add(form.cleaned_data['resource'])
|
||||
return super().form_valid(form)
|
||||
|
@ -1532,7 +1540,7 @@ agenda_delete_resource = AgendaResourceDeleteView.as_view()
|
|||
|
||||
class AgendaAddMeetingTypeView(ManagedAgendaMixin, CreateView):
|
||||
template_name = 'chrono/manager_meeting_type_form.html'
|
||||
model = Event
|
||||
model = MeetingType
|
||||
form_class = NewMeetingTypeForm
|
||||
|
||||
|
||||
|
@ -1612,6 +1620,9 @@ class AgendaAddTimePeriodView(ManagedDeskMixin, FormView):
|
|||
template_name = 'chrono/manager_time_period_form.html'
|
||||
form_class = TimePeriodAddForm
|
||||
|
||||
def get_form_kwargs(self):
|
||||
return super(FormView, self).get_form_kwargs()
|
||||
|
||||
def form_valid(self, form):
|
||||
process_time_period_add_form(form, desk=self.desk)
|
||||
return super(AgendaAddTimePeriodView, self).form_valid(form)
|
||||
|
@ -1624,6 +1635,9 @@ class VirtualAgendaAddTimePeriodView(ManagedAgendaMixin, FormView):
|
|||
template_name = 'chrono/manager_time_period_form.html'
|
||||
form_class = TimePeriodAddForm
|
||||
|
||||
def get_form_kwargs(self):
|
||||
return super(FormView, self).get_form_kwargs()
|
||||
|
||||
def form_valid(self, form):
|
||||
process_time_period_add_form(form, agenda=self.agenda)
|
||||
return super(VirtualAgendaAddTimePeriodView, self).form_valid(form)
|
||||
|
@ -1637,11 +1651,6 @@ class TimePeriodEditView(ManagedTimePeriodMixin, UpdateView):
|
|||
model = TimePeriod
|
||||
form_class = TimePeriodForm
|
||||
|
||||
def get_form_kwargs(self):
|
||||
kwargs = super(TimePeriodEditView, self).get_form_kwargs()
|
||||
kwargs['has_desk'] = self.has_desk
|
||||
return kwargs
|
||||
|
||||
|
||||
time_period_edit = TimePeriodEditView.as_view()
|
||||
|
||||
|
@ -1701,8 +1710,8 @@ class VirtualMemberAddView(ManagedAgendaMixin, CreateView):
|
|||
model = VirtualMember
|
||||
|
||||
def get_form_kwargs(self):
|
||||
kwargs = super(VirtualMemberAddView, self).get_form_kwargs()
|
||||
kwargs['initial']['virtual_agenda'] = kwargs['initial']['agenda']
|
||||
kwargs = super(CreateView, self).get_form_kwargs()
|
||||
kwargs['instance'] = VirtualMember(virtual_agenda=self.agenda)
|
||||
return kwargs
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue