Changeset 17737 for main/kofacustom.udss/trunk/src/kofacustom/udss/students
- Timestamp:
- 16 Apr 2024, 06:29:43 (9 months ago)
- Location:
- main/kofacustom.udss/trunk/src/kofacustom/udss/students
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
main/kofacustom.udss/trunk/src/kofacustom/udss/students/browser.py
r17689 r17737 21 21 from zope.component import getUtility 22 22 from zope.security import checkPermission 23 from zope.formlib.textwidgets import BytesDisplayWidget 23 24 from hurry.workflow.interfaces import IWorkflowInfo 24 25 from waeup.kofa.interfaces import REQUESTED, IExtFileStore, IKofaUtils … … 27 28 from waeup.kofa.browser.layout import action, jsaction 28 29 from waeup.kofa.students.browser import ( 29 StudyLevelEditFormPage, StudyLevelDisplayFormPage, 30 StudentBasePDFFormPage, ExportPDFCourseRegistrationSlip, 31 CourseTicketDisplayFormPage, StudentTriggerTransitionFormPage, 32 PaymentsManageFormPage, msave, emit_lock_message) 30 StudentPersonalDisplayFormPage, 31 StudentPersonalManageFormPage, 32 StudentPersonalEditFormPage, 33 StudentClearanceDisplayFormPage, 34 StudentClearanceManageFormPage, 35 StudentClearanceEditFormPage, 36 ExportPDFClearanceSlip, 37 StudyLevelEditFormPage, 38 StudyLevelDisplayFormPage, 39 StudentBasePDFFormPage, 40 ExportPDFCourseRegistrationSlip, 41 CourseTicketDisplayFormPage, 42 StudentTriggerTransitionFormPage, 43 PaymentsManageFormPage, 44 msave, emit_lock_message) 33 45 from waeup.kofa.students.interfaces import IStudentsUtils, ICourseTicket 34 46 from waeup.kofa.students.workflow import FORBIDDEN_POSTGRAD_TRANS … … 39 51 NigeriaOnlinePaymentAddFormPage, 40 52 NigeriaExportPDFPaymentSlip, 41 NigeriaExportPDFClearanceSlip,42 53 ) 43 54 44 55 from kofacustom.udss.students.interfaces import ( 45 ICustomStudentOnlinePayment, ICustomStudentStudyCourse, 46 ICustomStudentStudyLevel) 56 ICustomStudentOnlinePayment, 57 ICustomStudentStudyCourse, 58 ICustomStudentStudyLevel, 59 ICustomStudentPersonal, 60 ICustomStudentClearance) 47 61 from kofacustom.udss.interfaces import MessageFactory as _ 48 62 … … 55 69 def manage_payments_allowed(self): 56 70 return checkPermission('waeup.manageStudent', self.context) 71 72 class CustomStudentPersonalDisplayFormPage(StudentPersonalDisplayFormPage): 73 """ Page to display student personal data 74 """ 75 form_fields = grok.AutoFields(ICustomStudentPersonal) 76 form_fields['perm_address'].custom_widget = BytesDisplayWidget 77 form_fields['mother_res_address'].custom_widget = BytesDisplayWidget 78 form_fields['father_res_address'].custom_widget = BytesDisplayWidget 79 form_fields['sponsor_res_address'].custom_widget = BytesDisplayWidget 80 form_fields[ 81 'personal_updated'].custom_widget = FriendlyDatetimeDisplayWidget('le') 82 83 class CustomStudentPersonalEditFormPage(StudentPersonalEditFormPage): 84 """ Page to edit personal data 85 """ 86 form_fields = grok.AutoFields(ICustomStudentPersonal).omit('personal_updated') 87 88 class CustomStudentPersonalManageFormPage(StudentPersonalManageFormPage): 89 """ Page to edit personal data 90 """ 91 form_fields = grok.AutoFields(ICustomStudentPersonal) 92 form_fields['personal_updated'].for_display = True 93 form_fields[ 94 'personal_updated'].custom_widget = FriendlyDatetimeDisplayWidget('le') 95 96 class CustomStudentClearanceDisplayFormPage(StudentClearanceDisplayFormPage): 97 """ Page to display student clearance data 98 """ 99 100 @property 101 def form_fields(self): 102 form_fields = grok.AutoFields( 103 ICustomStudentClearance).omit('clearance_locked') 104 if not getattr(self.context, 'officer_comment'): 105 form_fields = form_fields.omit('officer_comment') 106 else: 107 form_fields['officer_comment'].custom_widget = BytesDisplayWidget 108 return form_fields 109 110 class CustomExportPDFClearanceSlip(ExportPDFClearanceSlip): 111 """Deliver a PDF slip of the context. 112 """ 113 omit_fields = ('password', 'suspended', 'suspended_comment', 114 'phone', 'adm_code', 'email', 'date_of_birth', 'current_level', 115 'flash_notice') 116 117 @property 118 def form_fields(self): 119 form_fields = grok.AutoFields( 120 ICustomStudentClearance).omit('clearance_locked') 121 if not getattr(self.context, 'officer_comment'): 122 form_fields = form_fields.omit('officer_comment') 123 return form_fields 124 125 class CustomStudentClearanceManageFormPage(StudentClearanceManageFormPage): 126 """ Page to edit student clearance data 127 """ 128 129 @property 130 def form_fields(self): 131 form_fields = grok.AutoFields( 132 ICustomStudentClearance).omit('clr_code') 133 return form_fields 134 135 class CustomStudentClearanceEditFormPage(StudentClearanceEditFormPage): 136 """ View to edit student clearance data by student 137 """ 138 139 @property 140 def form_fields(self): 141 form_fields = grok.AutoFields(ICustomStudentClearance).omit( 142 'clearance_locked', 'clr_code', 'officer_comment', 143 'physical_clearance_date') 144 return form_fields -
main/kofacustom.udss/trunk/src/kofacustom/udss/students/interfaces.py
r17689 r17737 18 18 19 19 from zope import schema 20 from waeup.kofa.interfaces import SimpleKofaVocabulary, academic_sessions_vocab 20 21 from waeup.kofa.students.vocabularies import StudyLevelSource 22 from waeup.kofa.students.interfaces import IStudentPersonal, IUGStudentClearance 21 23 from kofacustom.nigeria.students.interfaces import ( 22 24 INigeriaStudentBase, INigeriaUGStudentClearance, INigeriaPGStudentClearance, … … 33 35 """ 34 36 35 class ICustomStudentPersonal(I NigeriaStudentPersonal):37 class ICustomStudentPersonal(IStudentPersonal): 36 38 """Student personal data. 37 39 38 40 """ 39 41 40 class ICustomUGStudentClearance(INigeriaUGStudentClearance): 42 religion = schema.Choice( 43 title = u'Religion', 44 default = 'no_say', 45 required = False, 46 vocabulary = SimpleKofaVocabulary( 47 (_('Muslim'), 'muslim'), 48 (_('Christian'), 'christian'), 49 (_('Others'), 'others'), 50 (_('Prefer not to say'), 'no_say'),) 51 ) 52 53 disabled = schema.Bool( 54 title = u'Disabled', 55 default = False, 56 required = False, 57 ) 58 59 father_firstname = schema.TextLine( 60 title = _(u'First Name of Father'), 61 required = False, 62 ) 63 father_middlename = schema.TextLine( 64 title = _(u'Middle Name of Father'), 65 required = False, 66 ) 67 father_lastname = schema.TextLine( 68 title = _(u'Last Name (Surname) of Father'), 69 required = False, 70 ) 71 father_status = schema.TextLine( 72 title = _(u'Father\'s Status and Rank'), 73 required = False, 74 ) 75 father_employer = schema.TextLine( 76 title = _(u'Father\'s Employer'), 77 required = False, 78 ) 79 father_res_address = schema.Text( 80 title = _(u'Father\'s Residential Address'), 81 required = False, 82 ) 83 father_contact_address = schema.Text( 84 title = _(u'Father\'s Contact Address (incl. P.O. Box)'), 85 required = False, 86 ) 87 mother_firstname = schema.TextLine( 88 title = _(u'First Name of Mother'), 89 required = False, 90 ) 91 mother_middlename = schema.TextLine( 92 title = _(u'Middle Name of Mother'), 93 required = False, 94 ) 95 mother_lastname = schema.TextLine( 96 title = _(u'Last Name (Surname) of Mother'), 97 required = False, 98 ) 99 mother_status = schema.TextLine( 100 title = _(u'Mother\'s Status and Rank'), 101 required = False, 102 ) 103 mother_employer = schema.TextLine( 104 title = _(u'Mother\'s Employer'), 105 required = False, 106 ) 107 mother_res_address = schema.Text( 108 title = _(u'Mother\'s Residential Address'), 109 required = False, 110 ) 111 mother_contact_address = schema.Text( 112 title = _(u'Mother\'s Contact Address (incl. P.O. Box)'), 113 required = False, 114 ) 115 sponsor_firstname = schema.TextLine( 116 title = _(u'First Name of sponsor'), 117 required = False, 118 ) 119 sponsor_middlename = schema.TextLine( 120 title = _(u'Middle Name of Sponsor'), 121 required = False, 122 ) 123 sponsor_lastname = schema.TextLine( 124 title = _(u'Last Name (Surname) of Sponsor'), 125 required = False, 126 ) 127 sponsor_status = schema.TextLine( 128 title = _(u'Sponsor\'s Status and Rank'), 129 required = False, 130 ) 131 sponsor_employer = schema.TextLine( 132 title = _(u'Sponsor\'s Employer'), 133 required = False, 134 ) 135 sponsor_res_address = schema.Text( 136 title = _(u'Sponsor\'s Residential Address'), 137 required = False, 138 ) 139 sponsor_contact_address = schema.Text( 140 title = _(u'Sponsor\'s Contact Address (incl. P.O. Box)'), 141 required = False, 142 ) 143 144 class ICustomStudentClearance(IUGStudentClearance): 41 145 """Representation of ug student clearance data. 42 146 43 147 """ 44 148 45 class ICustomPGStudentClearance(INigeriaPGStudentClearance): 46 """Representation of pg student clearance data. 47 48 """ 49 50 51 class ICustomStudent(ICustomStudentBase,ICustomUGStudentClearance, 52 ICustomPGStudentClearance,ICustomStudentPersonal): 149 class ICustomStudent(ICustomStudentBase,ICustomStudentClearance, 150 ICustomStudentPersonal): 53 151 """Representation of a student. 54 152
Note: See TracChangeset for help on using the changeset viewer.