Ignore:
Timestamp:
20 May 2018, 19:44:44 (6 years ago)
Author:
Henrik Bettermann
Message:

Customize GPABoundaries.

Change fee categories.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/students/utils.py

    r15011 r15013  
    3131    STUDENT_ID_PREFIX = u'U'
    3232
    33     def GPABoundaries(self, faccode=None, depcode=None, certcode=None):
    34         return ((1, 'Fail'),
    35                (1.5, 'Pass'),
    36                (2.4, '3rd Class'),
    37                (3.5, '2nd Class Lower'),
    38                (4.5, '2nd Class Upper'),
    39                (5, '1st Class'))
     33    def GPABoundaries(self, faccode=None, depcode=None,
     34                            certcode=None, student=None):
     35        if student and student.current_mode.startswith('dp'):
     36                return ((1, 'IRNS / NER / NYV'),
     37                        (2, 'Pass'),
     38                        (2.5, 'Lower Credit'),
     39                        (3, 'Upper Credit'),
     40                        (3.5, 'Distinction'))
     41        elif student:
     42            return ((1, 'FRNS / NER / NYV'),
     43                    (1.5, 'Pass'),
     44                    (2.4, '3rd Class Honours'),
     45                    (3.5, '2nd Class Honours Lower Division'),
     46                    (4.5, '2nd Class Honours Upper Division'),
     47                    (5, '1st Class Honours'))
     48        # Session Results Presentations depend on certificate
     49        results = None
     50        if certcode:
     51            cat = queryUtility(ICatalog, name='certificates_catalog')
     52            results = list(
     53                cat.searchResults(code=(certcode, certcode)))
     54        if results and results[0].study_mode.startswith('dp'):
     55            return ((1, 'IRNS / NER / NYV'),
     56                    (2, 'Pass'),
     57                    (2.5, 'Lower Credit'),
     58                    (3, 'Upper Credit'),
     59                    (3.5, 'Distinction'))
     60        else:
     61            return ((1, 'FRNS / NER / NYV'),
     62                    (1.5, 'Pass'),
     63                    (2.4, '3rd Class Honours'),
     64                    (3.5, '2nd Class Honours Lower Division'),
     65                    (4.5, '2nd Class Honours Upper Division'),
     66                    (5, '1st Class Honours'))
     67
     68    def getClassFromCGPA(self, gpa, student):
     69        gpa_boundaries = self.GPABoundaries(student=student)
     70        if gpa < gpa_boundaries[0][0]:
     71            return 0, gpa_boundaries[0][1]
     72        if gpa < gpa_boundaries[1][0]:
     73            return 1, gpa_boundaries[1][1]
     74        if gpa < gpa_boundaries[2][0]:
     75            return 2, gpa_boundaries[2][1]
     76        if gpa < gpa_boundaries[3][0]:
     77            return 3, gpa_boundaries[3][1]
     78        if gpa < gpa_boundaries[4][0]:
     79            return 4, gpa_boundaries[4][1]
     80        if gpa <= gpa_boundaries[5][0]:
     81            return 5, gpa_boundaries[5][1]
     82        return 'N/A'
    4083
    4184    def setPaymentDetails(self, category, student,
     
    130173            else:
    131174                return _(u'No bed allocated.'), None
    132         elif category == 'logbook':
    133             amount = academic_session.logbook_fee
     175        elif category == 'logbook_combo':
     176            amount = academic_session.logbook_combo_fee
    134177        elif category == 'ict_entre':
    135178            amount = academic_session.ict_entre_fee
     179        elif category == 'siwess_combo':
     180            amount = academic_session.siwess_combo_fee
    136181        if amount in (0.0, None):
    137182            return _('Amount could not be determined.'), None
Note: See TracChangeset for help on using the changeset viewer.