source: main/waeup.fceokene/trunk/src/waeup/fceokene/students/browser.py @ 9951

Last change on this file since 9951 was 9945, checked in by Henrik Bettermann, 12 years ago

Add 'IN AFFILIATION WITH UNIVERSITY OF IBADAN' on admission slip.

  • Property svn:keywords set to Id
File size: 4.8 KB
Line 
1## $Id: browser.py 9945 2013-02-13 10:19:34Z henrik $
2##
3## Copyright (C) 2012 Uli Fouquet & Henrik Bettermann
4## This program is free software; you can redistribute it and/or modify
5## it under the terms of the GNU General Public License as published by
6## the Free Software Foundation; either version 2 of the License, or
7## (at your option) any later version.
8##
9## This program is distributed in the hope that it will be useful,
10## but WITHOUT ANY WARRANTY; without even the implied warranty of
11## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12## GNU General Public License for more details.
13##
14## You should have received a copy of the GNU General Public License
15## along with this program; if not, write to the Free Software
16## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17##
18import grok
19from zope.i18n import translate
20from zope.component import getUtility
21from hurry.workflow.interfaces import IWorkflowInfo
22from waeup.kofa.interfaces import ADMITTED, IKofaUtils
23from waeup.kofa.interfaces import MessageFactory as _
24from waeup.kofa.widgets.datewidget import FriendlyDatetimeDisplayWidget
25from waeup.kofa.students.browser import (
26    StartClearancePage, BedTicketAddPage, ExportPDFAdmissionSlipPage)
27from kofacustom.nigeria.students.browser import (
28    NigeriaOnlinePaymentDisplayFormPage,
29    NigeriaOnlinePaymentAddFormPage,
30    NigeriaExportPDFPaymentSlipPage,
31    NigeriaStudentClearanceEditFormPage,
32    )
33
34from waeup.fceokene.students.interfaces import ICustomStudentOnlinePayment
35
36class CustomExportPDFAdmissionSlipPage(ExportPDFAdmissionSlipPage):
37    """Deliver a PDF Admission slip.
38    """
39
40    @property
41    def label(self):
42        portal_language = getUtility(IKofaUtils).PORTAL_LANGUAGE
43        return translate(_('Admission Letter of'),
44            'waeup.kofa', target_language=portal_language) \
45            + ' %s' % self.context.display_fullname
46
47    @property
48    def label(self):
49        portal_language = getUtility(IKofaUtils).PORTAL_LANGUAGE
50        lang = self.request.cookies.get('kofa.language', portal_language)
51        line0 = ''
52        if self.context.student.current_mode.startswith('ug'):
53            line0 = 'IN AFFILIATION WITH UNIVERSITY OF IBADAN\n'
54        line1 = translate(_('Admission Letter of'),
55            'waeup.kofa', target_language=portal_language) \
56            + ' %s' % self.context.display_fullname
57        return '%s%s' % (line0, line1)
58
59class CustomOnlinePaymentDisplayFormPage(NigeriaOnlinePaymentDisplayFormPage):
60    """ Page to view an online payment ticket
61    """
62    grok.context(ICustomStudentOnlinePayment)
63    form_fields = grok.AutoFields(ICustomStudentOnlinePayment).omit(
64        'provider_amt', 'gateway_amt', 'thirdparty_amt')
65    form_fields[
66        'creation_date'].custom_widget = FriendlyDatetimeDisplayWidget('le')
67    form_fields[
68        'payment_date'].custom_widget = FriendlyDatetimeDisplayWidget('le')
69
70class CustomOnlinePaymentAddFormPage(NigeriaOnlinePaymentAddFormPage):
71    """ Page to add an online payment ticket
72    """
73    form_fields = grok.AutoFields(ICustomStudentOnlinePayment).select(
74        'p_category')
75
76class CustomExportPDFPaymentSlipPage(NigeriaExportPDFPaymentSlipPage):
77    """Deliver a PDF slip of the context.
78    """
79    grok.context(ICustomStudentOnlinePayment)
80    form_fields = grok.AutoFields(ICustomStudentOnlinePayment).omit(
81        'provider_amt', 'gateway_amt', 'thirdparty_amt')
82    form_fields['creation_date'].custom_widget = FriendlyDatetimeDisplayWidget('le')
83    form_fields['payment_date'].custom_widget = FriendlyDatetimeDisplayWidget('le')
84
85class CustomStartClearancePage(StartClearancePage):
86
87    grok.template('startclearance')
88
89    def update(self, SUBMIT=None):
90        if not self.context.state == ADMITTED:
91            self.flash(_("Wrong state"))
92            self.redirect(self.url(self.context))
93            return
94        if not self.portrait_uploaded:
95            self.flash(_("No portrait uploaded."))
96            self.redirect(self.url(self.context, 'change_portrait'))
97            return
98        if not self.all_required_fields_filled:
99            self.flash(_("Not all required fields filled."))
100            self.redirect(self.url(self.context, 'edit_base'))
101            return
102        if SUBMIT is None:
103            return
104        IWorkflowInfo(self.context).fireTransition('start_clearance')
105        self.flash(_('Clearance process has been started.'))
106        self.redirect(self.url(self.context,'cedit'))
107        return
108
109class CustomStudentClearanceEditFormPage(NigeriaStudentClearanceEditFormPage):
110    """ View to edit student clearance data by student
111    """
112
113    def dataNotComplete(self):
114        return False
115
116class CustomBedTicketAddPage(BedTicketAddPage):
117    """ Page to add an online payment ticket
118    """
119    grok.template('bookbed')
120    buttonname = _('Create bed ticket')
121    notice = ''
122    with_ac = False
Note: See TracBrowser for help on using the repository browser.