Ignore:
Timestamp:
5 Oct 2021, 10:30:09 (3 years ago)
Author:
Henrik Bettermann
Message:

OutstandingCoursesExporter: Remove passed courses from outstanding courses lists.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.kofa/trunk/src/waeup/kofa/students/export.py

    r16431 r16662  
    148148            student.get('studycourse', None), 'certificate', None)
    149149        if certificate:
    150             allticketcodes = []
    151             failedticketcodes = '' # taken but failed
    152             nottakenticketcodes = '' # registered but not taken
    153             missedticketcodes = '' # not registered
     150            allticketcodes = list()
     151            failedticketcodes = list() # taken but failed
     152            nottakenticketcodes = list() # registered but not taken
     153            missedticketcodes = list() # not registered
     154            # collect failed, not taken and all courses
    154155            for level in student['studycourse'].values():
    155                 failedticketcodes += level.passed_params[4]
    156                 nottakenticketcodes += level.passed_params[5]
     156                failedticketcodes += level.passed_params[4].split()
     157                nottakenticketcodes += level.passed_params[5].split()
    157158                for ticket in level.values():
    158159                    allticketcodes.append(ticket.code)
     160            # check if failed or not taken courses have been passed later
     161            for code in failedticketcodes:
     162                if code in level.passed_params[6]:
     163                    failedticketcodes.remove(code)
     164            for code in nottakenticketcodes:
     165                if code in level.passed_params[6]:
     166                    nottakenticketcodes.remove(code)
     167            # collect missed tickets
    159168            for certcourse in certificate.values():
    160169                if certcourse.getCourseCode() not in allticketcodes:
    161                     missedticketcodes += '%s ' % certcourse.__name__
     170                    missedticketcodes.append(certcourse.__name__)
    162171            student_wo = (student, missedticketcodes,
    163172                          failedticketcodes, nottakenticketcodes)
     
    602611                value = getattr(context[0], name, None)
    603612            elif name == 'missed':
    604                 value = context[1]
     613                value = ' '.join(context[1])
    605614            elif name == 'failed':
    606                 value = context[2]
     615                value = ' '.join(context[2])
    607616            elif name == 'nottaken':
    608                 value = context[3]
     617                value = ' '.join(context[3])
    609618        return super(
    610619            OutstandingCoursesExporter, self).mangle_value(
Note: See TracChangeset for help on using the changeset viewer.