## $Id: utils.py 16461 2021-04-15 10:01:13Z henrik $ ## ## Copyright (C) 2012 Uli Fouquet & Henrik Bettermann ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ## """Customize general helper utilities for Kofa. """ import string from copy import deepcopy from kofacustom.nigeria.utils.utils import NigeriaKofaUtils from waeup.fceokene.interfaces import MessageFactory as _ class CustomKofaUtils(NigeriaKofaUtils): """A collection of methods subject to customization. """ STUDY_MODES_DICT = { #'ume_ft': 'UME Full Time', 'ug_ft': 'Undergraduate Full Time', #'ug_pt': 'Undergraduate Part Time', #'dp_pt': 'Diploma Part Time', 'ct_ft': 'Certificate Full Time', #'dp_ft': 'Diploma Full Time', 'de_ft': 'Direct Entry Full Time', 'de_pt': 'Direct Entry Part Time', #'nd_ft': 'National Diploma Full Time', #'nd_pt': 'National Diploma Part Time', #'hnd_ft': 'Higher National Diploma Full Time', #'hnd_pt': 'Higher National Diploma Part Time', #'pg_ft': 'Postgraduate Full Time', #'pg_pt': 'Postgraduate Part Time', #'pgd_ft': 'Postgraduate Diploma Full Time', #'pgd_pt': 'Postgraduate Diploma Part Time', #'special_pg_pt': 'Special Postgraduate Part Time', 'nce_ft': 'NCE Full Time', #'nce_pt': 'NCE Part Time', #'ug_sw': 'Undergraduate Sandwich', 'nce_sw': 'NCE Sandwich', #'jm_ft': 'Joint Matriculation Full Time', #'ph_ft': 'Post Higher Education Full Time', #'transfer_pt': 'Transfer Part Time', #'transfer_ft': 'Transfer Full Time', #'ct_pt': 'Certificate Part Time', #'rmd_ft': 'Remedial with deficiencies', #'rm_ft': 'Remedial', 'transfer': 'Transfer', 'prence': 'Pre-NCE/Pre-Degree', #'prend': 'Pre-ND', #'pce': 'PCE', 'pd_ft': 'Professional Diploma in Education', #'found': 'Foundation', 'no': 'no application', } PREFERRED_LANGUAGES_DICT = { } APP_CATS_DICT = { 'basic': 'UTME, DE, PCE, PRENCE', 'no': 'No Application', 'sandwich': 'Sandwich', 'cest': 'Part-Time, Diploma, Certificate', 'bec': 'Bachelor of Education Certificate Programmes', 'pre': 'Pre-Degree Studies', 'prence': 'Pre-NCE/Pre-Degree Programmes', } SPECIAL_HANDLING_DICT = { 'regular': 'Regular Hostel', 'blocked': 'Blocked Hostel', 'ugft': 'Undergraduate Fulltime Hostel' } PAYMENT_CATEGORIES = { 'schoolfee': 'School Fee', 'schoolfee_pde1': 'School Fee 1st instalment (new PDE students only)', 'clearance': 'Acceptance Fee', 'bed_allocation': 'Bed Allocation Fee', 'hostel_maintenance': 'Hostel Maintenance Fee', 'application': 'Application Fee', 'third_semester': 'NCE Third Semester Fee', } DISABLE_PAYMENT_GROUP_DICT = { 'sf_all': 'School Fee - All Students', 'sf_nce1': 'School Fee - NCE I Fresh Students', } def selectable_payment_categories(self, student): return self.PAYMENT_CATEGORIES VERDICTS_DICT = { '0': 'not yet', 'A': 'Successful student', 'B': 'Student with carryover courses', 'C': 'Student on probation', 'D': 'Withdrawn from the faculty', #'E': 'Student who were previously on probation', #'F': 'Medical case', 'G': 'Absent from examination', #'H': 'Withheld results', 'I': 'Expelled/rusticated/suspended student', 'J': 'Temporary withdrawn from the university', #'K': 'Unregistered student', 'L': 'Referred student', 'M': 'Reinstatement', #'N': 'Student on transfer', 'O': 'NCE-III repeater', #'Y': 'No previous verdict', #'X': 'New 300 level student (Uniben)', 'Z': 'Successful student (provisional)', 'A1': 'First Class', 'A2': 'Second Class Upper', 'A3': 'Second Class Lower', 'A4': 'Third Class', 'A5': 'Pass', 'A6': 'Distinction', 'A7': 'Credit', 'A8': 'Merit', 'OPDE': 'PDE repeater', } def getPaymentItem(self, payment): """Return payment item. Bed coordinates are only visible after payment. """ if 'maintenance' in payment.p_category and payment.p_state != 'paid': return _('(visible after successful payment)') return payment.p_item def fullname(self, firstname, lastname, middlename=None): """Construct fullname. """ try: lastname = lastname.upper() except AttributeError: pass # We remove single initial if firstname and len(firstname) == 1: firstname = '' if middlename and len(middlename) == 1: middlename = '' if lastname and len(lastname) == 1: lastname = '' # We construct givennames givennames = '' if middlename and firstname: givennames = '%s %s' % (firstname, middlename) elif firstname: givennames = firstname elif middlename: givennames = middlename givennames = string.capwords( givennames.replace('-', ' - ')).replace(' - ', '-') # We construct fullname fullname = '' if lastname and givennames: fullname = '%s %s' % (givennames, lastname) elif lastname: fullname = lastname elif givennames: fullname = givennames if '<' in fullname: return 'XXX' return fullname