annotate MPIWGDepartment.py @ 178:ee0fbb711f17

fix problem with mixed case person keys
author casties
date Tue, 11 Jun 2013 17:51:55 +0200
parents 246d87d33f25
children dbc397782c76
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
1 from Products.PageTemplates.PageTemplateFile import PageTemplateFile
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
2 from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
3 from Globals import package_home
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
4 import string
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
5 import re
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
6 import os
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
7 import logging
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
8 from OFS.Folder import Folder
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
9 from AccessControl import ClassSecurityInfo
27
9a75eb1b31b3 more work on projects.
casties
parents: 24
diff changeset
10
9a75eb1b31b3 more work on projects.
casties
parents: 24
diff changeset
11 from SrvTxtUtils import getAt
9a75eb1b31b3 more work on projects.
casties
parents: 24
diff changeset
12
9
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
13 import MPIWGHelper
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
14
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
15 class MPIWGDepartment(Folder):
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
16 """special object for departments on the MPIWG website """
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
17
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
18 meta_type="MPIWGDepartment"
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
19
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
20 manage_options=Folder.manage_options+(
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
21 {'label':'Configure','action':'changeForm'},
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
22 )
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
23
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
24 #changeWeightForm = PageTemplateFile('zpt/department/manage_change_weight', globals())
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
25 changeForm = PageTemplateFile('zpt/department/manage_config', globals())
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
26
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
27 def __init__(self, id, title=None, weight=0, project_id=0, director='', director_id='',
94
7aaed5218d55 added staffdb_key to departments. getDepartment also gets by id.
casties
parents: 75
diff changeset
28 type_en=None, type_de=None, title_en=None, title_de=None, staffdb_key=None):
9
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
29 self.id = str(id)
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
30 self.weight = weight
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
31 self.project_id = project_id
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
32 if title is None:
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
33 self.title = id
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
34 else:
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
35 self.title = title
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
36
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
37 self.director = director
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
38 self.director_id = director_id
94
7aaed5218d55 added staffdb_key to departments. getDepartment also gets by id.
casties
parents: 75
diff changeset
39
7aaed5218d55 added staffdb_key to departments. getDepartment also gets by id.
casties
parents: 75
diff changeset
40 self.staffdb_key = staffdb_key
9
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
41
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
42 # add language folders and sample templates
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
43 mainid = 'main.pt'
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
44 self.manage_addFolder('en')
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
45 folder_en = getattr(self, 'en')
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
46 main_en = ZopePageTemplate(mainid)
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
47 folder_en[mainid] = main_en
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
48 main_en.pt_edit(open(os.path.join(package_home(globals()),'zpt/department/default_template_main.zpt')).read(),'text/html')
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
49 if type_en is not None:
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
50 folder_en.title = type_en
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
51 if title_en is not None:
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
52 main_en.title = title_en
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
53 self.manage_addFolder('de')
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
54 folder_de = getattr(self, 'de')
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
55 main_de = ZopePageTemplate(mainid)
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
56 folder_de[mainid] = main_de
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
57 main_de.pt_edit(open(os.path.join(package_home(globals()),'zpt/department/default_template_main.zpt')).read(),'text/html')
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
58 if type_de is not None:
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
59 folder_de.title = type_de
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
60 if title_de is not None:
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
61 main_de.title = title_de
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
62
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
63
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
64 def index_html(self):
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
65 """default index page"""
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
66 return self.getMain()
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
67
13
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
68 def getType(self, lang=None):
9
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
69 """returns the type of department (from /en/ folder)"""
13
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
70 if lang is None:
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
71 # get Language from MPIWGRoot
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
72 lang = self.getLang()
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
73
9
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
74 dir = getattr(self, lang, self.en)
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
75 t = dir.title
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
76 return t
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
77
13
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
78 def getTitle(self, lang=None):
9
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
79 """returns the title of the department (from main.pt)"""
13
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
80 if lang is None:
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
81 # get Language from MPIWGRoot
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
82 lang = self.getLang()
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
83
9
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
84 dir = getattr(self, lang, self.en)
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
85 pt = getattr(dir, 'main.pt')
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
86 t = pt.title
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
87 if not t:
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
88 t = self.title
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
89
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
90 return t
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
91
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
92 def getDirector(self):
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
93 """returns the name of the director"""
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
94 return self.director
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
95
39
bbad6a092861 more work on projects.
casties
parents: 34
diff changeset
96 def getDirectorUsername(self):
bbad6a092861 more work on projects.
casties
parents: 34
diff changeset
97 """returns the username of the director"""
9
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
98 return self.director_id
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
99
39
bbad6a092861 more work on projects.
casties
parents: 34
diff changeset
100 def getProjectNumber(self):
bbad6a092861 more work on projects.
casties
parents: 34
diff changeset
101 """return the project number"""
9
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
102 return self.project_id
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
103
94
7aaed5218d55 added staffdb_key to departments. getDepartment also gets by id.
casties
parents: 75
diff changeset
104 def getStaffDbKey(self):
7aaed5218d55 added staffdb_key to departments. getDepartment also gets by id.
casties
parents: 75
diff changeset
105 """Return the key for this department in the staff db (personalwww)."""
7aaed5218d55 added staffdb_key to departments. getDepartment also gets by id.
casties
parents: 75
diff changeset
106 return getattr(self, 'staffdb_key', None)
7aaed5218d55 added staffdb_key to departments. getDepartment also gets by id.
casties
parents: 75
diff changeset
107
9
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
108 def getUrl(self, baseUrl=None):
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
109 """returns URL to this Department"""
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
110 if baseUrl is None:
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
111 return self.absolute_url()
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
112
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
113 return '%s/%s'%(baseUrl, self.getId())
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
114
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
115 def getPath(self, page, relative=True):
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
116 """returns path to template page"""
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
117 # get Language from MPIWGRoot
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
118 lang = self.getLang()
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
119 dir = getattr(self, lang, self.en)
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
120 if relative:
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
121 return '%s/%s/%s'%(self.getId(), dir.getId(), page)
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
122
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
123 pt = getattr(dir, page)
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
124 return pt.absolute_url_path()
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
125
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
126 def getMainPath(self):
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
127 """returns the path to the main template"""
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
128 return self.getPath('main.pt')
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
129
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
130 def getMain(self, **args):
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
131 """returns the main part as PageTemplate"""
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
132 # get Language from MPIWGRoot
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
133 lang = self.getLang()
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
134 dir = getattr(self, lang, self.en)
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
135 pt = getattr(dir, 'main.pt')
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
136 return pt(**args)
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
137
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
138 def getThumbImg(self):
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
139 """returns the image object for the sidebar thumbnail"""
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
140 img = getattr(self, 'img-thumb.jpg')
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
141 return img
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
142
30
aa4ab114c28a more work on projects.
casties
parents: 27
diff changeset
143 def getThumbUrl(self):
9
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
144 """returns the URL of the image object for the sidebar thumbnail"""
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
145 img = getattr(self, 'img-thumb.jpg')
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
146 return img.absolute_url()
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
147
27
9a75eb1b31b3 more work on projects.
casties
parents: 24
diff changeset
148 def getProject(self):
9a75eb1b31b3 more work on projects.
casties
parents: 24
diff changeset
149 """returns the default project"""
39
bbad6a092861 more work on projects.
casties
parents: 34
diff changeset
150 pf = self.getMPIWGRoot().getProjectFolder()
bbad6a092861 more work on projects.
casties
parents: 34
diff changeset
151 proj = pf.getProject(projectNumber=self.getProjectNumber())
bbad6a092861 more work on projects.
casties
parents: 34
diff changeset
152 return proj
27
9a75eb1b31b3 more work on projects.
casties
parents: 24
diff changeset
153
105
246d87d33f25 CLOSED - # 79: sortierung der liste der projekte pro abteilung
casties
parents: 94
diff changeset
154 def getProjects(self, count=0, active=0, archived=0, depthFirst=True):
24
6a4996805505 more work on projects.
casties
parents: 16
diff changeset
155 """returns a list of projects of this department.
6a4996805505 more work on projects.
casties
parents: 16
diff changeset
156
75
df56982ecb03 styles for hierarchical project list. some cleanup.
casties
parents: 39
diff changeset
157 active = 0 : all projects
df56982ecb03 styles for hierarchical project list. some cleanup.
casties
parents: 39
diff changeset
158 active = 1 : active projects
df56982ecb03 styles for hierarchical project list. some cleanup.
casties
parents: 39
diff changeset
159 active = 2 : inactive projects
24
6a4996805505 more work on projects.
casties
parents: 16
diff changeset
160
75
df56982ecb03 styles for hierarchical project list. some cleanup.
casties
parents: 39
diff changeset
161 archived = 0 : all projects
df56982ecb03 styles for hierarchical project list. some cleanup.
casties
parents: 39
diff changeset
162 archived = 1 : current projects
df56982ecb03 styles for hierarchical project list. some cleanup.
casties
parents: 39
diff changeset
163 archived = 2 : archived projects
24
6a4996805505 more work on projects.
casties
parents: 16
diff changeset
164 """
39
bbad6a092861 more work on projects.
casties
parents: 34
diff changeset
165 pf = self.getMPIWGRoot().getProjectFolder()
105
246d87d33f25 CLOSED - # 79: sortierung der liste der projekte pro abteilung
casties
parents: 94
diff changeset
166 projects = pf.getProjectsAsList(self.getProjectNumber(), active=active, archived=archived, depthFirst=depthFirst)
27
9a75eb1b31b3 more work on projects.
casties
parents: 24
diff changeset
167 #logging.debug("getProjects projects=%s"%repr(projects))
9a75eb1b31b3 more work on projects.
casties
parents: 24
diff changeset
168 if count > 0:
9a75eb1b31b3 more work on projects.
casties
parents: 24
diff changeset
169 return projects[:count]
24
6a4996805505 more work on projects.
casties
parents: 16
diff changeset
170
6a4996805505 more work on projects.
casties
parents: 16
diff changeset
171 return projects
6a4996805505 more work on projects.
casties
parents: 16
diff changeset
172
9
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
173 def changeWeight(self,weight,RESPONSE=None):
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
174 """change weight"""
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
175 self.weight=weight
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
176 if RESPONSE is not None:
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
177 RESPONSE.redirect('manage_main')
39
bbad6a092861 more work on projects.
casties
parents: 34
diff changeset
178
94
7aaed5218d55 added staffdb_key to departments. getDepartment also gets by id.
casties
parents: 75
diff changeset
179
13
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
180 def changeMPIWGDepartment(self, title=None, weight=None, project_id=None, director=None, director_id=None,
94
7aaed5218d55 added staffdb_key to departments. getDepartment also gets by id.
casties
parents: 75
diff changeset
181 type_en=None, type_de=None, title_en=None, title_de=None, staffdb_key=None, RESPONSE=None):
9
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
182 """change everything"""
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
183 if title is not None:
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
184 self.title = title
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
185 if weight is not None:
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
186 self.weight = weight
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
187 if project_id is not None:
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
188 self.project_id = project_id
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
189 if director is not None:
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
190 self.director = director
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
191 if director_id is not None:
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
192 self.director_id = director_id
94
7aaed5218d55 added staffdb_key to departments. getDepartment also gets by id.
casties
parents: 75
diff changeset
193 if staffdb_key is not None:
7aaed5218d55 added staffdb_key to departments. getDepartment also gets by id.
casties
parents: 75
diff changeset
194 self.staffdb_key = staffdb_key
13
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
195 folder_en = self.get('en', None)
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
196 if folder_en is not None:
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
197 if type_en is not None:
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
198 folder_en.title = type_en
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
199 main_en = folder_en.get('main.pt', None)
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
200 if main_en is not None and title_en is not None:
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
201 main_en.title = title_en
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
202 folder_de = self.get('de', None)
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
203 if folder_de is not None:
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
204 if type_de is not None:
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
205 folder_de.title = type_de
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
206 main_de = folder_de.get('main.pt', None)
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
207 if main_de is not None and title_de is not None:
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
208 main_de.title = title_de
325e7c338815 research websites page. better department editing.
casties
parents: 9
diff changeset
209
9
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
210 if RESPONSE is not None:
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
211 RESPONSE.redirect('manage_main')
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
212
94
7aaed5218d55 added staffdb_key to departments. getDepartment also gets by id.
casties
parents: 75
diff changeset
213
9
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
214 def getBreadcrumbs(self):
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
215 """return list of breadcrumbs from here to the root"""
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
216 crumbs = [(self.getFullTitle(), self.absolute_url(), self)]
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
217 parent = self.aq_parent
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
218 if hasattr(parent, 'getBreadcrumbs'):
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
219 if self.title:
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
220 return parent.getBreadcrumbs() + crumbs
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
221 else:
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
222 # if there's no title, skip this level
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
223 return parent.getBreadcrumbs()
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
224
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
225 return crumbs
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
226
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
227 getSection = MPIWGHelper.getSection
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
228
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
229 getSubSection = MPIWGHelper.getSubSection
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
230
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
231
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
232 def manage_addMPIWGDepartmentForm(self):
94
7aaed5218d55 added staffdb_key to departments. getDepartment also gets by id.
casties
parents: 75
diff changeset
233 """Form for adding a MPIWGDepartment"""
9
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
234 pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/department/manage_add_MPIWGDepartment.zpt')).__of__(self)
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
235 return pt()
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
236
94
7aaed5218d55 added staffdb_key to departments. getDepartment also gets by id.
casties
parents: 75
diff changeset
237
9
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
238 def manage_addMPIWGDepartment(self, id, title=None, weight=0, project_id=0, director=None, director_id=None,
94
7aaed5218d55 added staffdb_key to departments. getDepartment also gets by id.
casties
parents: 75
diff changeset
239 type_en=None, type_de=None, title_en=None, title_de=None, staffdb_key=None, RESPONSE=None):
7aaed5218d55 added staffdb_key to departments. getDepartment also gets by id.
casties
parents: 75
diff changeset
240 """Add a MPIWGDepartment object"""
7aaed5218d55 added staffdb_key to departments. getDepartment also gets by id.
casties
parents: 75
diff changeset
241 newObj = MPIWGDepartment(id, title, weight, project_id, director, director_id, type_en, type_de, title_en, title_de, staffdb_key)
9
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
242 self.Destination()._setObject(id,newObj)
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
243 if RESPONSE is not None:
5db416602e85 new MPIWGDepartment class.
casties
parents:
diff changeset
244 RESPONSE.redirect('manage_main')
94
7aaed5218d55 added staffdb_key to departments. getDepartment also gets by id.
casties
parents: 75
diff changeset
245