annotate MPIWGStaff.py @ 281:a1edd65c8ab7

updateconeIds hinzuegefuegt, getconeid traegt fehlende ids in die Datenbank ein
author Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
date Thu, 21 May 2015 09:27:59 +0200
parents 3f9ba7a8cb27
children 37b89e8a8828
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
1 """This file contains the classes for the organization of the staff"""
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
2
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
3 from OFS.Folder import Folder
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
4 from Products.PageTemplates.PageTemplateFile import PageTemplateFile
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
5
186
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
6 from zope.interface import implements
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
7 from zope.publisher.interfaces import IPublishTraverse
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
8 from ZPublisher.BaseRequest import DefaultPublishTraverse
191
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
9 from Acquisition import aq_parent
186
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
10
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
11 from AccessControl import ClassSecurityInfo
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
12 from App.class_init import InitializeClass
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
13 from App.ImageFile import ImageFile
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
14 from Products.PythonScripts.standard import sql_quote
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
15 from Products.ExtFile import ExtFile
0
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
16 import logging
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
17 import email
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
18 import re
217
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
19 import datetime
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
20
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
21 from Products.ZDBInterface.ZDBInterfaceFolder import ZDBInterfaceFolder
251
4742e71606e4 fixed bug when creating personal calendar.
casties
parents: 249
diff changeset
22 from Products.MPIWGManager import MPIWGIcsManager
2
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
23
233
e2d2f018a8e2 add character count to staff profile editing page.
casties
parents: 226
diff changeset
24 from SrvTxtUtils import getInt, unicodify, utf8ify, sqlName, getPlaintext
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
25 import MPIWGHelper
0
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
26
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
27 #
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
28 # compatibility
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
29 # TODO: should be removed when done
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
30 import MPIWGStaff_old
0
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
31
189
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
32 #createNewDBEntry = MPIWGStaff_old.createNewDBEntry
0
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
33
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
34 class MPIWGStaff(MPIWGStaff_old.MPIWGStaff):
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
35 """Staff"""
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
36 pass
0
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
37
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
38 manage_addMPIWGStaffForm = MPIWGStaff_old.manage_addMPIWGStaffForm
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
39 manage_addMPIWGStaff = MPIWGStaff_old.manage_addMPIWGStaff
0
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
40
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
41
2
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
42 class MPIWGStaffFolder(ZDBInterfaceFolder):
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
43 """Folder of staff objects"""
186
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
44 implements(IPublishTraverse)
2
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
45
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
46 meta_type="MPIWGStaffFolder"
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
47 security=ClassSecurityInfo()
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
48
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
49 #
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
50 # templates
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
51 #
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
52 member_index_html = PageTemplateFile('zpt/staff/member_index_html', globals())
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
53 edit_css = ImageFile('css/edit.css', globals())
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
54
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
55
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
56 #
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
57 # hook into traversal to create folder of virtual staff objects
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
58 # like /members/$username/index_html
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
59 #
186
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
60 def publishTraverse(self, request, name):
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
61 """change the traversal"""
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
62 # get stored path
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
63 logging.debug("publishtraverse: name=%s"%(name))
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
64
186
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
65 # try name as username
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
66 member = self.getMember(username=name)
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
67 if member is not None:
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
68 # traverse to MPIWGStaffMember object
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
69 member = member.__of__(self)
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
70 return member
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
71
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
72 # use default traverser
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
73 tr = DefaultPublishTraverse(self, request)
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
74 ob = tr.publishTraverse(request, name)
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
75 return ob
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
76
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
77
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
78 def getMember(self, username=None, key=None):
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
79 """returns a MPIWGStaffMember object if the username exists"""
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
80 member = None
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
81 if username is not None:
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
82 # TODO: we should have a username column
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
83 email = '%s@mpiwg-berlin.mpg.de'%username
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
84 content = self.executeZSQL("select * from personal_www where e_mail = %s", [email])
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
85 if len(content) > 0:
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
86 member = MPIWGStaffMember(self, dbresult=content[0])
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
87
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
88 elif key is not None:
222
95e0087b9e19 removed some comparisons that ignore person-id case.
casties
parents: 217
diff changeset
89 content = self.executeZSQL("select * from personal_www where key = %s", [key])
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
90 if len(content) > 0:
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
91 member = MPIWGStaffMember(self, dbresult=content[0])
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
92
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
93 return member
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
94
2
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
95
40
fd8e78bbc5ed more work on projects.
casties
parents: 38
diff changeset
96 def isActiveMember(self, key):
fd8e78bbc5ed more work on projects.
casties
parents: 38
diff changeset
97 """returns if member key is active"""
222
95e0087b9e19 removed some comparisons that ignore person-id case.
casties
parents: 217
diff changeset
98 res = self.executeZSQL("select * from personal_www where key = %s and publish_the_data = 'yes'", [key])
40
fd8e78bbc5ed more work on projects.
casties
parents: 38
diff changeset
99 return len(res) > 0
fd8e78bbc5ed more work on projects.
casties
parents: 38
diff changeset
100
fd8e78bbc5ed more work on projects.
casties
parents: 38
diff changeset
101
206
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
102 def getMemberList(self, department=None, sortBy='last_name', onlyCurrent=False, arrivedWithin=None,
263
738129610f36 getMemberList gets status filter parameter.
casties
parents: 254
diff changeset
103 onlyPublished=True, onlyWithEmail=True, onlyScholar=True, status=None, limit=0):
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
104 """Return the list of members.
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
105
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
106 Returns a list of MPIWGStaffMember objects.
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
107 """
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
108 members = []
206
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
109 args = []
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
110 wheres = []
189
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
111
206
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
112 if onlyPublished:
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
113 wheres.append("publish_the_data = 'yes'")
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
114
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
115 if onlyWithEmail:
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
116 wheres.append("e_mail <> ''")
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
117
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
118 if onlyScholar:
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
119 wheres.append("is_scholar = 'yes'")
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
120
93
48e88706cfc3 department filter for getMemberList.
casties
parents: 86
diff changeset
121 if department is not None:
206
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
122 wheres.append("department ilike %s")
93
48e88706cfc3 department filter for getMemberList.
casties
parents: 86
diff changeset
123 args.append('%%%s%%'%department)
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
124
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
125 if onlyCurrent:
206
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
126 wheres.append("date_from < CURRENT_DATE")
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
127
175
7d85ebe92ecf getMemberList gets arrivedWithin parameter.
casties
parents: 162
diff changeset
128 if arrivedWithin is not None:
206
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
129 wheres.append("date_from > CURRENT_DATE - interval %s")
175
7d85ebe92ecf getMemberList gets arrivedWithin parameter.
casties
parents: 162
diff changeset
130 args.append(arrivedWithin)
263
738129610f36 getMemberList gets status filter parameter.
casties
parents: 254
diff changeset
131
738129610f36 getMemberList gets status filter parameter.
casties
parents: 254
diff changeset
132 if status is not None:
738129610f36 getMemberList gets status filter parameter.
casties
parents: 254
diff changeset
133 wheres.append("status ilike %s")
738129610f36 getMemberList gets status filter parameter.
casties
parents: 254
diff changeset
134 args.append('%%%s%%'%status)
206
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
135
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
136 # assemble query
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
137 query = "SELECT * FROM personal_www_list"
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
138 if len(wheres) > 0:
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
139 query += " WHERE " + " AND ".join(wheres)
175
7d85ebe92ecf getMemberList gets arrivedWithin parameter.
casties
parents: 162
diff changeset
140
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
141 if sortBy == 'last_name':
206
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
142 query += " ORDER BY lower(last_name)"
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
143 elif sortBy == 'date_from':
206
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
144 query += " ORDER BY date_from DESC"
233
e2d2f018a8e2 add character count to staff profile editing page.
casties
parents: 226
diff changeset
145 elif sortBy:
e2d2f018a8e2 add character count to staff profile editing page.
casties
parents: 226
diff changeset
146 query += ' ORDER BY "%s"'%sqlName(sortBy)
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
147
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
148 if limit > 0:
206
31b28f369fd3 more flexible getMemberList()
casties
parents: 204
diff changeset
149 query += " LIMIT %s"%int(limit)
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
150
93
48e88706cfc3 department filter for getMemberList.
casties
parents: 86
diff changeset
151 result = self.executeZSQL(query, args)
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
152 for res in result:
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
153 members.append(MPIWGStaffMember(self, dbresult=res))
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
154
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
155 return members
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
156
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
157
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
158 def sortPriority(self,list):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
159 def sort(x,y):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
160 try:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
161 xInt=int(x.priority)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
162 except:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
163 xInt=0
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
164 try:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
165 yInt=int(y.priority)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
166 except:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
167 yInt=0
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
168
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
169 return cmp(xInt,yInt)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
170
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
171 if not list:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
172 return []
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
173 tmp=[x for x in list]
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
174 tmp.sort(sort)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
175
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
176 return tmp
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
177
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
178
106
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
179 def importSortingModeFromOldStaff(self):
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
180 """ only used for the migration to the new website """
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
181 ret=[]
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
182 for member in self.getMemberList():
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
183 email = member.content.e_mail
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
184 un = email.split("@")[0]
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
185
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
186 logging.debug(un)
122
4a54537ddcf7 fix converting old members
dwinter
parents: 110
diff changeset
187 olduser = self.members_old.get(un)
106
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
188
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
189 if not olduser is None:
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
190 mode =olduser.getSortingMode()
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
191
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
192
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
193 if mode.startswith("year"):
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
194 mode="year"
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
195
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
196 query="UPDATE personal_www SET publications_mode=%s WHERE key=%s"
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
197
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
198 self.executeZSQL(query,[mode,member.getKey()])
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
199
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
200 return ret
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
201
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
202
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
203 def importPublishFotoFromOldStaff(self):
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
204 """ only used for the migration to the new website """
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
205 ret=[]
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
206 for member in self.getMemberList():
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
207 email = member.content.e_mail
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
208 un = email.split("@")[0]
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
209
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
210 logging.debug(un)
122
4a54537ddcf7 fix converting old members
dwinter
parents: 110
diff changeset
211 olduser = self.members_old.get(un)
106
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
212
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
213 if not olduser is None:
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
214 mode =olduser.getPublishImage()
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
215
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
216
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
217
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
218 query="UPDATE personal_www SET image_p=%s WHERE key=%s"
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
219
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
220 self.executeZSQL(query,[mode,member.getKey()])
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
221
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
222 return ret
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
223
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
224 def showDownloadableFiles(self):
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
225 """copy df to the new"""
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
226 logging.debug("huh")
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
227 ret=[]
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
228
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
229 for member in self.getMemberList(onlyCurrent=True):
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
230 email = member.content.e_mail
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
231 un = email.split("@")[0]
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
232
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
233 logging.debug(un)
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
234 olduser = self.www_neu.members.get(un)
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
235 if olduser is None:
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
236 continue;
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
237 df = olduser.get('downloadableFiles')
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
238 if df is not None:
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
239 ret.append(olduser)
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
240
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
241 return ret,len(ret)
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
242
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
243
226
4f2ed4dc50e6 clean up use of member-key.
casties
parents: 222
diff changeset
244 security.declareProtected('View management screens','createNewDBEntry')
234
774ee7595e0c fix bugs in createNewDBEntry.
casties
parents: 233
diff changeset
245 def createNewDBEntry(self,publish_the_data,key,name,vorname,titles_new,position,e_mail,e_mail_p,date_from,date_to,abteilung,heimat_inst,
774ee7595e0c fix bugs in createNewDBEntry.
casties
parents: 233
diff changeset
246 funded_by="",e_mail2="",txt="",txt_p="no",stay_at_mpiwg="",group="",web_object_created="no",current_work=""):
189
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
247 """lege person in der datenbank an"""
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
248
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
249 if date_to=="": # wenn date_to leer
234
774ee7595e0c fix bugs in createNewDBEntry.
casties
parents: 233
diff changeset
250 date_to="date_none"
106
7dd264f9b728 importOldSettingforSorting and Publish
dwinter
parents: 100
diff changeset
251
189
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
252 if date_from=="": # wenn date_fromleer
234
774ee7595e0c fix bugs in createNewDBEntry.
casties
parents: 233
diff changeset
253 date_from="date_none"
189
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
254 msg=""
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
255 #test ob id schon existiert
226
4f2ed4dc50e6 clean up use of member-key.
casties
parents: 222
diff changeset
256 #if self.ZSQLQuery("select key from personal_www where key='%s'"%id):
234
774ee7595e0c fix bugs in createNewDBEntry.
casties
parents: 233
diff changeset
257 if self.getMember(key=key) is not None:
189
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
258 return False,"ERROR:key%s already exists"%key
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
259
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
260 #eintragen
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
261 columnlist="""publish_the_data,key,last_name,first_name,titles_new,status,e_mail,e_mail_p,date_from,date_to,department,home_inst,funded_by,e_mail2,date_stay_at_mpiwg,web_object_created,"group",current_work,current_work_p """
234
774ee7595e0c fix bugs in createNewDBEntry.
casties
parents: 233
diff changeset
262 insertTuple=(publish_the_data,key,name,vorname,titles_new,position,e_mail,e_mail_p,date_from,date_to,abteilung,heimat_inst,
774ee7595e0c fix bugs in createNewDBEntry.
casties
parents: 233
diff changeset
263 funded_by,e_mail2,stay_at_mpiwg,web_object_created,group,current_work,"yes")
189
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
264
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
265 insert=[]
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
266 for element in insertTuple:
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
267 if element=="date_none": # date_none eintrag wird zu null uebersetzt
226
4f2ed4dc50e6 clean up use of member-key.
casties
parents: 222
diff changeset
268 insert.append(None)
189
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
269 else:
226
4f2ed4dc50e6 clean up use of member-key.
casties
parents: 222
diff changeset
270 insert.append(element)
189
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
271
226
4f2ed4dc50e6 clean up use of member-key.
casties
parents: 222
diff changeset
272 #insertStr=",".join(insert)
4f2ed4dc50e6 clean up use of member-key.
casties
parents: 222
diff changeset
273 insertStr=("%s," * len(insert))[:-1]
189
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
274 queryStr="INSERT INTO personal_www (%s) VALUES (%s)"%(columnlist,insertStr)
210
7791d4fc8a0e remove "set datestyle" as it confuses psycopg date parsing. make sure postgresql default is set accordingly.
casties
parents: 208
diff changeset
275 #self.ZSQLQuery("SET DATESTYLE TO 'German'")
226
4f2ed4dc50e6 clean up use of member-key.
casties
parents: 222
diff changeset
276 #self.ZSQLQuery(queryStr)
234
774ee7595e0c fix bugs in createNewDBEntry.
casties
parents: 233
diff changeset
277 # TODO: is there a better way for dates?
774ee7595e0c fix bugs in createNewDBEntry.
casties
parents: 233
diff changeset
278 self.executeZSQL("SET DATESTYLE TO 'German'")
226
4f2ed4dc50e6 clean up use of member-key.
casties
parents: 222
diff changeset
279 self.executeZSQL(queryStr, insert)
189
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
280 logging.info("createNewDBEntry %s:"%queryStr)
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
281 #currentwork
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
282 #if not (current_work==""):
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
283 # queryStr="INSERT INTO current_work (key_main,current,publish) VALUES ('%s',%s,'%s')"%(key,self.ZSQLQuote(current_work),"yes")
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
284
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
285 # self.ZSQLQuery(queryStr)
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
286
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
287 return True,msg
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
288
226
4f2ed4dc50e6 clean up use of member-key.
casties
parents: 222
diff changeset
289
4f2ed4dc50e6 clean up use of member-key.
casties
parents: 222
diff changeset
290 security.declareProtected('View management screens','addEmails')
189
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
291 def addEmails(self,RESPONSE):
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
292 """add emails to the members from form"""
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
293 args=self.REQUEST.form
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
294 arg_k=args.keys()
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
295 arg_k.remove("submit")
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
296 ret="<html><body>"
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
297 for key in arg_k:
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
298 if args[key]!="": #email-adresse wurde eingetragen
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
299 #create the object
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
300 e_mail=args[key]
226
4f2ed4dc50e6 clean up use of member-key.
casties
parents: 222
diff changeset
301 qstr="update personal_www set web_object_created='yes', e_mail=%s where key=%s"
4f2ed4dc50e6 clean up use of member-key.
casties
parents: 222
diff changeset
302 self.executeZSQL(qstr, ["%s@mpiwg-berlin.mpg.de"%e_mail, key])
189
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
303
226
4f2ed4dc50e6 clean up use of member-key.
casties
parents: 222
diff changeset
304 ret+="<p>Added: %s</p>"%key
189
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
305
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
306 return ret+"</body></html>"
226
4f2ed4dc50e6 clean up use of member-key.
casties
parents: 222
diff changeset
307
281
a1edd65c8ab7 updateconeIds hinzuegefuegt, getconeid traegt fehlende ids in die Datenbank ein
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents: 275
diff changeset
308
a1edd65c8ab7 updateconeIds hinzuegefuegt, getconeid traegt fehlende ids in die Datenbank ein
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents: 275
diff changeset
309 def updateConeIds(self,REQUEST):
a1edd65c8ab7 updateconeIds hinzuegefuegt, getconeid traegt fehlende ids in die Datenbank ein
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents: 275
diff changeset
310 """holt alle coneids von allen member, die methode getconeid traegt diese dann auch all in die key tabelle ein, falls sie ich fehlen"""
226
4f2ed4dc50e6 clean up use of member-key.
casties
parents: 222
diff changeset
311
281
a1edd65c8ab7 updateconeIds hinzuegefuegt, getconeid traegt fehlende ids in die Datenbank ein
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents: 275
diff changeset
312 mems= self.getMemberList()
a1edd65c8ab7 updateconeIds hinzuegefuegt, getconeid traegt fehlende ids in die Datenbank ein
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents: 275
diff changeset
313 cids=[]
a1edd65c8ab7 updateconeIds hinzuegefuegt, getconeid traegt fehlende ids in die Datenbank ein
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents: 275
diff changeset
314 for mem in mems:
a1edd65c8ab7 updateconeIds hinzuegefuegt, getconeid traegt fehlende ids in die Datenbank ein
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents: 275
diff changeset
315 cids.append(mem.getConeId())
a1edd65c8ab7 updateconeIds hinzuegefuegt, getconeid traegt fehlende ids in die Datenbank ein
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents: 275
diff changeset
316
a1edd65c8ab7 updateconeIds hinzuegefuegt, getconeid traegt fehlende ids in die Datenbank ein
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents: 275
diff changeset
317 return cids
a1edd65c8ab7 updateconeIds hinzuegefuegt, getconeid traegt fehlende ids in die Datenbank ein
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents: 275
diff changeset
318
a1edd65c8ab7 updateconeIds hinzuegefuegt, getconeid traegt fehlende ids in die Datenbank ein
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents: 275
diff changeset
319
246
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
320 def getConeIDsFromDB(self,REQUEST):
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
321 """holt die cone ids aus personalwww und gibt sie als RDF fuer den cone import zurueck"""
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
322
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
323 qs = "select personal_www.last_name, personal_www.first_name, keys.coneid from personal_www inner join keys on personal_www.key = keys.key_main;"
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
324 coneIds = self.executeZSQL(qs)
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
325
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
326 ret="""<?xml version="1.0" encoding="UTF-8"?>
253
065c4284238f rdf extended for cone export
dwinter
parents: 247
diff changeset
327 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:escidoc="http://purl.org/escidoc/metadata/terms/0.1/" xmlns:eprints="http://purl.org/eprint/terms/">
246
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
328 """
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
329
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
330 templ="""
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
331 <rdf:Description rdf:about="%s">
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
332 <dc:title>%s, %s</dc:title>
253
065c4284238f rdf extended for cone export
dwinter
parents: 247
diff changeset
333
065c4284238f rdf extended for cone export
dwinter
parents: 247
diff changeset
334 <escidoc:position>
065c4284238f rdf extended for cone export
dwinter
parents: 247
diff changeset
335 <rdf:Description>
065c4284238f rdf extended for cone export
dwinter
parents: 247
diff changeset
336 <dc:identifier>escidoc:14002</dc:identifier>
065c4284238f rdf extended for cone export
dwinter
parents: 247
diff changeset
337 <eprints:affiliatedInstitution>Max Planck Institute for the History of Science, Max Planck Society</eprints:affiliatedInstitution>
065c4284238f rdf extended for cone export
dwinter
parents: 247
diff changeset
338 </rdf:Description>
065c4284238f rdf extended for cone export
dwinter
parents: 247
diff changeset
339 </escidoc:position>
065c4284238f rdf extended for cone export
dwinter
parents: 247
diff changeset
340
065c4284238f rdf extended for cone export
dwinter
parents: 247
diff changeset
341
065c4284238f rdf extended for cone export
dwinter
parents: 247
diff changeset
342
246
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
343 </rdf:Description>
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
344 """
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
345 print coneIds.names()
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
346 for coneId in coneIds:
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
347
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
348 ret+=templ%(coneId["coneid"],coneId["last_name"],coneId["first_name"])
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
349
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
350 ret+="""
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
351 </rdf:RDF>
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
352 """
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
353 if REQUEST is not None:
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
354 REQUEST.response.setHeader("Content-type", "text/XML")
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
355 return ret
8fca81581883 getConeIDsFromDB added
dwinter
parents: 237
diff changeset
356
2
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
357 def manage_addMPIWGStaffFolderForm(self):
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
358 """form for adding the project"""
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
359 pt=PageTemplateFile('zpt/addMPIWGStaffFolderForm', globals()).__of__(self)
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
360 return pt()
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
361
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
362 def manage_addMPIWGStaffFolder(self,id,title,RESPONSE=None):
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
363 """add it"""
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
364 newObj=MPIWGStaffFolder(id,title)
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
365
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
366 self._setObject(id,newObj)
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
367
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
368 if RESPONSE is not None:
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
369 RESPONSE.redirect('manage_main')
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
370
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
371
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
372 class MPIWGStaffMember(Folder):
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
373 """MPIWG staff member object from database"""
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
374
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
375 security = ClassSecurityInfo()
65
63184d71c014 lots of cleaning up.
casties
parents: 59
diff changeset
376
63184d71c014 lots of cleaning up.
casties
parents: 59
diff changeset
377 # templates
63184d71c014 lots of cleaning up.
casties
parents: 59
diff changeset
378 mainEditFile=PageTemplateFile('zpt/staff/edit_main', globals())
100
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
379 talks_full_html = PageTemplateFile('zpt/staff/talks_full_html', globals())
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
380 teaching_full_html = PageTemplateFile('zpt/staff/teaching_full_html', globals())
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
381
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
382
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
383 def __init__(self, folder, dbresult):
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
384 """constructor: takes parent MPIWGStaffFolder and content (DB row)"""
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
385 self.folder = folder
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
386 self.content = dbresult
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
387
186
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
388
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
389 def index_html(self, REQUEST, RESPONSE):
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
390 """show homepage"""
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
391 # get template /template/member_index_html (with acquisition)
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
392 pt = getattr(self.template, 'member_index_html', None)
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
393 if pt is not None:
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
394 return pt(member=self)
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
395
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
396 return "No template /template/member_index_html"
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
397
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
398
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
399 def isValid(self):
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
400 """returns if this member exists"""
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
401 return len(self.content) > 0
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
402
79
7f26c8e6c8e9 more styles for project lists.
casties
parents: 73
diff changeset
403 def isActive(self):
7f26c8e6c8e9 more styles for project lists.
casties
parents: 73
diff changeset
404 """Return if this member is visible (published)."""
7f26c8e6c8e9 more styles for project lists.
casties
parents: 73
diff changeset
405 return (self.content.publish_the_data == 'yes')
7f26c8e6c8e9 more styles for project lists.
casties
parents: 73
diff changeset
406
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
407 def getKey(self):
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
408 """returns the db key"""
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
409 return self.content.key
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
410
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
411 def getUsername(self):
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
412 """returns the username"""
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
413 id = re.sub('@mpiwg-berlin\.mpg\.de', '', self.content.e_mail)
217
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
414 return str(id)
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
415
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
416 getId = getUsername
46
955d102392db pubman integration 0.2
dwinter
parents: 38
diff changeset
417 def getConeId(self):
955d102392db pubman integration 0.2
dwinter
parents: 38
diff changeset
418 """return cone ID"""
281
a1edd65c8ab7 updateconeIds hinzuegefuegt, getconeid traegt fehlende ids in die Datenbank ein
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents: 275
diff changeset
419 results= self.folder.executeZSQL("SELECT coneid FROM keys WHERE key_main = %s",[self.content.key])
a1edd65c8ab7 updateconeIds hinzuegefuegt, getconeid traegt fehlende ids in die Datenbank ein
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents: 275
diff changeset
420 for res in results:
79
7f26c8e6c8e9 more styles for project lists.
casties
parents: 73
diff changeset
421 return res.coneid
281
a1edd65c8ab7 updateconeIds hinzuegefuegt, getconeid traegt fehlende ids in die Datenbank ein
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents: 275
diff changeset
422
a1edd65c8ab7 updateconeIds hinzuegefuegt, getconeid traegt fehlende ids in die Datenbank ein
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents: 275
diff changeset
423 newConeId="http://pubman.mpiwg-berlin.mpg.de/cone/persons/resource/%s"%self.content.key
a1edd65c8ab7 updateconeIds hinzuegefuegt, getconeid traegt fehlende ids in die Datenbank ein
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents: 275
diff changeset
424
a1edd65c8ab7 updateconeIds hinzuegefuegt, getconeid traegt fehlende ids in die Datenbank ein
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents: 275
diff changeset
425 results = self.folder.executeZSQL("INSERT INTO keys (coneid,key_main) values(%s,%s)",[newConeId,self.content.key])
a1edd65c8ab7 updateconeIds hinzuegefuegt, getconeid traegt fehlende ids in die Datenbank ein
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents: 275
diff changeset
426
a1edd65c8ab7 updateconeIds hinzuegefuegt, getconeid traegt fehlende ids in die Datenbank ein
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents: 275
diff changeset
427 return newConeId
a1edd65c8ab7 updateconeIds hinzuegefuegt, getconeid traegt fehlende ids in die Datenbank ein
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents: 275
diff changeset
428
a1edd65c8ab7 updateconeIds hinzuegefuegt, getconeid traegt fehlende ids in die Datenbank ein
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents: 275
diff changeset
429
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
430 def getPublishedImageUrl(self, width=None, height=None, showAlways=False):
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
431 """returns the URL to the image if it is published"""
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
432 if self.content.image_p == 'yes' or showAlways:
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
433 url = 'http://digilib.mpiwg-berlin.mpg.de/digitallibrary/Scaler?fn=permanent/mpiwg/staff/%s'%self.getUsername()
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
434 if width is not None:
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
435 url += '&dw=%s'%width
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
436
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
437 if height is not None:
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
438 url += '&dh=%s'%height
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
439
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
440 return url
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
441
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
442 return None
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
443
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
444 def getContent(self):
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
445 """returns the db content of this object"""
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
446 return self.content
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
447
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
448
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
449 # TODO: ugly!
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
450 security.declarePublic('sortBibliography')
79
7f26c8e6c8e9 more styles for project lists.
casties
parents: 73
diff changeset
451 def sortBibliography(self, bib, sortingMode=None, max=None):
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
452 """sort bibliography"""
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
453 if not sortingMode:
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
454 sortingMode= "priority"
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
455
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
456 l = [x for x in bib]
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
457
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
458 if sortingMode == "year":
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
459 l.sort(key=lambda x: getInt(x.year))
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
460 else:
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
461 l.sort(key=lambda x: getInt(x.priority))
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
462
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
463 if max:
79
7f26c8e6c8e9 more styles for project lists.
casties
parents: 73
diff changeset
464 return l[0:max]
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
465 else:
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
466 return l
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
467
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
468
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
469 getUrl = MPIWGHelper.getUrl
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
470
233
e2d2f018a8e2 add character count to staff profile editing page.
casties
parents: 226
diff changeset
471
e2d2f018a8e2 add character count to staff profile editing page.
casties
parents: 226
diff changeset
472 def getProfile(self, filter=None, length=0):
e2d2f018a8e2 add character count to staff profile editing page.
casties
parents: 226
diff changeset
473 """Return the profile"""
e2d2f018a8e2 add character count to staff profile editing page.
casties
parents: 226
diff changeset
474 logging.debug("getProfile: self.content=%s"%(repr(self.content)))
e2d2f018a8e2 add character count to staff profile editing page.
casties
parents: 226
diff changeset
475 text = self.content.profile
e2d2f018a8e2 add character count to staff profile editing page.
casties
parents: 226
diff changeset
476 if filter == 'plaintext':
e2d2f018a8e2 add character count to staff profile editing page.
casties
parents: 226
diff changeset
477 # filter out any tags, keep only text
e2d2f018a8e2 add character count to staff profile editing page.
casties
parents: 226
diff changeset
478 text = getPlaintext(text, length=length, wordwrap=True, ignoretags=['style'])
e2d2f018a8e2 add character count to staff profile editing page.
casties
parents: 226
diff changeset
479
e2d2f018a8e2 add character count to staff profile editing page.
casties
parents: 226
diff changeset
480 return text
e2d2f018a8e2 add character count to staff profile editing page.
casties
parents: 226
diff changeset
481
e2d2f018a8e2 add character count to staff profile editing page.
casties
parents: 226
diff changeset
482
100
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
483 def getTalks(self, published=True, sortBy='priority'):
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
484 """Return the list of talks"""
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
485 query = "SELECT oid,* FROM talks WHERE key_main = %s"
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
486 if published:
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
487 query += " and published = 'yes'"
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
488
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
489 if sortBy == 'priority':
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
490 query += " order by priority"
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
491
217
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
492 return self.folder.executeZSQL(query, [self.getKey()])
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
493
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
494
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
495 def getTalksCal(self):
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
496 """Return the talks calendar object (MPIWGIcsManager)"""
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
497 try:
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
498 cal = self.folder.get('calendars').get("%s_talks"%self.getUsername())
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
499 return cal
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
500 except:
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
501 return None
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
502
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
503
100
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
504 def getTeaching(self, published=True, sortBy='priority'):
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
505 """Return the list of teaching activities"""
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
506 query = "SELECT oid,* FROM teaching WHERE key_main = %s"
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
507 if published:
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
508 query += " AND published = 'yes'"
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
509
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
510 if sortBy == 'priority':
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
511 query += " ORDER BY priority"
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
512
217
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
513 return self.folder.executeZSQL(query,[self.getKey()])
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
514
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
515
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
516 def getLastUpdateCV(self):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
517 """getDate of Last Update"""
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
518 try:
217
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
519 ob=self.folder.get("downloadableFiles").get("%s_cv.pdf"%self.getUsername())
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
520 return datetime.datetime.fromtimestamp(ob._p_mtime)
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
521 except:
162
47392bf3fcba clean ups and fixes
casties
parents: 159
diff changeset
522 return "No file yet!"
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
523
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
524
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
525 def getLastUpdatePublications(self):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
526 """getDate of Last Update"""
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
527 try:
217
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
528 ob=self.folder.get("downloadableFiles").get("%s_publications.pdf"%self.getUsername())
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
529 return datetime.datetime.fromtimestamp(ob._p_mtime)
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
530 except:
162
47392bf3fcba clean ups and fixes
casties
parents: 159
diff changeset
531 return "No file yet!"
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
532
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
533
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
534 def downloadCV(self,REQUEST):
194
45984e00665f upload and download cv and publicationlist
dwinter
parents: 193
diff changeset
535 """download the cv"""
217
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
536 ob=self.folder.get("downloadableFiles").get("%s_cv.pdf" % self.getUsername())
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
537 REQUEST.RESPONSE.redirect(ob.absolute_url())
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
538
217
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
539
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
540 def downloadPublications(self,REQUEST):
194
45984e00665f upload and download cv and publicationlist
dwinter
parents: 193
diff changeset
541 """donwload the publication list"""
217
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
542 ob=self.folder.get("downloadableFiles").get("%s_publications.pdf"%self.getUsername())
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
543 REQUEST.RESPONSE.redirect(ob.absolute_url())
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
544
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
545
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
546 def getAdditionalLinks(self):
208
6d6076e28430 fix deleteField for additionalLink (still ugly though)
casties
parents: 206
diff changeset
547 return self.folder.executeZSQL("SELECT oid,* FROM additionallink WHERE key_main = %s ORDER BY priority",[self.content.key])
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
548
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
549
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
550 def getPathStyle(self, path, selected, style=""):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
551 """returns a string with the given style + 'sel' if path == selected."""
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
552 if path == selected:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
553 return style + 'sel'
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
554 else:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
555 return style
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
556
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
557
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
558 security.declareProtected('View management screens','edit')
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
559 def edit(self,REQUEST=None):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
560 """Edit the basic information"""
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
561 if REQUEST:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
562 argv=REQUEST.form
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
563
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
564 if argv.has_key('last_name'): #got data to change
149
0d9eb2a859d3 fixed typo
casties
parents: 147
diff changeset
565 self.invalidate_cache()
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
566 self.changeData(argv);
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
567
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
568 pt=PageTemplateFile('zpt/staff/edit_basic', globals()).__of__(self)
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
569 return pt()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
570
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
571
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
572 security.declareProtected('View management screens','editShortEntry')
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
573 def editShortEntry(self,REQUEST=None):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
574 """Edit the basic information"""
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
575 if REQUEST:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
576 argv=REQUEST.form
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
577
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
578 if argv.has_key('current_work'): #got data to change
149
0d9eb2a859d3 fixed typo
casties
parents: 147
diff changeset
579 self.invalidate_cache()
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
580 self.changeData(argv);
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
581
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
582 pt=PageTemplateFile('zpt/staff/edit_shortEntry', globals()).__of__(self)
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
583 return pt()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
584
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
585
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
586 security.declareProtected('View management screens', 'editProfile')
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
587 def editProfile(self, REQUEST=None):
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
588 """edit Profile, new entry replaces CD, current work and research interests"""
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
589 if REQUEST:
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
590 kupu = REQUEST.form.get('kupu', None);
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
591 preview = REQUEST.form.get('preview', None);
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
592
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
593 if kupu:
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
594 start = kupu.find("<body>")
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
595 end = kupu.find("</body>")
187
71c2d76f09b5 fix editProfile.
casties
parents: 186
diff changeset
596 newcontent = kupu[start+6:end]
71c2d76f09b5 fix editProfile.
casties
parents: 186
diff changeset
597 query = "UPDATE personal_www SET profile=%s WHERE key=%s"
71c2d76f09b5 fix editProfile.
casties
parents: 186
diff changeset
598 self.executeZSQL(query, [newcontent, self.content.key])
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
599
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
600 if preview:
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
601 pass
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
602 # TODO: not supported yet
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
603 # if RESPONSE:
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
604 # self.redirect(RESPONSE,"editProfile")
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
605 # return self.preview(newcontent)
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
606
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
607 pt = PageTemplateFile('zpt/staff/edit_profile.zpt', globals()).__of__(self)
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
608 return pt()
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
609
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
610
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
611 security.declareProtected('View management screens','editTalks')
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
612 def editTalks(self,REQUEST):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
613 """edit talks"""
217
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
614 pt=PageTemplateFile('zpt/staff/edit_talks.zpt', globals()).__of__(self)
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
615
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
616 if REQUEST:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
617 argv=REQUEST.form
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
618
217
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
619 url = argv.get('ics_url', None)
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
620 if url:
243
980794794bb5 added preferences for number of publications, talks, and teachings on profile page.
casties
parents: 242
diff changeset
621 #
242
0b7a95c02f68 added preference for number of talks from calendar on profile page.
casties
parents: 238
diff changeset
622 # ICS URL driven talks
243
980794794bb5 added preferences for number of publications, talks, and teachings on profile page.
casties
parents: 242
diff changeset
623 #
217
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
624 cal_id = "%s_talks"%self.getUsername()
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
625 # use ICS calendar
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
626 cal = self.getTalksCal()
238
5f5d7f07c1bd added "show only upcoming" option for talks from calendar.
casties
parents: 237
diff changeset
627 if cal is None:
5f5d7f07c1bd added "show only upcoming" option for talks from calendar.
casties
parents: 237
diff changeset
628 # create new calendar
251
4742e71606e4 fixed bug when creating personal calendar.
casties
parents: 249
diff changeset
629 cal = MPIWGIcsManager.MPIWGIcsManager(cal_id, '', url, defaultProps=MPIWGIcsManager.calendar_props)
238
5f5d7f07c1bd added "show only upcoming" option for talks from calendar.
casties
parents: 237
diff changeset
630 self.folder.get('calendars')[cal_id] = cal
5f5d7f07c1bd added "show only upcoming" option for talks from calendar.
casties
parents: 237
diff changeset
631
5f5d7f07c1bd added "show only upcoming" option for talks from calendar.
casties
parents: 237
diff changeset
632 else:
217
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
633 # calendar exists
238
5f5d7f07c1bd added "show only upcoming" option for talks from calendar.
casties
parents: 237
diff changeset
634 if cal.url != url:
5f5d7f07c1bd added "show only upcoming" option for talks from calendar.
casties
parents: 237
diff changeset
635 # remove and re-create
217
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
636 del self.folder.get('calendars')[cal_id]
251
4742e71606e4 fixed bug when creating personal calendar.
casties
parents: 249
diff changeset
637 cal = MPIWGIcsManager.MPIWGIcsManager(cal_id, '', url, defaultProps=MPIWGIcsManager.calendar_props)
238
5f5d7f07c1bd added "show only upcoming" option for talks from calendar.
casties
parents: 237
diff changeset
638 self.folder.get('calendars')[cal_id] = cal
217
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
639
238
5f5d7f07c1bd added "show only upcoming" option for talks from calendar.
casties
parents: 237
diff changeset
640 # show only upcoming
5f5d7f07c1bd added "show only upcoming" option for talks from calendar.
casties
parents: 237
diff changeset
641 upcoming = argv.get('only_upcoming', None)
5f5d7f07c1bd added "show only upcoming" option for talks from calendar.
casties
parents: 237
diff changeset
642 cal.setFlag('only_upcoming', (upcoming == 'yes'))
242
0b7a95c02f68 added preference for number of talks from calendar on profile page.
casties
parents: 238
diff changeset
643 # number of events
243
980794794bb5 added preferences for number of publications, talks, and teachings on profile page.
casties
parents: 242
diff changeset
644 talks_num = int(argv.get('talks_num', 5))
980794794bb5 added preferences for number of publications, talks, and teachings on profile page.
casties
parents: 242
diff changeset
645 self.changeData({'talks_num': talks_num})
217
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
646
275
3f9ba7a8cb27 fixed fix for: 175: removing the ICS URL in editTalks doesn't work
casties
parents: 274
diff changeset
647 elif argv.has_key('only_upcoming'):
274
87e7e210968d fixed: 175: removing the ICS URL in editTalks doesn't work
casties
parents: 263
diff changeset
648 # delete calendar if it exists
87e7e210968d fixed: 175: removing the ICS URL in editTalks doesn't work
casties
parents: 263
diff changeset
649 if self.getTalksCal():
87e7e210968d fixed: 175: removing the ICS URL in editTalks doesn't work
casties
parents: 263
diff changeset
650 cal_id = "%s_talks"%self.getUsername()
87e7e210968d fixed: 175: removing the ICS URL in editTalks doesn't work
casties
parents: 263
diff changeset
651 del self.folder.get('calendars')[cal_id]
87e7e210968d fixed: 175: removing the ICS URL in editTalks doesn't work
casties
parents: 263
diff changeset
652
275
3f9ba7a8cb27 fixed fix for: 175: removing the ICS URL in editTalks doesn't work
casties
parents: 274
diff changeset
653 elif argv.has_key('main_fields'): #got data to change
3f9ba7a8cb27 fixed fix for: 175: removing the ICS URL in editTalks doesn't work
casties
parents: 274
diff changeset
654 #
3f9ba7a8cb27 fixed fix for: 175: removing the ICS URL in editTalks doesn't work
casties
parents: 274
diff changeset
655 # manually edited talks
3f9ba7a8cb27 fixed fix for: 175: removing the ICS URL in editTalks doesn't work
casties
parents: 274
diff changeset
656 #
3f9ba7a8cb27 fixed fix for: 175: removing the ICS URL in editTalks doesn't work
casties
parents: 274
diff changeset
657 self.invalidate_cache()
3f9ba7a8cb27 fixed fix for: 175: removing the ICS URL in editTalks doesn't work
casties
parents: 274
diff changeset
658 self.changeAdditionalData(argv);
3f9ba7a8cb27 fixed fix for: 175: removing the ICS URL in editTalks doesn't work
casties
parents: 274
diff changeset
659 # number of events
3f9ba7a8cb27 fixed fix for: 175: removing the ICS URL in editTalks doesn't work
casties
parents: 274
diff changeset
660 talks_num = int(argv.get('talks_num', 5))
3f9ba7a8cb27 fixed fix for: 175: removing the ICS URL in editTalks doesn't work
casties
parents: 274
diff changeset
661 self.changeData({'talks_num': talks_num})
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
662
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
663 return pt()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
664
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
665
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
666 security.declareProtected('View management screens','editTeaching')
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
667 def editTeaching(self,REQUEST):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
668 """edit teaching"""
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
669 if REQUEST:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
670 argv=REQUEST.form
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
671
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
672 if argv.has_key('main_fields'): #got data to change
149
0d9eb2a859d3 fixed typo
casties
parents: 147
diff changeset
673 self.invalidate_cache()
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
674 self.changeAdditionalData(argv);
243
980794794bb5 added preferences for number of publications, talks, and teachings on profile page.
casties
parents: 242
diff changeset
675 # number of items
980794794bb5 added preferences for number of publications, talks, and teachings on profile page.
casties
parents: 242
diff changeset
676 teachings_num = int(argv.get('teachings_num', 5))
980794794bb5 added preferences for number of publications, talks, and teachings on profile page.
casties
parents: 242
diff changeset
677 self.changeData({'teachings_num': teachings_num})
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
678
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
679 pt=PageTemplateFile('zpt/staff/edit_teaching.zpt', globals()).__of__(self)
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
680 return pt()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
681
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
682
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
683 security.declareProtected('View management screens','editAdditionalLinks')
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
684 def editAdditionalLinks(self,REQUEST):
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
685 """editiere die additional link von der Webseite"""
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
686 if REQUEST:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
687 argv=REQUEST.form
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
688
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
689 if argv.has_key('main_fields'): #got data to change
149
0d9eb2a859d3 fixed typo
casties
parents: 147
diff changeset
690 self.invalidate_cache()
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
691 self.changeAdditionalData(argv);
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
692
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
693 pt=PageTemplateFile('zpt/staff/edit_additionalLinks.zpt', globals()).__of__(self)
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
694 return pt()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
695
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
696
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
697 security.declareProtected('View management screens','editDownloads')
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
698 def editDownloads(self,REQUEST):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
699 """editiere die Downloads von der Webseite"""
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
700
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
701 pt=PageTemplateFile('zpt/staff/edit_downloads.zpt', globals()).__of__(self)
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
702 return pt()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
703
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
704 def editPublications(self,REQUEST):
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
705 """editiere die Publications von der Webseite"""
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
706 data=REQUEST.form
243
980794794bb5 added preferences for number of publications, talks, and teachings on profile page.
casties
parents: 242
diff changeset
707 newData = {}
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
708
243
980794794bb5 added preferences for number of publications, talks, and teachings on profile page.
casties
parents: 242
diff changeset
709 if 'selectionMode' in data:
980794794bb5 added preferences for number of publications, talks, and teachings on profile page.
casties
parents: 242
diff changeset
710 newData['publications_mode'] = data['selectionMode']
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
711
243
980794794bb5 added preferences for number of publications, talks, and teachings on profile page.
casties
parents: 242
diff changeset
712 if 'publications_num' in data:
980794794bb5 added preferences for number of publications, talks, and teachings on profile page.
casties
parents: 242
diff changeset
713 newData['publications_num'] = int(data['publications_num'])
980794794bb5 added preferences for number of publications, talks, and teachings on profile page.
casties
parents: 242
diff changeset
714
980794794bb5 added preferences for number of publications, talks, and teachings on profile page.
casties
parents: 242
diff changeset
715 if len(newData) > 0:
980794794bb5 added preferences for number of publications, talks, and teachings on profile page.
casties
parents: 242
diff changeset
716 self.changeData(newData)
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
717
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
718 pt=PageTemplateFile('zpt/staff/edit_publications.zpt', globals()).__of__(self)
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
719 return pt()
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
720
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
721
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
722 security.declareProtected('View management screens','editImage')
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
723 def editImage(self,REQUEST=None):
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
724 """Edit the image information"""
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
725 if REQUEST:
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
726 argv=REQUEST.form
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
727
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
728 if argv.has_key('image_p'): #got data to change
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
729 self.invalidate_cache()
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
730 self.changeData(argv);
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
731
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
732 pt=PageTemplateFile('zpt/staff/edit_image', globals()).__of__(self)
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
733 return pt()
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
734
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
735
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
736 def refresh_content(self,):
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
737 self.content = self.folder.executeZSQL("select * from personal_www where key = %s", [self.getKey()])[0]
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
738
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
739
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
740 def changeDownloads(self,REQUEST):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
741 """"change the downloadable files"""
149
0d9eb2a859d3 fixed typo
casties
parents: 147
diff changeset
742 self.invalidate_cache();
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
743
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
744 data=REQUEST.form
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
745
217
2598210ada7a ICS calendar for talks.
casties
parents: 216
diff changeset
746 ob = self.folder.get("downloadableFiles")
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
747
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
748 if data.get('cv_publish',None):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
749
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
750 self.changeData({'cv_p':data['cv_publish']})
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
751
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
752 if data.get('publications_publish',None):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
753 self.changeData({'publications_p':data['publications_publish']})
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
754
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
755
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
756 if data.get('cv_pdf',None):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
757 cvName ="%s_cv.pdf"%self.getUsername()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
758 cvName=cvName.encode('utf-8')
195
124efbedd35b publish CV and publications on personal pages
dwinter
parents: 194
diff changeset
759
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
760 if not hasattr(ob,cvName):
194
45984e00665f upload and download cv and publicationlist
dwinter
parents: 193
diff changeset
761 cvFile = ExtFile.ExtFile(cvName,cvName)
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
762 ob._setObject(cvName,cvFile)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
763
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
764 cvFile = getattr(ob,cvName)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
765
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
766 cvFile.manage_upload(file=data['cv_pdf'])
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
767
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
768 if data.get('publications_pdf',None):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
769 pdfName="%s_publications.pdf"%self.getUsername()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
770 pdfName=pdfName.encode('utf-8')
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
771
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
772 if not hasattr(ob,pdfName):
194
45984e00665f upload and download cv and publicationlist
dwinter
parents: 193
diff changeset
773 cvFile = ExtFile.ExtFile(pdfName,pdfName)
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
774 ob._setObject(pdfName,cvFile)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
775
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
776 cvFile = getattr(ob,pdfName)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
777
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
778 cvFile.manage_upload(file=data['publications_pdf'])
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
779
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
780
194
45984e00665f upload and download cv and publicationlist
dwinter
parents: 193
diff changeset
781 REQUEST.response.redirect("editDownloads");
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
782
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
783
188
16d55695f1c8 fix updating staff entries through "Update personal homepages". (creating new entries doesn't work)
casties
parents: 187
diff changeset
784 security.declareProtected('View management screens','changeData')
16d55695f1c8 fix updating staff entries through "Update personal homepages". (creating new entries doesn't work)
casties
parents: 187
diff changeset
785 def changeData(self, changeSet):
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
786 """changes the data in the database, changeset expects field --> value."""
188
16d55695f1c8 fix updating staff entries through "Update personal homepages". (creating new entries doesn't work)
casties
parents: 187
diff changeset
787 fields = []
16d55695f1c8 fix updating staff entries through "Update personal homepages". (creating new entries doesn't work)
casties
parents: 187
diff changeset
788 values = []
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
789 for field in changeSet.keys():
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
790 if hasattr(self.content, field):
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
791 logging.debug("Changing: %s"%field)
188
16d55695f1c8 fix updating staff entries through "Update personal homepages". (creating new entries doesn't work)
casties
parents: 187
diff changeset
792 fields.append('"'+sqlName(field)+'" = %s')
16d55695f1c8 fix updating staff entries through "Update personal homepages". (creating new entries doesn't work)
casties
parents: 187
diff changeset
793 values.append(changeSet.get(field))
16d55695f1c8 fix updating staff entries through "Update personal homepages". (creating new entries doesn't work)
casties
parents: 187
diff changeset
794
16d55695f1c8 fix updating staff entries through "Update personal homepages". (creating new entries doesn't work)
casties
parents: 187
diff changeset
795 if len(fields) == 0:
16d55695f1c8 fix updating staff entries through "Update personal homepages". (creating new entries doesn't work)
casties
parents: 187
diff changeset
796 return
16d55695f1c8 fix updating staff entries through "Update personal homepages". (creating new entries doesn't work)
casties
parents: 187
diff changeset
797
16d55695f1c8 fix updating staff entries through "Update personal homepages". (creating new entries doesn't work)
casties
parents: 187
diff changeset
798 query = "update personal_www set " + ', '.join(fields) + " where key = %s"
236
c90c8333ca8f fix problem with current_work_p and auto-generated profile.
casties
parents: 234
diff changeset
799 values.append(self.getKey())
188
16d55695f1c8 fix updating staff entries through "Update personal homepages". (creating new entries doesn't work)
casties
parents: 187
diff changeset
800 results = self.folder.executeZSQL(query, values)
16d55695f1c8 fix updating staff entries through "Update personal homepages". (creating new entries doesn't work)
casties
parents: 187
diff changeset
801 logging.debug(results)
16d55695f1c8 fix updating staff entries through "Update personal homepages". (creating new entries doesn't work)
casties
parents: 187
diff changeset
802
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
803 self.refresh_content()
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
804
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
805
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
806 security.declareProtected('View management screens','changeAdditionalData')
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
807 def changeAdditionalData(self,data):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
808 """change the research entries"""
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
809
149
0d9eb2a859d3 fixed typo
casties
parents: 147
diff changeset
810 self.invalidate_cache();
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
811
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
812 newEntries={}
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
813
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
814
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
815 mainfieldL=data['main_fields'].split(",") #fields to be changed
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
816 # format DATABASE__FIELDNAME
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
817
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
818 mainfield={}
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
819 for x in mainfieldL:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
820 tmp=x.split('__')
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
821 mainfield[tmp[0]]=tmp[1]
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
822 for field in data:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
823 splittedField=field.split("__")
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
824 if len(splittedField)<3:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
825 pass #kein datenbank eintrag
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
826
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
827 elif splittedField[2]=='new': # store new entries
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
828 if not newEntries.has_key(splittedField[0]):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
829 newEntries[splittedField[0]]={}
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
830
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
831 newEntries[splittedField[0]][splittedField[1]]=data[field]
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
832
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
833 else:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
834 query="UPDATE %s "%splittedField[0]
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
835 query+="SET %s = '%s' "%(splittedField[1],sql_quote(data[field]))
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
836 query+="WHERE oid = '%s' "%sql_quote(splittedField[2])
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
837
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
838 self.executeZSQL(query)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
839
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
840
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
841 #new entries
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
842 for newEntry in newEntries.keys():
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
843 query="INSERT INTO %s "%newEntry
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
844 keys=['key_main']
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
845 values=["'"+sql_quote(self.getKey())+"'"]
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
846 for key in newEntries[newEntry].keys():
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
847 keys.append(key)
193
522d32a50c2b bug with umlauts in editing talks and teachung fixed
dwinter
parents: 191
diff changeset
848
522d32a50c2b bug with umlauts in editing talks and teachung fixed
dwinter
parents: 191
diff changeset
849 val = sql_quote(newEntries[newEntry][key])
522d32a50c2b bug with umlauts in editing talks and teachung fixed
dwinter
parents: 191
diff changeset
850 if not isinstance(val, unicode):
522d32a50c2b bug with umlauts in editing talks and teachung fixed
dwinter
parents: 191
diff changeset
851 val = val.decode("utf-8")
522d32a50c2b bug with umlauts in editing talks and teachung fixed
dwinter
parents: 191
diff changeset
852
522d32a50c2b bug with umlauts in editing talks and teachung fixed
dwinter
parents: 191
diff changeset
853 values.append("'"+val+"'")
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
854
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
855
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
856 keystring=",".join(keys)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
857
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
858 valuestring=",".join(values)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
859
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
860 query+=" (%s) "%keystring
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
861 query+="VALUES (%s)"%valuestring
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
862 if not (newEntries[newEntry][mainfield[newEntry]].lstrip().rstrip()==""):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
863 self.executeZSQL(query)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
864
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
865
38
3c98cc79dd14 version 0.1 mit publicationen von pubman (TEST!!)
dwinter
parents: 37
diff changeset
866
208
6d6076e28430 fix deleteField for additionalLink (still ugly though)
casties
parents: 206
diff changeset
867 security.declareProtected('View management screens','deleteField')
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
868 def deleteField(self,REQUEST):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
869 """delete entry"""
208
6d6076e28430 fix deleteField for additionalLink (still ugly though)
casties
parents: 206
diff changeset
870 # TODO: this is ugly
6d6076e28430 fix deleteField for additionalLink (still ugly though)
casties
parents: 206
diff changeset
871 CHANGEABLE=['talks','teaching','pubmanbiblio','additionallink']
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
872
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
873 table = REQUEST.form.get('table',None);
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
874 oid = REQUEST.form.get('oid',None);
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
875
185
a8d5ba6729f3 bug in delete entries fixes
dwinter
parents: 175
diff changeset
876
a8d5ba6729f3 bug in delete entries fixes
dwinter
parents: 175
diff changeset
877 if not table in CHANGEABLE:
a8d5ba6729f3 bug in delete entries fixes
dwinter
parents: 175
diff changeset
878 return
a8d5ba6729f3 bug in delete entries fixes
dwinter
parents: 175
diff changeset
879 if oid is None:
a8d5ba6729f3 bug in delete entries fixes
dwinter
parents: 175
diff changeset
880 oid = REQUEST.form.get('key',None);
a8d5ba6729f3 bug in delete entries fixes
dwinter
parents: 175
diff changeset
881
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
882 if table is None or oid is None:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
883 return
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
884
208
6d6076e28430 fix deleteField for additionalLink (still ugly though)
casties
parents: 206
diff changeset
885 query="DELETE FROM %s WHERE oid = %%s"%(table)
6d6076e28430 fix deleteField for additionalLink (still ugly though)
casties
parents: 206
diff changeset
886 self.executeZSQL(query, [oid])
6d6076e28430 fix deleteField for additionalLink (still ugly though)
casties
parents: 206
diff changeset
887
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
888 REQUEST.response.redirect(self.REQUEST['HTTP_REFERER'])
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
889
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
890
40
fd8e78bbc5ed more work on projects.
casties
parents: 38
diff changeset
891 def invalidate_cache(self):
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
892 #TODO: How to invalidate the varnish cache from the member object
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
893 pass;
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
894
79
7f26c8e6c8e9 more styles for project lists.
casties
parents: 73
diff changeset
895
7f26c8e6c8e9 more styles for project lists.
casties
parents: 73
diff changeset
896 # TODO: compat, is this used?
7f26c8e6c8e9 more styles for project lists.
casties
parents: 73
diff changeset
897 getStaffURL = getUsername
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
898
191
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
899
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
900 def getBreadcrumbs(self):
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
901 """return list of breadcrumbs from here to the root"""
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
902 crumbs = []
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
903 label = '%s %s'%(self.content.first_name, self.content.last_name)
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
904 baseUrl = None
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
905 parent = aq_parent(self)
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
906 # get parents breadcrumbs
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
907 if hasattr(parent, 'getBreadcrumbs'):
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
908 crumbs = parent.getBreadcrumbs()
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
909 if len(crumbs) > 0:
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
910 # get base url from crumbs
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
911 baseUrl = crumbs[-1]['url'] + '/members'
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
912
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
913 if baseUrl is None:
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
914 baseUrl = '/en/staff/members'
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
915
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
916 # add this
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
917 crumbs.append({'text':label, 'url':self.getUrl(baseUrl=baseUrl), 'object':self})
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
918
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
919 return crumbs
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
920
90d44df497a6 updated breadcrumb handling, works for members now.
casties
parents: 190
diff changeset
921
56
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
922 def getPublicationsFromPubman(self,limit=None,publicationType=None):
141
45b7b24c8c42 move getPublicationsFromPubman to MPIWGStaffMember.
casties
parents: 134
diff changeset
923 """Return list of publications."""
110
b554becd8226 Incomplete - # 74: More Link auf den pers?nlichne Homepages
dwinter
parents: 107
diff changeset
924 if self.content.publications_mode=="year":
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
925 coneId = self.getConeId();
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
926 if coneId:
141
45b7b24c8c42 move getPublicationsFromPubman to MPIWGStaffMember.
casties
parents: 134
diff changeset
927 pubs = self.folder.mpiwgPubman.getPublications(coneId,limit=limit,publicationType=publicationType)
45b7b24c8c42 move getPublicationsFromPubman to MPIWGStaffMember.
casties
parents: 134
diff changeset
928 #pubs= self.folder.getPublicationsFromPubman(coneId,limit=limit,publicationType=publicationType)
156
a9ad7dd7a8b2 clean up projects.
casties
parents: 149
diff changeset
929 return pubs
38
3c98cc79dd14 version 0.1 mit publicationen von pubman (TEST!!)
dwinter
parents: 37
diff changeset
930
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
931 elif self.content.publications_mode=="priority":
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
932 selPubs= self.getSelectedPublications()
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
933
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
934 pubs=[]
73
33c663a08025 projekte publicationen jetzt nach typen geordnet
dwinter
parents: 71
diff changeset
935 count =0
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
936 for selPub in selPubs:
73
33c663a08025 projekte publicationen jetzt nach typen geordnet
dwinter
parents: 71
diff changeset
937 if limit and count >= limit:
33c663a08025 projekte publicationen jetzt nach typen geordnet
dwinter
parents: 71
diff changeset
938 break
110
b554becd8226 Incomplete - # 74: More Link auf den pers?nlichne Homepages
dwinter
parents: 107
diff changeset
939
53
e718d9a72f19 bibliographie funktionen
dwinter
parents: 48
diff changeset
940 logging.debug("searchFor:%s"%selPub.escidocid)
110
b554becd8226 Incomplete - # 74: More Link auf den pers?nlichne Homepages
dwinter
parents: 107
diff changeset
941 entry = self.mpiwgPubman.getEntryFromPubman(selPub.escidocid,extendedData=True);
b554becd8226 Incomplete - # 74: More Link auf den pers?nlichne Homepages
dwinter
parents: 107
diff changeset
942
b554becd8226 Incomplete - # 74: More Link auf den pers?nlichne Homepages
dwinter
parents: 107
diff changeset
943 #TODO getEntryFromPubmanShould return long texts
b554becd8226 Incomplete - # 74: More Link auf den pers?nlichne Homepages
dwinter
parents: 107
diff changeset
944 typesLongShort={'http://purl.org/eprint/type/Book':'book',
b554becd8226 Incomplete - # 74: More Link auf den pers?nlichne Homepages
dwinter
parents: 107
diff changeset
945 'http://purl.org/eprint/type/BookItem':'book-item',
b554becd8226 Incomplete - # 74: More Link auf den pers?nlichne Homepages
dwinter
parents: 107
diff changeset
946 'http://purl.org/escidoc/metadata/ves/publication-types/article':'article'};
b554becd8226 Incomplete - # 74: More Link auf den pers?nlichne Homepages
dwinter
parents: 107
diff changeset
947
156
a9ad7dd7a8b2 clean up projects.
casties
parents: 149
diff changeset
948 if publicationType is not None:
a9ad7dd7a8b2 clean up projects.
casties
parents: 149
diff changeset
949 #publicaitions typ ist gesetzt
134
9f45ed6ffeab bugs in publications
dwinter
parents: 128
diff changeset
950
156
a9ad7dd7a8b2 clean up projects.
casties
parents: 149
diff changeset
951 if not ((entry[1] == publicationType) or (entry[1] == typesLongShort.get(publicationType,''))) :
a9ad7dd7a8b2 clean up projects.
casties
parents: 149
diff changeset
952 #stimmt nicht dann weiter
110
b554becd8226 Incomplete - # 74: More Link auf den pers?nlichne Homepages
dwinter
parents: 107
diff changeset
953 continue;
202
c3c834cf1a6d minor bug in sho preprints
dwinter
parents: 201
diff changeset
954
c3c834cf1a6d minor bug in sho preprints
dwinter
parents: 201
diff changeset
955 if len(entry)>4:
c3c834cf1a6d minor bug in sho preprints
dwinter
parents: 201
diff changeset
956 pubs.append((selPub.escidocid,entry[0],entry[2],entry[3],entry[4]));
c3c834cf1a6d minor bug in sho preprints
dwinter
parents: 201
diff changeset
957 count+=1
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
958
46
955d102392db pubman integration 0.2
dwinter
parents: 38
diff changeset
959 return pubs
156
a9ad7dd7a8b2 clean up projects.
casties
parents: 149
diff changeset
960
a9ad7dd7a8b2 clean up projects.
casties
parents: 149
diff changeset
961 return []
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
962
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
963
100
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
964 def publications_full_html(self, REQUEST):
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
965 """show publication"""
100
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
966 pt=PageTemplateFile('zpt/staff/pubman/show_publications.zpt', globals()).__of__(self)
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
967 return pt(member=self.content)
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
968
185
a8d5ba6729f3 bug in delete entries fixes
dwinter
parents: 175
diff changeset
969
a8d5ba6729f3 bug in delete entries fixes
dwinter
parents: 175
diff changeset
970 security.declareProtected('View management screens','addPublicationsFromPubman')
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
971 def addPublicationsFromPubman(self,REQUEST):
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
972 """addPublications from pubman"""
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
973
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
974 data=REQUEST.form
38
3c98cc79dd14 version 0.1 mit publicationen von pubman (TEST!!)
dwinter
parents: 37
diff changeset
975
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
976 if data.get("method",None) is None:
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
977 pt=PageTemplateFile('zpt/staff/pubman/add_publications.zpt', globals()).__of__(self)
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
978 return pt()
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
979
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
980
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
981
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
982 if data.get("method") == "search":
73
33c663a08025 projekte publicationen jetzt nach typen geordnet
dwinter
parents: 71
diff changeset
983
33c663a08025 projekte publicationen jetzt nach typen geordnet
dwinter
parents: 71
diff changeset
984
33c663a08025 projekte publicationen jetzt nach typen geordnet
dwinter
parents: 71
diff changeset
985
201
81a8177ca354 shows where a entry comes from in editing mode
dwinter
parents: 195
diff changeset
986 entries= self.mpiwgPubman.search(data,contexts=["escidoc:85274","escidoc:38279","escidoc:644427"],resultWithContext=True)
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
987 pt=PageTemplateFile('zpt/staff/pubman/add_publications.zpt', globals()).__of__(self)
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
988
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
989
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
990 return pt(values=entries)
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
991
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
992
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
993
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
994 if data.get("method") == "add":
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
995
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
996 return self.addEntriesToPublicationList(data)
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
997 #pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/staff/pubman','add_publications.zpt')).__of__(self)
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
998
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
999
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1000
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1001 def addEntriesToPublicationList(self,data):
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1002 """fuege eintrage aus data zur publications liste,
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1003 @param data Map mit escidocID --> value
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1004 value muss "add" sein damit hinzugefuegt wird"""
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1005
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1006 for key in data.keys():
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1007
56
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
1008 if key.startswith('escidoc:'):
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
1009
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1010
56
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
1011 query="INSERT INTO pubmanbiblio (key_main,escidocId) values (%s,%s)"
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1012
56
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
1013 if data.get(key)=="add":
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
1014 self.executeZSQL(query,[self.getKey(),key])
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
1015
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1016
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1017
56
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
1018 #selectedPublications = self.getSelectedPublications()
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
1019
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
1020 #pt = PageTemplateFile(os.path.join(package_home(globals()),'zpt/staff/pubman','change_publications.zpt')).__of__(self)
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1021
56
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
1022 #return pt()
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
1023 if hasattr(self,'REQUEST'):
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
1024 return self.REQUEST.response.redirect("changePublications")
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1025
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1026
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1027 def changePublications(self,REQUEST):
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1028 """change published publications"""
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1029
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1030 data=REQUEST.form
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1031
147
6ae0201b1257 bug in edit publications. behoben
dwinter
parents: 141
diff changeset
1032 if data.get("method","") == "change":
6ae0201b1257 bug in edit publications. behoben
dwinter
parents: 141
diff changeset
1033
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1034 for key in data.keys():
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1035 splitted=key.split("__") #format escidoc_id__p fuer priority, nur escidocid
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1036 value=data[key]
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1037 if len(splitted)==1:
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1038 self.deleteFromPublicationList(key);
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1039
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1040 elif(splitted[1]) == "p":
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1041 self.setPublicationPriority(splitted[0],value);
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1042
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1043
159
ee79f6ba8d01 clean up staff editing and some zpt forms.
casties
parents: 156
diff changeset
1044 pt = PageTemplateFile('zpt/staff/pubman/change_publications', globals()).__of__(self)
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1045 return pt()
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1046
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1047
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1048 def deleteFromPublicationList(self,escidocid):
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1049 """Loessche publication with escidoc id from publication list"""
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1050
147
6ae0201b1257 bug in edit publications. behoben
dwinter
parents: 141
diff changeset
1051 query ="DELETE FROM pubmanbiblio WHERE escidocid=%s and lower(key_main)=%s"
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1052
147
6ae0201b1257 bug in edit publications. behoben
dwinter
parents: 141
diff changeset
1053 self.executeZSQL(query,[escidocid,self.getKey().lower()]);
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1054
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1055
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1056 def setPublicationPriority(self,escidocid,value):
56
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
1057 try:
147
6ae0201b1257 bug in edit publications. behoben
dwinter
parents: 141
diff changeset
1058 query="update pubmanbiblio set priority=%s where escidocid=%s and lower(key_main)=%s"
56
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
1059
203
9ce5816e89b2 faeng priority fehler ab bei biblio
dwinter
parents: 202
diff changeset
1060 try:
9ce5816e89b2 faeng priority fehler ab bei biblio
dwinter
parents: 202
diff changeset
1061 x=int(value)
9ce5816e89b2 faeng priority fehler ab bei biblio
dwinter
parents: 202
diff changeset
1062 except:
9ce5816e89b2 faeng priority fehler ab bei biblio
dwinter
parents: 202
diff changeset
1063 logging.error("priority not a number")
9ce5816e89b2 faeng priority fehler ab bei biblio
dwinter
parents: 202
diff changeset
1064 return
9ce5816e89b2 faeng priority fehler ab bei biblio
dwinter
parents: 202
diff changeset
1065
147
6ae0201b1257 bug in edit publications. behoben
dwinter
parents: 141
diff changeset
1066 self.executeZSQL(query,[value,escidocid,self.getKey().lower()]);
56
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
1067
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
1068 except:
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
1069 logging.error("couldn't change:")
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
1070 logging.error(escidocid)
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
1071 logging.error(value)
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
1072
80
b1893c4c9d2c more display of project pages.
casties
parents: 79
diff changeset
1073
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1074 def getSelectedPublications(self):
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1075 """hole publications aus der datenbank"""
100
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
1076 query="select * from pubmanbiblio where lower(key_main) = lower(%s) order by priority ASC"
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1077 return self.executeZSQL(query,[self.getKey()])
68
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
1078
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
1079
233
e2d2f018a8e2 add character count to staff profile editing page.
casties
parents: 226
diff changeset
1080 def getProfileHtml(self, REQUEST):
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
1081 """get the profile"""
233
e2d2f018a8e2 add character count to staff profile editing page.
casties
parents: 226
diff changeset
1082 REQUEST.RESPONSE.setHeader('Last-Modified',email.Utils.formatdate().split("-")[0]+'GMT')
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
1083 html="""<html><body>%s</body></html>"""
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
1084 if self.content.profile and self.content.profile != "":
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
1085 return html%self.content.profile
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
1086 else:
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
1087 return html%""
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
1088
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
1089
68
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
1090 def generateProfileForPerson(self,REQUEST=None):
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
1091 """erzeugt ein automatisches Profil aus den alten Eintraegen CV, Current work, und research interests"""
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
1092
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
1093 ret=""
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
1094 #founds=self.ZSQLInlineSearch(_table='research_interest',key_main=person.getKeyUTF8())
80
b1893c4c9d2c more display of project pages.
casties
parents: 79
diff changeset
1095 founds=self.executeZSQL('select * from research_interest where lower(key_main) = %s', [self.getKey().lower()])
68
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
1096 if founds:
236
c90c8333ca8f fix problem with current_work_p and auto-generated profile.
casties
parents: 234
diff changeset
1097 ret+='<h3>Research interests</h3>\n<p>'
68
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
1098 for found in self.sortPriority(founds):
236
c90c8333ca8f fix problem with current_work_p and auto-generated profile.
casties
parents: 234
diff changeset
1099 ret+=found.interest+'<br/>'
c90c8333ca8f fix problem with current_work_p and auto-generated profile.
casties
parents: 234
diff changeset
1100 if founds:
c90c8333ca8f fix problem with current_work_p and auto-generated profile.
casties
parents: 234
diff changeset
1101 ret+='</p>\n'
237
45ef92d6aa8c ignore state of current_work_p.
casties
parents: 236
diff changeset
1102 if self.content.current_work:
236
c90c8333ca8f fix problem with current_work_p and auto-generated profile.
casties
parents: 234
diff changeset
1103 ret+="<h3>Current work</h3>"
c90c8333ca8f fix problem with current_work_p and auto-generated profile.
casties
parents: 234
diff changeset
1104 ret+='<p>'+self.content.current_work+'</p>\n'
c90c8333ca8f fix problem with current_work_p and auto-generated profile.
casties
parents: 234
diff changeset
1105 if (self.content.cv_p == 'yes') and self.content.cv:
c90c8333ca8f fix problem with current_work_p and auto-generated profile.
casties
parents: 234
diff changeset
1106 ret+="<h3>Curriculum Vitae</h3>"
c90c8333ca8f fix problem with current_work_p and auto-generated profile.
casties
parents: 234
diff changeset
1107 ret+='<p>'+self.formatAscii(self.content.cv)+'</p>'
68
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
1108
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
1109 return ret
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
1110
189
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
1111
cc5198541af8 erzeugen neuer eintr?ge auf der homepage mittels updatexml
dwinter
parents: 188
diff changeset
1112
186
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
1113 # initialize security
3ea224968f95 fix traversal to MPIWGStaffMember objects.
casties
parents: 185
diff changeset
1114 InitializeClass(MPIWGStaffFolder)
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
1115 InitializeClass(MPIWGStaffMember)