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

Last change on this file since 16953 was 16949, checked in by Henrik Bettermann, 3 years ago

abraham: Include 1st and 2nd Semesters Units Summary to Course Registration Page For UNIDEL

  • Property svn:keywords set to Id
File size: 6.1 KB
RevLine 
[16717]1## $Id: browser.py 16949 2022-05-06 07:19:00Z henrik $
[15614]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
[16718]22from zope.security import checkPermission
[15614]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 (
[16949]29    StudyLevelEditFormPage, StudyLevelDisplayFormPage, StudyLevelManageFormPage,
[15614]30    StudentBasePDFFormPage, ExportPDFCourseRegistrationSlip,
31    CourseTicketDisplayFormPage, StudentTriggerTransitionFormPage,
[16718]32    PaymentsManageFormPage, msave, emit_lock_message)
[15614]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,
[16886]42    NigeriaBedTicketAddPage,
[16888]43    NigeriaAccommodationDisplayFormPage,
44    NigeriaAccommodationManageFormPage,
[15614]45    )
[16721]46from kofacustom.unidel.students.interfaces import (
[16842]47    ICustomStudentOnlinePayment,
48    ICustomStudentStudyCourse,
49    ICustomStudentStudyLevel,
50    ICustomUGStudentClearance,
51    ICustomPGStudentClearance)
[16721]52from kofacustom.unidel.interfaces import MessageFactory as _
[15614]53
[16886]54class CustomBedTicketAddPage(NigeriaBedTicketAddPage):
55    with_ac = False
56
[16888]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
[16718]68class CustomPaymentsManageFormPage(PaymentsManageFormPage):
69    """ Page to manage the student payments. This manage form page is for
[16721]70    both students and students officers. UNIDEL does not allow students
[16718]71    to remove any payment ticket.
72    """
73    @property
74    def manage_payments_allowed(self):
[16836]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')
[16841]90            form_fields['date_of_birth'].for_display = True
91            form_fields['nationality'].for_display = True
[16836]92            form_fields['lga'].for_display = True
[16857]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
[16949]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')
Note: See TracBrowser for help on using the repository browser.