Changeset 15087
- Timestamp:
- 12 Jul 2018, 07:33:18 (6 years ago)
- Location:
- main/kofacustom.edopoly/trunk/src/kofacustom/edopoly
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/applicants/browser.py
r15000 r15087 19 19 """ 20 20 import grok 21 from zope.formlib.textwidgets import BytesDisplayWidget 21 22 from waeup.kofa.applicants.browser import ( 22 23 ApplicantRegistrationPage, ApplicantsContainerPage) 23 24 from kofacustom.nigeria.applicants.browser import ( 24 25 NigeriaApplicantDisplayFormPage, 25 NigeriaPDFApplicationSlip) 26 NigeriaPDFApplicationSlip, 27 NigeriaApplicantManageFormPage, 28 NigeriaApplicantEditFormPage) 29 from kofacustom.nigeria.applicants.interfaces import ( 30 UG_OMIT_DISPLAY_FIELDS, 31 UG_OMIT_PDF_FIELDS, 32 UG_OMIT_MANAGE_FIELDS, 33 UG_OMIT_EDIT_FIELDS, 34 PG_OMIT_DISPLAY_FIELDS, 35 PG_OMIT_PDF_FIELDS, 36 PG_OMIT_MANAGE_FIELDS, 37 PG_OMIT_EDIT_FIELDS, 38 ) 39 from kofacustom.edopoly.applicants.interfaces import ( 40 ICustomUGApplicantEdit, ICustomUGApplicant, 41 ICustomPGApplicantEdit, ICustomPGApplicant) 26 42 27 43 from kofacustom.edopoly.interfaces import MessageFactory as _ 28 44 45 # Fields to be omitted in all display forms. course_admitted is 46 # rendered separately. 47 48 OMIT_DISPLAY_FIELDS = ('locked', 'course_admitted', 49 'result_uploaded', 'suspended', 'special_application', 50 'bank_account_number', 51 'bank_account_name', 52 'bank_name') 53 54 # UG students are all undergraduate students. 55 UG_OMIT_DISPLAY_FIELDS = OMIT_DISPLAY_FIELDS + ( 56 'jamb_subjects_list', 'programme_type') 57 UG_OMIT_PDF_FIELDS = UG_OMIT_DISPLAY_FIELDS + ('phone',) 58 UG_OMIT_MANAGE_FIELDS = ( 59 'special_application', 60 'jamb_subjects_list', 61 'programme_type') 62 UG_OMIT_EDIT_FIELDS = UG_OMIT_MANAGE_FIELDS + OMIT_DISPLAY_FIELDS + ( 63 'student_id', 64 'notice', 65 'screening_score', 66 'screening_venue', 67 'screening_date', 68 # 'jamb_age', 69 # 'jamb_subjects', 70 # 'jamb_score', 71 # 'jamb_reg_number', 72 'aggregate') 73 74 class CustomApplicantDisplayFormPage(NigeriaApplicantDisplayFormPage): 75 """A display view for applicant data. 76 """ 77 78 @property 79 def form_fields(self): 80 target = getattr(self.context.__parent__, 'prefix', None) 81 form_fields = grok.AutoFields(ICustomUGApplicant) 82 form_fields['notice'].custom_widget = BytesDisplayWidget 83 form_fields['jamb_subjects'].custom_widget = BytesDisplayWidget 84 if not getattr(self.context, 'student_id'): 85 form_fields = form_fields.omit('student_id') 86 if not getattr(self.context, 'screening_score'): 87 form_fields = form_fields.omit('screening_score') 88 if not getattr(self.context, 'screening_venue'): 89 form_fields = form_fields.omit('screening_venue') 90 if not getattr(self.context, 'screening_date'): 91 form_fields = form_fields.omit('screening_date') 92 return form_fields 93 94 class CustomPDFApplicationSlip(NigeriaPDFApplicationSlip): 95 96 @property 97 def form_fields(self): 98 target = getattr(self.context.__parent__, 'prefix', None) 99 form_fields = grok.AutoFields(ICustomUGApplicant) 100 for field in UG_OMIT_PDF_FIELDS: 101 form_fields = form_fields.omit(field) 102 if not getattr(self.context, 'student_id'): 103 form_fields = form_fields.omit('student_id') 104 if not getattr(self.context, 'screening_score'): 105 form_fields = form_fields.omit('screening_score') 106 if not getattr(self.context, 'screening_venue'): 107 form_fields = form_fields.omit('screening_venue') 108 if not getattr(self.context, 'screening_date'): 109 form_fields = form_fields.omit('screening_date') 110 return form_fields 111 112 class CustomApplicantManageFormPage(NigeriaApplicantManageFormPage): 113 """A full edit view for applicant data. 114 """ 115 116 @property 117 def form_fields(self): 118 target = getattr(self.context.__parent__, 'prefix', None) 119 form_fields = grok.AutoFields(ICustomUGApplicant) 120 for field in UG_OMIT_MANAGE_FIELDS: 121 form_fields = form_fields.omit(field) 122 form_fields['student_id'].for_display = True 123 form_fields['applicant_id'].for_display = True 124 return form_fields 125 126 class CustomApplicantEditFormPage(NigeriaApplicantEditFormPage): 127 """An applicant-centered edit view for applicant data. 128 """ 129 130 @property 131 def form_fields(self): 132 target = getattr(self.context.__parent__, 'prefix', None) 133 form_fields = grok.AutoFields(ICustomUGApplicantEdit) 134 for field in UG_OMIT_EDIT_FIELDS: 135 form_fields = form_fields.omit(field) 136 form_fields['applicant_id'].for_display = True 137 form_fields['reg_number'].for_display = True 138 return form_fields -
main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/applicants/interfaces.py
r15000 r15087 45 45 This interface defines the least common multiple of all fields 46 46 in ug application forms. In customized forms, fields can be excluded by 47 adding them to the UG_OMIT* tuples. 48 """ 47 adding them to the OMIT* tuples. 48 """ 49 50 nationality = schema.Choice( 51 source = nats_vocab, 52 title = _(u'Nationality'), 53 required = True, 54 ) 55 lga = schema.Choice( 56 source = LGASource(), 57 title = _(u'State/LGA (Nigerians only)'), 58 required = False, 59 ) 60 #perm_address = schema.Text( 61 # title = _(u'Permanent Address'), 62 # required = False, 63 # ) 64 course1 = schema.Choice( 65 title = _(u'1st Choice Course of Study'), 66 source = AppCatCertificateSource(), 67 required = False, 68 ) 69 course2 = schema.Choice( 70 title = _(u'2nd Choice Course of Study'), 71 source = AppCatCertificateSource(), 72 required = False, 73 ) 74 olevel_type = schema.Choice( 75 title = _(u'1st Qualification Obtained'), 76 required = False, 77 readonly = False, 78 vocabulary = exam_types, 79 ) 80 olevel_school = schema.TextLine( 81 title = _(u'1st Institution Attended'), 82 required = False, 83 readonly = False, 84 ) 85 olevel_exam_number = schema.TextLine( 86 title = _(u'1st Exam Number'), 87 required = False, 88 readonly = False, 89 ) 90 olevel_exam_date = FormattedDate( 91 title = _(u'1st Exam Date'), 92 required = False, 93 readonly = False, 94 show_year = True, 95 ) 96 olevel_results = schema.List( 97 title = _(u'1st Exam Results'), 98 value_type = ResultEntryField(), 99 required = False, 100 readonly = False, 101 defaultFactory=list, 102 ) 103 olevel_type2 = schema.Choice( 104 title = _(u'2nd Qualification Obtained'), 105 required = False, 106 readonly = False, 107 vocabulary = exam_types, 108 ) 109 olevel_school2 = schema.TextLine( 110 title = _(u'2nd Institution Attended'), 111 required = False, 112 readonly = False, 113 ) 114 olevel_exam_number2 = schema.TextLine( 115 title = _(u'2nd Exam Number'), 116 required = False, 117 readonly = False, 118 ) 119 olevel_exam_date2 = FormattedDate( 120 title = _(u'2nd Exam Date'), 121 required = False, 122 readonly = False, 123 show_year = True, 124 ) 125 olevel_results2 = schema.List( 126 title = _(u'2nd Exam Results'), 127 value_type = ResultEntryField(), 128 required = False, 129 readonly = False, 130 defaultFactory=list, 131 ) 132 hq_type = schema.Choice( 133 title = _(u'Qualification Obtained'), 134 required = False, 135 readonly = False, 136 vocabulary = high_qual, 137 ) 138 hq_matric_no = schema.TextLine( 139 title = _(u'Former Matric Number'), 140 required = False, 141 readonly = False, 142 ) 143 hq_degree = schema.Choice( 144 title = _(u'Class of Degree'), 145 required = False, 146 readonly = False, 147 vocabulary = high_grade, 148 ) 149 hq_school = schema.TextLine( 150 title = _(u'Institution Attended'), 151 required = False, 152 readonly = False, 153 ) 154 hq_session = schema.TextLine( 155 title = _(u'Years Attended'), 156 required = False, 157 readonly = False, 158 ) 159 hq_disc = schema.TextLine( 160 title = _(u'Discipline'), 161 required = False, 162 readonly = False, 163 ) 164 jamb_subjects = schema.Text( 165 title = _(u'Subjects and Scores'), 166 description = _(u'(one subject with score per line)'), 167 required = False, 168 ) 169 jamb_score = schema.Int( 170 title = _(u'Total JAMB Score'), 171 required = False, 172 ) 173 jamb_reg_number = schema.TextLine( 174 title = _(u'JAMB Registration Number'), 175 required = False, 176 ) 177 notice = schema.Text( 178 title = _(u'Notice'), 179 required = False, 180 ) 181 screening_venue = schema.TextLine( 182 title = _(u'Screening Venue'), 183 required = False, 184 ) 185 screening_date = schema.TextLine( 186 title = _(u'Screening Date'), 187 required = False, 188 ) 189 screening_score = schema.Int( 190 title = _(u'Screening Score (%)'), 191 required = False, 192 ) 193 aggregate = schema.Int( 194 title = _(u'Aggregate Score (%)'), 195 description = _(u'(average of relative JAMB and PUTME scores)'), 196 required = False, 197 ) 198 result_uploaded = schema.Bool( 199 title = _(u'Result uploaded'), 200 default = False, 201 required = False, 202 ) 203 student_id = schema.TextLine( 204 title = _(u'Student Id'), 205 required = False, 206 readonly = False, 207 ) 208 course_admitted = schema.Choice( 209 title = _(u'Admitted Course of Study'), 210 source = CertificateSource(), 211 required = False, 212 ) 213 locked = schema.Bool( 214 title = _(u'Form locked'), 215 default = False, 216 required = False, 217 ) 49 218 50 219 class ICustomPGApplicant(INigeriaPGApplicant): … … 76 245 """ 77 246 78 class ICustomUGApplicantEdit(I NigeriaUGApplicantEdit):247 class ICustomUGApplicantEdit(ICustomUGApplicant): 79 248 """An undergraduate applicant interface for edit forms. 80 249 … … 88 257 """ 89 258 90 class ICustomPGApplicantEdit(INigeriaPGApplicantEdit): 259 260 email = schema.ASCIILine( 261 title = _(u'Email Address'), 262 required = True, 263 constraint=validate_email, 264 ) 265 date_of_birth = FormattedDate( 266 title = _(u'Date of Birth'), 267 required = True, 268 show_year = True, 269 ) 270 jamb_reg_number = schema.TextLine( 271 title = _(u'JAMB Registration Number'), 272 required = True, 273 ) 274 course1 = schema.Choice( 275 title = _(u'1st Choice Course of Study'), 276 source = AppCatCertificateSource(), 277 required = True, 278 ) 279 280 ICustomUGApplicantEdit[ 281 'date_of_birth'].order = ICustomUGApplicant['date_of_birth'].order 282 ICustomUGApplicantEdit[ 283 'email'].order = ICustomUGApplicant['email'].order 284 ICustomUGApplicantEdit[ 285 'jamb_reg_number'].order = ICustomUGApplicant['jamb_reg_number'].order 286 ICustomUGApplicantEdit[ 287 'course1'].order = ICustomUGApplicant['course1'].order 288 289 class ICustomPGApplicantEdit(ICustomPGApplicant): 91 290 """A postgraduate applicant interface for editing. 92 291 -
main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/applicants/utils.py
r15000 r15087 29 29 """A collection of parameters and methods subject to customization. 30 30 """ 31 32 APP_TYPES_DICT = { 33 #'pude': ['Post-UDE Screening', 'PUDE'], 34 #'prence': ['Pre-NCE Programme', 'PRE'], 35 #'sandwich': ['Part-Time Degree in Education', 'SAND'], 36 'pt': ['Part-Time Degree Programmes', 'PTP'], 37 #'putme': ['Post-UTME Screening Exercise', 'PUTME'], 38 'app': ['General Studies', 'APP'], 39 #'cest': ['Common Entry Screening Test', 'CEST'], 40 #'ct': ['Certificate Programmes', 'CTP'], 41 #'dp': ['Diploma Programmes', 'DPP'], 42 #'pce': ['PCE Screening', 'PCE'], 43 #'pgft': ['Postgraduate Full-Time Programmes', 'PG'], 44 #'pgpt': ['Postgraduate Part-Time Programmes', 'PG'], 45 #'pre': ['Pre-Degree Studies', 'PRE'], 46 #'cbt': ['CBT Practice Test', 'CBT'], 47 'ase': ['Admission Screening Exercise', 'ASE'], # successor of putme 48 } 49 50 SEPARATORS_DICT = { 51 'form.applicant_id': _(u'Base Data'), 52 'form.course1': _(u'Programmes/Courses Desired'), 53 'form.hq_type': _(u'Higher Education Record'), 54 'form.presently': _(u'Course or Programme Presently Attending'), 55 'form.nysc_year': _(u'NYSC Information'), 56 'form.employer': _(u'Employment History'), 57 'form.jamb_subjects': _(u'JAMB Data'), 58 'form.notice': _(u'Application Process Information'), 59 'form.pp_school': _(u'Post Primary School Qualification'), 60 'form.presently_inst': _(u'Presently attending a course or programme'), 61 'form.olevel_type': _(u"'O' Level Records"), 62 } -
main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/interswitch/tests.py
r15074 r15087 105 105 self.browser.contents) 106 106 self.assertTrue( 107 'item_name="Tuition and Exams Fee" item_amt="3775000" bank_id="121" acct_num="0068241848"' in107 'item_name="Tuition/Exams Fee and Student Union Dues" item_amt="3775000" bank_id="121" acct_num="0068241848"' in 108 108 self.browser.contents) 109 109 self.assertTrue(
Note: See TracChangeset for help on using the changeset viewer.