36
36
from zope.traversing.browser.absoluteurl import absoluteURL
38
38
from schooltool.app.interfaces import ISchoolToolApplication
39
from schooltool.common import SchoolToolMessage as STMessage
39
40
from schooltool.schoolyear.interfaces import ISchoolYear
40
41
from schooltool.term.interfaces import IDateManager, ITerm
41
42
from schooltool.export.export import RequestXLSReportDialog
517
518
field=IRequestAbsencesByDayForm['date'])
521
class IRequestAbsencesByDateRangeForm(Interface):
523
start = zope.schema.Date(
524
title=STMessage(u'Start date'),
527
end = zope.schema.Date(
528
title=STMessage(u'End date'),
532
class AbsencesByDateRangeRequestView(RequestRemoteReportDialog):
534
fields = z3c.form.field.Fields(IRequestAbsencesByDateRangeForm)
536
report_builder = 'absences_by_date_range.pdf'
538
title = _('Request Absences for Range of Dates Report')
541
def schoolyear(self):
546
RequestRemoteReportDialog.update(self)
548
def updateTaskParams(self, task):
549
start = self.form_params.get('start')
550
end = self.form_params.get('end')
552
start, end = end, start
553
if start is not None:
554
day = '%d-%02d-%02d' % (start.year, start.month, start.day)
555
task.request_params['start'] = day
557
day = '%d-%02d-%02d' % (end.year, end.month, end.day)
558
task.request_params['end'] = day
561
z3c.form.validator.WidgetValidatorDiscriminators(
562
AbsenceByDayValidator,
563
view=AbsencesByDateRangeRequestView,
564
field=IRequestAbsencesByDateRangeForm['start'])
567
z3c.form.validator.WidgetValidatorDiscriminators(
568
AbsenceByDayValidator,
569
view=AbsencesByDateRangeRequestView,
570
field=IRequestAbsencesByDateRangeForm['end'])
520
573
class FlourishRequestSectionAbsencesView(RequestRemoteReportDialog):
522
575
report_builder = 'section_absences.pdf'