source: main/waeup.sirp/trunk/src/waeup/sirp/university/vocabularies.py @ 7705

Last change on this file since 7705 was 7688, checked in by Henrik Bettermann, 13 years ago

Fix sources.

  • Property svn:keywords set to Id
File size: 3.9 KB
Line 
1## $Id: vocabularies.py 7688 2012-02-23 12:25:23Z henrik $
2##
3## Copyright (C) 2011 Uli Fouquet & Henrik Bettermann
4## This program is free software; you can redistribute it and/or modify
5## it under the terms of the GNU General Public License as published by
6## the Free Software Foundation; either version 2 of the License, or
7## (at your option) any later version.
8##
9## This program is distributed in the hope that it will be useful,
10## but WITHOUT ANY WARRANTY; without even the implied warranty of
11## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12## GNU General Public License for more details.
13##
14## You should have received a copy of the GNU General Public License
15## along with this program; if not, write to the Free Software
16## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17##
18"""Vocabularies and sources for the academics section.
19"""
20from zc.sourcefactory.basic import BasicSourceFactory
21from zc.sourcefactory.contextual import BasicContextualSourceFactory
22from zope.catalog.interfaces import ICatalog
23from zope.component import getUtility
24from waeup.sirp.interfaces import SimpleSIRPVocabulary, ISIRPUtils
25from waeup.sirp.interfaces import MessageFactory as _
26
27course_levels = SimpleSIRPVocabulary(
28    (_('Pre-Studies'),10),
29    (_('100 (Year 1)'),100),
30    (_('200 (Year 2)'),200),
31    (_('300 (Year 3)'),300),
32    (_('400 (Year 4)'),400),
33    (_('500 (Year 5)'),500),
34    (_('600 (Year 6)'),600),
35    (_('700 (Year 7)'),700),
36    (_('800 (Year 8)'),800),
37    )
38
39class SemesterSource(BasicContextualSourceFactory):
40    """An institution type source delivers semester or term descriptors.
41    """
42    def getValues(self, context):
43        semesters_dict = getUtility(ISIRPUtils).getSemesterDict()
44        return semesters_dict.keys()
45
46    def getToken(self, context, value):
47        return str(value)
48
49    def getTitle(self, context, value):
50        semesters_dict = getUtility(ISIRPUtils).getSemesterDict()
51        return semesters_dict[value]
52
53class InstTypeSource(BasicContextualSourceFactory):
54    """An institution type source delivers types of institutions
55    in the portal.
56    """
57    def getValues(self, context):
58        insttypes_dict = getUtility(ISIRPUtils).getInstTypeDict()
59        return sorted(insttypes_dict.keys())
60
61    def getToken(self, context, value):
62        return value
63
64    def getTitle(self, context, value):
65        insttypes_dict = getUtility(ISIRPUtils).getInstTypeDict()
66        return insttypes_dict[value]
67
68class AppCatSource(BasicContextualSourceFactory):
69    """A application category source delivers all application categories
70    provided in the portal.
71    """
72    def getValues(self, context):
73        appcats_dict = getUtility(ISIRPUtils).getAppCatDict()
74        return sorted(appcats_dict.keys())
75
76    def getToken(self, context, value):
77        return value
78
79    def getTitle(self, context, value):
80        appcats_dict = getUtility(ISIRPUtils).getAppCatDict()
81        return appcats_dict[value]
82
83class StudyModeSource(BasicContextualSourceFactory):
84    """A study modes source delivers all study modes provided
85    in the portal.
86    """
87    def getValues(self, context):
88        studymodes_dict = getUtility(ISIRPUtils).getStudyModesDict()
89        return sorted(studymodes_dict.keys())
90
91    def getToken(self, context, value):
92        return value
93
94    def getTitle(self, context, value):
95        studymodes_dict = getUtility(ISIRPUtils).getStudyModesDict()
96        return studymodes_dict[value]
97
98class CourseSource(BasicSourceFactory):
99    """A course source delivers all courses inside the portal by looking
100       up a catalog.
101    """
102    def getValues(self):
103        catalog = getUtility(ICatalog, name='courses_catalog')
104        return sorted(list(
105                catalog.searchResults(
106                    code=('', 'z*'))),key=lambda value: value.code)
107
108    def getToken(self, value):
109        return value.code
110
111    def getTitle(self, value):
112        return "%s - %s" % (value.code, value.title[:64])
Note: See TracBrowser for help on using the repository browser.