source: main/waeup.uniben/trunk/src/waeup/uniben/utils/utils.py @ 17384

Last change on this file since 17384 was 17377, checked in by Henrik Bettermann, 18 months ago

Customize all certificate select boxes.

  • Property svn:keywords set to Id
File size: 8.3 KB
RevLine 
[7569]1## $Id: utils.py 17377 2023-04-06 17:46:36Z 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##
[7822]18"""Customize general helper utilities for Kofa.
[7569]19"""
[8821]20from kofacustom.nigeria.utils.utils import NigeriaKofaUtils
[7569]21
[8821]22class CustomKofaUtils(NigeriaKofaUtils):
[7569]23    """A collection of methods subject to customization.
24    """
[7845]25
[12589]26    SYSTEM_MAX_LOAD = {
27        'swap-mem': None,
28        'virt-mem': 80.0,
29        'cpu-load': 100.0,
30        }
31
[7845]32    PREFERRED_LANGUAGES_DICT = {
[9635]33        }
34
35    APP_CATS_DICT = {
[13947]36        'basic': 'ASE, PUDE, PCE, PRENCE',
[9635]37        'no': 'No Application',
38        'sandwich': 'Sandwich',
39        'cest': 'Part-Time, Diploma, Certificate',
40        'dp_ft': 'Diploma Full-Time Programmes',
[17052]41        'dp': 'Diploma Programmes',
[12575]42        'pt_ext': 'Part-Time (extended application)',
[13011]43        'pg': 'Postgraduate (main advert)',
[17048]44        'coe': 'CoE Programmes',
[13615]45        'pgnils': 'Postgraduate NILS',
[13011]46        'pg_ft': 'Postgraduate Full-Time (deprecated)',
47        'pg_pt': 'Postgraduate Part-Time (deprecated)',
48        'pg_ext': 'Postgraduate (extended application, deprecated)',
49        'pg_new': 'Postgraduate (supplementary application #1, deprecated)',
50        'pg_new2': 'Postgraduate (supplementary application #2, deprecated)',
[13137]51        'pre': 'Pre-Degree Studies',
[14050]52        'asaba': 'FCE Asaba',
53        'akoka': 'FCE Akoka',
54        'akokaj': 'FCE Akoka JUPEB',
[14811]55        'special_ft': 'Special Full-Time',
[14965]56        'cdl': 'Center For Distance Learning',
[16807]57        'french': 'French Language Center',
[9655]58        }
59
[9757]60    # de modes are only used for entry_mode
[9655]61    MODE_GROUPS = {
62        'All':('all',),
[14811]63        'Undergraduate Full-Time':('ug_ft', 'special_ft'),
[9757]64        'Undergraduate Part-Time':('ug_pt'),
[14808]65        'Diploma/Certificate Full-Time':('dp_ft', 'ct_ft'),
66        'Diploma/Certificate Part-Time':('dp_pt', 'ct_pt'),
[9655]67        'Postgraduate Full-Time':('pg_ft', 'pgd_ft'),
68        'Postgraduate Part-Time':('pg_pt', 'special_pg_pt', 'pgd_pt'),
[9727]69        }
70
71    PAYMENT_CATEGORIES = {
72        'schoolfee': 'School Fee',
73        'clearance': 'Acceptance Fee',
[13251]74        'bed_allocation': 'Bed Allocation Fee',
75        #'hostel_application': 'Hostel Application Fee',
[9731]76        'hostel_maintenance': 'Hostel Maintenance Fee',
[13251]77        #'tempmaint_1': 'Hall 1-4 M/F Ekehuan',
78        #'tempmaint_2': 'Hall 5 M/F',
79        #'tempmaint_3': 'Clinical Hostel',
[9727]80        'transfer': 'Transfer Fee',
81        'gown': 'Gown Hire Fee',
[10469]82        'application': 'Application Fee',
83        'transcript': 'Transcript Fee',
[11782]84        'admission_checking': 'Admission Checking Fee',
[13785]85        'jupeb': 'JUPEB Examination Fee',
[14358]86        'registration': 'Total Registration Fee',
87        'clinexam':'Clinical Examination Fee',
[14970]88        #'pharmd_1':'Clerkship Fee',
[14960]89        'pharmd_2':'Module 1 Fee',
[15106]90        'develop':'Development Fee',
[15537]91        'carryover':'School Fee (carry over from previous sessions)',
92        'foreign':'School Fee (paid in foreign currency)',
[16386]93        'medical_quest':'Medical Questionnaire Fee',
[16780]94        'plag_test':'Final Year Plagiarism Test',
[16866]95        'flc_modules': 'FLC Modules Fee',
[9731]96        }
97
98    SELECTABLE_PAYMENT_CATEGORIES = {
99        'schoolfee': 'School Fee',
100        'clearance': 'Acceptance Fee',
[13251]101        'bed_allocation': 'Bed Allocation Fee',
102        #'hostel_application': 'Hostel Application Fee',
103        'hostel_maintenance': 'Hostel Maintenance Fee',
104        #'tempmaint_1': 'Hall 1-4 M/F Ekehuan Maintenance Fee',
105        #'tempmaint_2': 'Hall 5 M/F Maintenance Fee',
106        #'tempmaint_3': 'Clinical Hostel Maintenance Fee',
[9731]107        'gown': 'Gown Hire Fee',
[10469]108        'application': 'Application Fee',
109        'transcript': 'Transcript Fee',
[13576]110        'transfer': 'Transfer Fee',
[13785]111        'jupeb': 'JUPEB Examination Fee',
[14358]112        'clinexam':'Clinical Examination Fee',
[14970]113        #'pharmd_1':'PharmD Clerkship Fee (1st school fee prepayment)',
[14971]114        'pharmd_2':'PharmD Module 1 Fee (school fee prepayment)',
[15108]115        #'develop':'Development Fee',
[16386]116        'medical_quest':'Medical Questionnaire Fee',
[16780]117        'plag_test':'Final Year Plagiarism Test (for final year project or PG thesis)',
[16866]118        'flc_modules': 'FLC Modules Fee',
[10441]119        }
120
[16404]121    REPORTABLE_PAYMENT_CATEGORIES = {
122        'schoolfee': 'School Fee',
123        'clearance': 'Acceptance Fee',
[16522]124        'bed_allocation': 'Bed Allocation Fee',
[16404]125        'hostel_maintenance': 'Hostel Maintenance Fee',
126        'medical_quest':'Medical Questionnaire Fee',
127        }
128
[15437]129    def selectable_payment_categories(self, student):
130        return self.SELECTABLE_PAYMENT_CATEGORIES
131
[13566]132    DISABLE_PAYMENT_GROUP_DICT = {
[16373]133        'sf_all':    'School Fee - All',
134        'sf_found':  'School Fee - Foundation',
135        'sf_pg':     'School Fee - PG',
136        'sf_pt':     'School Fee - UG PT',
137        'sf_ft':     'School Fee - UG FT',
138        'sf_sw':     'School Fee - Sandwich',
139        'sf_dp':     'School Fee - Diploma',
[16516]140        'sf_return': 'School Fee - Returning',
[16373]141        'maint_all': 'Accomm. Fee - All',
142        'cl_all':    'Accept. Fee- All',
143        'cl_jupeb':  'Accept. Fee - JUPEB',
[16374]144        'cl_allexj': 'Accept. Fee - All except JUPEB',
[13566]145        }
146
[10441]147    SEMESTER_DICT = {
148        1: '1st Semester',
149        2: '2nd Semester',
150        3: 'Combined',
[10471]151        4: '1st Term',
152        5: '2nd Term',
153        6: '3rd Term',
[16813]154        9: 'N/A',
155        11: 'Module I',
156        12: 'Module II',
157        13: 'Module III',
[11669]158        }
159
160    BALANCE_PAYMENT_CATEGORIES = {
161        'schoolfee': 'School Fee',
162        'clearance': 'Clearance Fee',
[13488]163        'hostel_maintenance': 'Hostel Maintenance Fee',
[13514]164        'bed_allocation': 'Bed Allocation Fee',
[15537]165        'carryover':'School Fee (carry over from previous sessions)',
166        'foreign':'School Fee (paid in foreign currency)',
[16866]167        'flc_modules': 'FLC Modules Fee',
[12407]168        }
169
170    EXAM_GRADES = NigeriaKofaUtils.EXAM_GRADES + (('B1', 'B1'), ('P', 'P'),)
[13294]171
172    SPECIAL_HANDLING_DICT = {
173        'regular': 'Regular Hostel',
174        'blocked': 'Blocked Hostel',
[13446]175        'clinical': 'Clinical Hostel',
[13759]176        'ekenwan': 'Ekenwan Campus',
177        'pg': 'Postgraduate Hostel',
[13294]178        }
[14808]179
180    STUDY_MODES_DICT = {
[14811]181        'ume_ft': 'UME Full-Time',
182        'ug_ft': 'Undergraduate Full-Time',
183        'ug_pt': 'Undergraduate Part-Time',
184        'dp_pt': 'Diploma Part-Time',
185        'ct_ft': 'Certificate Full-Time',
186        'dp_ft': 'Diploma Full-Time',
187        'de_ft': 'Direct Entry Full-Time',
188        'de_pt': 'Direct Entry Part-Time',
189        'pg_ft': 'Postgraduate Full-Time',
190        'pg_pt': 'Postgraduate Part-Time',
191        'pgd_ft': 'Postgraduate Diploma Full-Time',
192        'pgd_pt': 'Postgraduate Diploma Part-Time',
193        'special_pg_pt': 'Special Postgraduate Part-Time',
[14808]194        'ug_sw': 'Undergraduate Sandwich',
[14811]195        'transfer_pt': 'Transfer Part-Time',
196        'transfer_ft': 'Transfer Full-Time',
197        'ct_pt': 'Certificate Part-Time',
[14808]198        'transfer': 'Transfer',
[16829]199        'transferred': 'Transferred',
[14808]200        'found': 'Foundation',
201        'no': 'no application',
[17140]202        'special_ft': 'Special Full-Time',
203        'cdl': 'Distance Learning',
[14808]204        }
[17377]205
206    def sortCertificates(self, context, resultset):
207        """Sort already filtered certificates in `CertificateSource`.
208        """
209        resultlist = sorted(resultset, key=lambda
210            value: value.__parent__.__parent__.__parent__.code +
211            value.__parent__.__parent__.code +
212            value.code)
213        return resultlist
214
215    def getCertTitle(self, context, value):
216        """Compose the titles in `CertificateSource`.
217        """
218        try: title = "%s / %s / %s (%s)" % (
219            value.__parent__.__parent__.__parent__.title,
220            value.__parent__.__parent__.title,
221            value.title, value.code)
222        except AttributeError:
223            title = "NA / %s (%s)" % (value.title, value.code)
224        return title
Note: See TracBrowser for help on using the repository browser.