Changeset 14719


Ignore:
Timestamp:
12 Jul 2017, 11:20:16 (7 years ago)
Author:
Henrik Bettermann
Message:

Add signature fields.

Location:
main/kofacustom.coewarri/trunk/src/kofacustom/coewarri/students
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • main/kofacustom.coewarri/trunk/src/kofacustom/coewarri/students/browser.py

    r14035 r14719  
    3939    NigeriaExportPDFPaymentSlip,
    4040    NigeriaExportPDFClearanceSlip,
     41    NigeriaExportPDFCourseRegistrationSlip
    4142    )
    4243
     
    4647from kofacustom.coewarri.interfaces import MessageFactory as _
    4748
     49class CustomExportPDFCourseRegistrationSlip(
     50    NigeriaExportPDFCourseRegistrationSlip):
     51    """Deliver a PDF slip of the context.
     52    """
     53    grok.context(ICustomStudentStudyLevel)
     54
     55    def _signatures(self):
     56        return (
     57            [('I, ' + self.context.student.display_fullname +
     58              ', do hereby declare that the above information is '
     59              'true and correct. <br>', _('Student\'s Signature'), '<br>')],
     60            [('', _('Course Adviser'), '<br>')],
     61            [('', _('Head of Department'), '<br>')],
     62            [('', _('Dean of School'))]
     63            )
     64
     65    def render(self):
     66        portal_language = getUtility(IKofaUtils).PORTAL_LANGUAGE
     67        Code = translate(_('Code'), 'waeup.kofa', target_language=portal_language)
     68        Title = translate(_('Title'), 'waeup.kofa', target_language=portal_language)
     69        Dept = translate(_('Dept.'), 'waeup.kofa', target_language=portal_language)
     70        Faculty = translate(_('Faculty'), 'waeup.kofa', target_language=portal_language)
     71        Cred = translate(_('Cred.'), 'waeup.kofa', target_language=portal_language)
     72        #Mand = translate(_('Requ.'), 'waeup.kofa', target_language=portal_language)
     73        Score = translate(_('Score'), 'waeup.kofa', target_language=portal_language)
     74        Grade = translate(_('Grade'), 'waeup.kofa', target_language=portal_language)
     75        studentview = StudentBasePDFFormPage(self.context.student,
     76            self.request, self.omit_fields)
     77        students_utils = getUtility(IStudentsUtils)
     78
     79        tabledata = []
     80        tableheader = []
     81        for i in range(1,7):
     82            tabledata.append(sorted(
     83                [value for value in self.context.values() if value.semester == i],
     84                key=lambda value: str(value.semester) + value.code))
     85            tableheader.append([(Code,'code', 2.5),
     86                             (Title,'title', 5),
     87                             (Dept,'dcode', 1.5), (Faculty,'fcode', 1.5),
     88                             (Cred, 'credits', 1.5),
     89                             #(Mand, 'mandatory', 1.5),
     90                             (Score, 'score', 1.5),
     91                             (Grade, 'grade', 1.5),
     92                             #('Auto', 'automatic', 1.5)
     93                             ])
     94        return students_utils.renderPDF(
     95            self, 'course_registration_slip.pdf',
     96            self.context.student, studentview,
     97            tableheader=tableheader,
     98            tabledata=tabledata,
     99            signatures=self._signatures(),
     100            omit_fields=self.omit_fields
     101            )
     102
  • main/kofacustom.coewarri/trunk/src/kofacustom/coewarri/students/tests/test_browser.py

    r14658 r14719  
    3030from waeup.kofa.students.tests.test_browser import StudentsFullSetup
    3131from waeup.kofa.students.accommodation import BedTicket
     32from waeup.kofa.browser.tests.test_pdf import samples_dir
    3233from waeup.kofa.testing import FunctionalTestCase
    3334from waeup.kofa.interfaces import (
     
    112113        self.assertEqual(self.student['payments'].values()[3].p_level, 200)
    113114        return
     115
     116    def test_registration_pdf_slips(self):
     117        # Student cant login if their password is not set
     118        IWorkflowState(self.student).setState('school fee paid')
     119        self.browser.open(self.login_path)
     120        self.browser.getControl(name="form.login").value = self.student_id
     121        self.browser.getControl(name="form.password").value = 'spwd'
     122        self.browser.getControl("Login").click()
     123        self.browser.getLink("Study Course").click()
     124        self.browser.getLink("Add course list").click()
     125        self.assertMatches('...Add current level 100 (Year 1)...',
     126                           self.browser.contents)
     127        self.browser.getControl("Create course list now").click()
     128        # A level with one course ticket was created
     129        self.browser.getLink("100").click()
     130        self.browser.getLink("Download course registration slip").click()
     131        self.assertEqual(self.browser.headers['Status'], '200 Ok')
     132        self.assertEqual(self.browser.headers['Content-Type'],
     133                         'application/pdf')
     134        path = os.path.join(samples_dir(), 'course_registration_slip.pdf')
     135        open(path, 'wb').write(self.browser.contents)
     136        print "Sample PDF course_registration_slip.pdf written to %s" % path
Note: See TracChangeset for help on using the changeset viewer.