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

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

Collect all course referrers and create respective course tickets when adding a study level.

  • Property svn:keywords set to Id
File size: 2.2 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():
51            ticket = CourseTicket(
52                val.getCourseCode(),
53                val.course.title,
54                val.level,
55                val.core_or_elective)
56            self[str(studylevel.level)][val.getCourseCode()] = ticket
[6774]57        return
58
[6633]59StudentStudyCourse = attrs_to_fields(StudentStudyCourse)
Note: See TracBrowser for help on using the repository browser.