source: main/kofacustom.unidel/trunk/src/kofacustom/unidel/students/browser.py @ 16977

Last change on this file since 16977 was 16977, checked in by Henrik Bettermann, 2 years ago

Add signatures.

  • Property svn:keywords set to Id
File size: 6.3 KB
Line 
1## $Id: browser.py 16977 2022-06-29 16:01:37Z 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.schema.interfaces import ConstraintNotSatisfied
21from zope.component import getUtility
22from zope.security import checkPermission
23from hurry.workflow.interfaces import IWorkflowInfo
24from waeup.kofa.interfaces import REQUESTED, IExtFileStore, IKofaUtils
25from waeup.kofa.widgets.datewidget import FriendlyDatetimeDisplayWidget
26from waeup.kofa.browser.layout import KofaEditFormPage
27from waeup.kofa.browser.layout import action, jsaction
28from waeup.kofa.students.browser import (
29    StudyLevelEditFormPage, StudyLevelDisplayFormPage, StudyLevelManageFormPage,
30    StudentBasePDFFormPage, ExportPDFCourseRegistrationSlip,
31    CourseTicketDisplayFormPage, StudentTriggerTransitionFormPage,
32    PaymentsManageFormPage, msave, emit_lock_message)
33from waeup.kofa.students.interfaces import IStudentsUtils, ICourseTicket
34from waeup.kofa.students.workflow import FORBIDDEN_POSTGRAD_TRANS
35from kofacustom.nigeria.students.browser import (
36    NigeriaOnlinePaymentDisplayFormPage,
37    NigeriaStudentBaseManageFormPage,
38    NigeriaStudentClearanceEditFormPage,
39    NigeriaOnlinePaymentAddFormPage,
40    NigeriaExportPDFPaymentSlip,
41    NigeriaExportPDFClearanceSlip,
42    NigeriaBedTicketAddPage,
43    NigeriaAccommodationDisplayFormPage,
44    NigeriaAccommodationManageFormPage,
45    )
46from kofacustom.unidel.students.interfaces import (
47    ICustomStudentOnlinePayment,
48    ICustomStudentStudyCourse,
49    ICustomStudentStudyLevel,
50    ICustomUGStudentClearance,
51    ICustomPGStudentClearance)
52from kofacustom.unidel.interfaces import MessageFactory as _
53
54class CustomBedTicketAddPage(NigeriaBedTicketAddPage):
55    with_ac = False
56
57class CustomAccommodationDisplayFormPage(NigeriaAccommodationDisplayFormPage):
58    """ Page to view bed tickets.
59    """
60    with_hostel_selection = True
61
62class CustomAccommodationManageFormPage(NigeriaAccommodationManageFormPage):
63    """ Page to manage bed tickets.
64    This manage form page is for both students and students officers.
65    """
66    with_hostel_selection = True
67
68class CustomPaymentsManageFormPage(PaymentsManageFormPage):
69    """ Page to manage the student payments. This manage form page is for
70    both students and students officers. UNIDEL does not allow students
71    to remove any payment ticket.
72    """
73    @property
74    def manage_payments_allowed(self):
75        return checkPermission('waeup.manageStudent', self.context)
76
77class CustomStudentClearanceEditFormPage(NigeriaStudentClearanceEditFormPage):
78    """ View to edit student clearance data by student
79    """
80    @property
81    def form_fields(self):
82        if self.context.is_postgrad:
83            form_fields = grok.AutoFields(ICustomPGStudentClearance).omit(
84            'clearance_locked', 'nysc_location', 'clr_code', 'officer_comment',
85            'physical_clearance_date')
86        else:
87            form_fields = grok.AutoFields(ICustomUGStudentClearance).omit(
88            'clearance_locked', 'clr_code', 'officer_comment',
89            'physical_clearance_date')
90            form_fields['date_of_birth'].for_display = True
91            form_fields['nationality'].for_display = True
92            form_fields['lga'].for_display = True
93        return form_fields
94
95class CustomOnlinePaymentDisplayFormPage(NigeriaOnlinePaymentDisplayFormPage):
96    """ Page to view an online payment ticket
97    """
98    form_fields = grok.AutoFields(ICustomStudentOnlinePayment).omit(
99        'provider_amt', 'gateway_amt', 'thirdparty_amt', 'p_item','p_combi',
100        'net_amt')
101    form_fields[
102        'creation_date'].custom_widget = FriendlyDatetimeDisplayWidget('le')
103    form_fields[
104        'payment_date'].custom_widget = FriendlyDatetimeDisplayWidget('le')
105
106class CustomExportPDFPaymentSlip(NigeriaExportPDFPaymentSlip):
107    """Deliver a PDF slip of the context.
108    """
109    form_fields = grok.AutoFields(ICustomStudentOnlinePayment).omit(
110        'provider_amt', 'gateway_amt', 'thirdparty_amt', 'p_item',
111        'p_split_data','p_combi', 'net_amt')
112    form_fields['creation_date'].custom_widget = FriendlyDatetimeDisplayWidget('le')
113    form_fields['payment_date'].custom_widget = FriendlyDatetimeDisplayWidget('le')
114
115class CustomStudyLevelDisplayFormPage(StudyLevelDisplayFormPage):
116    """ Page to display student study levels
117    """
118    #grok.template('studylevelpage')
119    grok.context(ICustomStudentStudyLevel)
120
121    form_fields = grok.AutoFields(ICustomStudentStudyLevel).omit(
122        'level',)
123    form_fields[
124        'validation_date'].custom_widget = FriendlyDatetimeDisplayWidget('le')
125
126class CustomStudyLevelManageFormPage(StudyLevelManageFormPage):
127    """ Page to edit the student study level data
128    """
129    grok.context(ICustomStudentStudyLevel)
130
131    form_fields = grok.AutoFields(ICustomStudentStudyLevel).omit(
132        'validation_date', 'validated_by', 'total_credits', 'gpa', 'level',
133        'total_credits_s1', 'total_credits_s2')
134
135class CustomExportPDFCourseRegistrationSlip(ExportPDFCourseRegistrationSlip):
136    """Deliver a PDF slip of the context.
137    """
138    grok.context(ICustomStudentStudyLevel)
139    form_fields = grok.AutoFields(ICustomStudentStudyLevel).omit(
140        'level', 'gpa', 'transcript_remark')
141    form_fields[
142        'validation_date'].custom_widget = FriendlyDatetimeDisplayWidget('le')
143    #prefix = 'form'
144    omit_fields = (
145        'password', 'suspended', 'phone', 'date_of_birth',
146        'adm_code', 'sex', 'suspended_comment', 'current_level',
147        'flash_notice')
148
149    def _signatures(self):
150        return ([_('Academic Adviser\'s Signature')],
151                [_('Faculty Officer\'s Signature')],
152                [_('Student\'s Signature')])
Note: See TracBrowser for help on using the repository browser.