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

Last change on this file since 17553 was 17542, checked in by Henrik Bettermann, 13 months ago

Implement medical examination form.

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