manager: use native checkbox select widget (#52879)
This commit is contained in:
parent
cf6a9c3ece
commit
e26c8da550
|
@ -293,7 +293,7 @@ class MeetingTypeForm(forms.ModelForm):
|
|||
|
||||
class TimePeriodAddForm(forms.Form):
|
||||
weekdays = forms.MultipleChoiceField(
|
||||
label=_('Days'), widget=widgets.WeekdaysWidget(), choices=WEEKDAYS_LIST
|
||||
label=_('Days'), widget=forms.CheckboxSelectMultiple(), choices=WEEKDAYS_LIST
|
||||
)
|
||||
start_time = forms.TimeField(label=_('Start Time'), widget=widgets.TimeWidget())
|
||||
end_time = forms.TimeField(label=_('End Time'), widget=widgets.TimeWidget())
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
|
||||
from django.forms.fields import SplitDateTimeField
|
||||
from django.forms.widgets import SelectMultiple, SplitDateTimeWidget, TimeInput
|
||||
from django.forms.widgets import SplitDateTimeWidget, TimeInput
|
||||
from django.utils.safestring import mark_safe
|
||||
|
||||
|
||||
|
@ -59,29 +59,3 @@ class TimeWidget(TimeInput):
|
|||
super(TimeWidget, self).__init__(**kwargs)
|
||||
self.attrs['step'] = '300' # 5 minutes
|
||||
self.attrs['pattern'] = '[0-9]{2}:[0-9]{2}'
|
||||
|
||||
|
||||
class WeekdaysWidget(SelectMultiple):
|
||||
def render(self, name, value, attrs=None, choices=(), renderer=None):
|
||||
s = []
|
||||
value = value or []
|
||||
for choice_id, choice_label in self.choices:
|
||||
s.append(
|
||||
'<li><label><input type="checkbox" '
|
||||
' name="%(name)s-%(choice_id)s" %(checked)s>'
|
||||
'<span>%(choice_label)s</span></label></li>'
|
||||
% {
|
||||
'name': name,
|
||||
'checked': 'checked' if choice_id in value else '',
|
||||
'choice_id': choice_id,
|
||||
'choice_label': choice_label,
|
||||
}
|
||||
)
|
||||
return mark_safe('<ul id="%(id)s">' % attrs + '\n'.join(s) + '</ul>')
|
||||
|
||||
def value_from_datadict(self, data, files, name):
|
||||
choices = []
|
||||
for choice_id, choice_label in self.choices:
|
||||
if data.get('%s-%s' % (name, choice_id)):
|
||||
choices.append(choice_id)
|
||||
return choices
|
||||
|
|
|
@ -870,7 +870,7 @@ def test_meetings_agenda_add_time_period(app, admin_user):
|
|||
app = login(app)
|
||||
resp = app.get('/manage/agendas/%s/settings' % agenda.pk)
|
||||
resp = resp.click('Add a time period', index=0)
|
||||
resp.form['weekdays-2'].checked = True
|
||||
resp.form.get('weekdays', index=2).checked = True
|
||||
resp.form['start_time'] = '10:00'
|
||||
resp.form['end_time'] = '17:00'
|
||||
resp = resp.form.submit()
|
||||
|
@ -884,7 +884,7 @@ def test_meetings_agenda_add_time_period(app, admin_user):
|
|||
|
||||
# add a second time period
|
||||
resp = resp.click('Add a time period', index=0)
|
||||
resp.form['weekdays-0'].checked = True
|
||||
resp.form.get('weekdays', index=0).checked = True
|
||||
resp.form['start_time'] = '10:00'
|
||||
resp.form['end_time'] = '13:00'
|
||||
resp = resp.form.submit()
|
||||
|
@ -895,7 +895,7 @@ def test_meetings_agenda_add_time_period(app, admin_user):
|
|||
|
||||
# invert start and end
|
||||
resp2 = resp.click('Add a time period', index=0)
|
||||
resp2.form['weekdays-0'].checked = True
|
||||
resp2.form.get('weekdays', index=0).checked = True
|
||||
resp2.form['start_time'] = '13:00'
|
||||
resp2.form['end_time'] = '10:00'
|
||||
resp2 = resp2.form.submit()
|
||||
|
@ -903,8 +903,8 @@ def test_meetings_agenda_add_time_period(app, admin_user):
|
|||
|
||||
# and add same time periods on multiple days
|
||||
resp = resp.click('Add a time period', index=0)
|
||||
resp.form['weekdays-4'].checked = True
|
||||
resp.form['weekdays-5'].checked = True
|
||||
resp.form.get('weekdays', index=4).checked = True
|
||||
resp.form.get('weekdays', index=5).checked = True
|
||||
resp.form['start_time'] = '10:00'
|
||||
resp.form['end_time'] = '13:00'
|
||||
resp = resp.form.submit()
|
||||
|
@ -919,7 +919,7 @@ def test_meetings_agenda_add_time_period_desk_simple_management(app, admin_user)
|
|||
|
||||
app = login(app)
|
||||
resp = app.get('/manage/agendas/%s/desk/%s/add-time-period' % (agenda.pk, desk.pk))
|
||||
resp.form['weekdays-0'].checked = True
|
||||
resp.form.get('weekdays', index=0).checked = True
|
||||
resp.form['start_time'] = '10:00'
|
||||
resp.form['end_time'] = '13:00'
|
||||
resp.form.submit()
|
||||
|
@ -3813,7 +3813,7 @@ def test_virtual_agenda_settings_add_excluded_period(app, admin_user):
|
|||
resp = app.get('/manage/agendas/%s/settings' % agenda.pk)
|
||||
resp = resp.click('Add Excluded Period')
|
||||
|
||||
resp.form['weekdays-0'].checked = True
|
||||
resp.form.get('weekdays', index=0).checked = True
|
||||
resp.form['start_time'] = '10:00'
|
||||
resp.form['end_time'] = '17:00'
|
||||
resp = resp.form.submit()
|
||||
|
|
Loading…
Reference in New Issue