~schooltool-owners/schooltool.gradebook/trunk

« back to all changes in this revision

Viewing changes to src/schooltool/gradebook/browser/request_reports.py

  • Committer: Douglas Cerna
  • Date: 2014-10-14 11:49:11 UTC
  • Revision ID: douglascerna@yahoo.com-20141014114911-0c75w26d51riie21
Added absences for range of dates schoolyear report

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
from zope.traversing.browser.absoluteurl import absoluteURL
37
37
 
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'])
518
519
 
519
520
 
 
521
class IRequestAbsencesByDateRangeForm(Interface):
 
522
 
 
523
    start = zope.schema.Date(
 
524
        title=STMessage(u'Start date'),
 
525
        required=True)
 
526
 
 
527
    end = zope.schema.Date(
 
528
        title=STMessage(u'End date'),
 
529
        required=True)
 
530
 
 
531
 
 
532
class AbsencesByDateRangeRequestView(RequestRemoteReportDialog):
 
533
 
 
534
    fields = z3c.form.field.Fields(IRequestAbsencesByDateRangeForm)
 
535
 
 
536
    report_builder = 'absences_by_date_range.pdf'
 
537
 
 
538
    title = _('Request Absences for Range of Dates Report')
 
539
 
 
540
    @property
 
541
    def schoolyear(self):
 
542
        return self.context
 
543
 
 
544
    def update(self):
 
545
        self.message = ''
 
546
        RequestRemoteReportDialog.update(self)
 
547
 
 
548
    def updateTaskParams(self, task):
 
549
        start = self.form_params.get('start')
 
550
        end = self.form_params.get('end')
 
551
        if start > 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
 
556
        if end is not None:
 
557
            day = '%d-%02d-%02d' % (end.year, end.month, end.day)
 
558
            task.request_params['end'] = day
 
559
 
 
560
 
 
561
z3c.form.validator.WidgetValidatorDiscriminators(
 
562
    AbsenceByDayValidator,
 
563
    view=AbsencesByDateRangeRequestView,
 
564
    field=IRequestAbsencesByDateRangeForm['start'])
 
565
 
 
566
 
 
567
z3c.form.validator.WidgetValidatorDiscriminators(
 
568
    AbsenceByDayValidator,
 
569
    view=AbsencesByDateRangeRequestView,
 
570
    field=IRequestAbsencesByDateRangeForm['end'])
 
571
 
 
572
 
520
573
class FlourishRequestSectionAbsencesView(RequestRemoteReportDialog):
521
574
 
522
575
    report_builder = 'section_absences.pdf'