Ignore:
Timestamp:
17 Feb 2012, 07:43:22 (13 years ago)
Author:
Henrik Bettermann
Message:

Implement carry-over course collection. Collect carry-over courses in base levels (not in repeating levels).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.sirp/trunk/src/waeup/sirp/students/studycourse.py

    r7536 r7661  
    5959                ticket.core_or_elective = val.core_or_elective
    6060                ticket.title = val.course.title
    61                 ticket.faculty = val.course.__parent__.__parent__.__parent__.title
    62                 ticket.department = val.course.__parent__.__parent__.title
    6361                ticket.fcode = val.course.__parent__.__parent__.__parent__.code
    6462                ticket.dcode = val.course.__parent__.__parent__.code
     
    6664                ticket.passmark = val.course.passmark
    6765                ticket.semester = val.course.semester
    68                 self[str(studylevel.level)][val.getCourseCode()] = ticket
     66                self[str(studylevel.level)][ticket.code] = ticket
     67        # Collect carry-over courses in base levels (not in repeating levels)
     68        if studylevel.level % 100 == 0:
     69            levels = sorted(self.keys())
     70            index = levels.index(str(studylevel.level))
     71            if  index > 0:
     72                previous_level = self[levels[index-1]]
     73                for key, val in previous_level.items():
     74                    if val.score < val.passmark:
     75                        if key in self[str(studylevel.level)]:
     76                            # Carry-over ticket exists
     77                            continue
     78                        co_ticket = CourseTicket()
     79                        for name in ['code', 'title', 'credits', 'passmark',
     80                                     'semester', 'core_or_elective',
     81                                     'fcode', 'dcode']:
     82                            setattr(co_ticket, name, getattr(val, name))
     83                        co_ticket.automatic = True
     84                        co_ticket.carry_over = True
     85                        self[str(studylevel.level)][co_ticket.code] = co_ticket
    6986        return
    7087
Note: See TracChangeset for help on using the changeset viewer.