source: main/waeup.sirp/trunk/src/waeup/sirp/students/studycourse.py @ 6794

Last change on this file since 6794 was 6791, checked in by Henrik Bettermann, 14 years ago

Add only the tickets with correct course referrer level.

  • Property svn:keywords set to Id
File size: 2.5 KB
RevLine 
[6633]1## Copyright (C) 2011 Uli Fouquet & Henrik Bettermann
2## This program is free software; you can redistribute it and/or modify
3## it under the terms of the GNU General Public License as published by
4## the Free Software Foundation; either version 2 of the License, or
5## (at your option) any later version.
6##
7## This program is distributed in the hope that it will be useful,
8## but WITHOUT ANY WARRANTY; without even the implied warranty of
9## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10## GNU General Public License for more details.
11##
12## You should have received a copy of the GNU General Public License
13## along with this program; if not, write to the Free Software
14## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
15##
16"""
17Container which holds the data of the student study courses
18and contains the (student) study level objects.
19"""
20import grok
21from grok import index
22from zope.component.interfaces import IFactory
[6642]23from waeup.sirp.students.interfaces import (
[6774]24    IStudentStudyCourse, IStudentNavigation, IStudentStudyLevel)
[6782]25from waeup.sirp.students.studylevel import CourseTicket
[6633]26from waeup.sirp.utils.helpers import attrs_to_fields
27
28class StudentStudyCourse(grok.Container):
29    """This is a container for study levels.
30    """
[6642]31    grok.implements(IStudentStudyCourse, IStudentNavigation)
[6633]32    grok.provides(IStudentStudyCourse)
33
34    def __init__(self):
35        super(StudentStudyCourse, self).__init__()
36        return
37
[6642]38    def getStudent(self):
39        return self.__parent__
40
[6782]41    def addStudentStudyLevel(self, cert, studylevel):
[6774]42        """Add a study level object.
43        """
44        if not IStudentStudyLevel.providedBy(studylevel):
45            raise TypeError(
46                'StudentStudyCourses contain only IStudentStudyLevel instances')
[6775]47        self[str(studylevel.level)] = studylevel
[6782]48
49        #Create course tickets automatically
50        for key, val in cert.items():
[6791]51            if val.level != studylevel.level:
52                continue
[6782]53            ticket = CourseTicket(
54                val.getCourseCode(),
55                val.course.title,
[6783]56                val.course.credits,
57                val.course.passmark,
58                val.course.semester,
59                val.course.__parent__.__parent__.__parent__.title,
60                val.course.__parent__.__parent__.title,
[6782]61                val.level,
62                val.core_or_elective)
63            self[str(studylevel.level)][val.getCourseCode()] = ticket
[6774]64        return
65
[6633]66StudentStudyCourse = attrs_to_fields(StudentStudyCourse)
Note: See TracBrowser for help on using the repository browser.