Ignore:
Timestamp:
11 Feb 2020, 07:26:29 (5 years ago)
Author:
Henrik Bettermann
Message:

Add UpdateCourseTicketsView.

File:
1 edited

Legend:

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

    r15988 r15998  
    3232from zope.event import notify
    3333from zope.schema.interfaces import ConstraintNotSatisfied
    34 from zope.component import getUtility, createObject
     34from zope.component import getUtility, createObject, queryUtility
     35from zope.catalog.interfaces import ICatalog
    3536from zope.formlib.form import setUpEditWidgets
    3637from zope.i18n import translate
     
    11481149        return pdf_stream
    11491150
     1151    def updateCourseTickets(self, course):
     1152        """Udate course tickets if course attributes were changed.
     1153        """
     1154        current_academic_session = grok.getSite()[
     1155            'configuration'].current_academic_session
     1156        if not current_academic_session:
     1157            return
     1158        cat = queryUtility(ICatalog, name='coursetickets_catalog')
     1159        coursetickets = cat.searchResults(
     1160            code=(course.code, course.code),
     1161            session=(current_academic_session,current_academic_session))
     1162        number = 0
     1163        ob_class = self.__implemented__.__name__.replace('waeup.kofa.', '')
     1164        for ticket in coursetickets:
     1165            if ticket.credits == course.credits:
     1166                continue
     1167            if ticket.student.current_session != current_academic_session:
     1168                continue
     1169            if ticket.student.state not in (PAID,):
     1170                continue
     1171            number += 1
     1172            ticket.student.__parent__.logger.info(
     1173                '%s - %s %s/%s credits updated (%s->%s)' % (
     1174                    ob_class, ticket.student.student_id,
     1175                    ticket.level, ticket.code, course.credits,
     1176                    ticket.credits))
     1177            ticket.credits = course.credits
     1178        return number
     1179
    11501180    #: A dictionary which maps widget names to headlines. The headline
    11511181    #: is rendered in forms and on pdf slips above the respective
Note: See TracChangeset for help on using the changeset viewer.