annotate MPIWGStaff.py @ 100:f4ac675b2031

more members pages.
author casties
date Tue, 21 May 2013 18:50:05 +0200
parents 48e88706cfc3
children 7dd264f9b728
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
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
3 from zExceptions import Redirect
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
4
0
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
5 from OFS.Folder import Folder
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
6 from Products.PageTemplates.PageTemplateFile import PageTemplateFile
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
7
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
8 from AccessControl import ClassSecurityInfo
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
9 from App.class_init import InitializeClass
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
10 from Products.ExtFile.ExtFile import *
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
11 from Globals import package_home
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
12 from Products.PythonScripts.standard import sql_quote
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
13 from Products.ExtFile import ExtFile
0
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
14 import os
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
15 import logging
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
16 import email
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
17 import re
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
18
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
19 from Products.ZDBInterface.ZDBInterfaceFolder import ZDBInterfaceFolder
2
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
20
28
dd765003647b compatibility band-aid.
casties
parents: 3
diff changeset
21 from SrvTxtUtils import getHttpData, getAt, getInt, unicodify, utf8ify
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
22 import MPIWGHelper
0
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
23
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
24 #
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
25 # compatibility
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
26 # TODO: should be removed when done
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
27 import MPIWGStaff_old
0
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
28
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
29 createNewDBEntry = MPIWGStaff_old.createNewDBEntry
0
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
30
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
31 class MPIWGStaff(MPIWGStaff_old.MPIWGStaff):
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
32 """Staff"""
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
33 pass
0
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
34
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
35 manage_addMPIWGStaffForm = MPIWGStaff_old.manage_addMPIWGStaffForm
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
36 manage_addMPIWGStaff = MPIWGStaff_old.manage_addMPIWGStaff
0
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
37
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
38
0
bca61e893fcc first checkin of MPIWGWeb r2 branch from CVS into mercurial
casties
parents:
diff changeset
39
2
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
40 class MPIWGStaffFolder(ZDBInterfaceFolder):
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
41 """Folder of staff objects"""
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
42
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
43 meta_type="MPIWGStaffFolder"
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
44 security=ClassSecurityInfo()
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
45
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
46 #
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
47 # templates
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 member_index_html = PageTemplateFile('zpt/staff/member_index_html', globals())
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
50
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 #
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
53 # hook into traversal to create folder of virtual staff objects
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
54 # like /members/$username/index_html
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 def __before_publishing_traverse__(self, object, request):
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
57 stack = request.TraversalRequestNameStack
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
58 logging.debug("MPIWGStaffFolder: traverse stack=%s self=%s"%(repr(stack),repr(self)))
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
59
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
60 # TODO: should we do more checks?
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
61 if stack and len(stack) > 0:
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
62 try:
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
63 # id is the first path component
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
64 id = stack[-1]
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
65 logging.debug(id)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
66
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
67 member = self.getMember(username=id)
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
68 if member is not None:
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
69 member = member.__of__(self)
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
70 request.set('MPIWGStaffMember', member)
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
71 stack.pop(-1)
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
72
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
73 #weitere parameter
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
74 if len(stack)> 0:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
75 mode = stack[-1]
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
76 request.set('MPIWGStaffMode', mode)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
77 stack.pop(-1)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
78
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
79
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
80 except (IndexError, ValueError):
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
81 # missing context or not an integer id; perhaps some URL hacking going on?
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
82 logging.error("error traversing user id!")
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
83 raise Redirect(self.absolute_url()) # redirects to `/members`, adjust as needed
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
84
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
85
57
84879a3f91a6 getLastArrivals
dwinter
parents: 56
diff changeset
86
84879a3f91a6 getLastArrivals
dwinter
parents: 56
diff changeset
87
2
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
88 def index_html(self,REQUEST,RESPONSE):
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
89 """show homepage"""
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
90 logging.debug("MPIWGStaffFolder: index_html!")
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
91 member = REQUEST.get('MPIWGStaffMember', None)
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
92 mode = REQUEST.get('MPIWGStaffMode', None)
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
93 if member is not None:
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
94 if mode is not None:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
95 return member.execute(mode,REQUEST);
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
96
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
97 logging.debug("member: key=%s"%(member.getKey()))
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
98 pt = None
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
99 try:
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
100 # get template /template/member_index_html
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
101 pt = getattr(self.template, 'member_index_html', None)
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
102 except:
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
103 logging.error("No template /template/member_index_html")
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
104 # TODO: error page?
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
105 return "No template /template/member_index_html"
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
106
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
107 if pt is not None:
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
108 return pt(member=member)
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
109
2
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
110 return REQUEST
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
111
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
112
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
113 def getMember(self, username=None, key=None):
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
114 """returns a MPIWGStaffMember object if the username exists"""
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
115 member = None
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
116 if username is not None:
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
117 # TODO: we should have a username column
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
118 email = '%s@mpiwg-berlin.mpg.de'%username
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
119 content = self.executeZSQL("select * from personal_www where e_mail = %s", [email])
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
120 if len(content) > 0:
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
121 member = MPIWGStaffMember(self, dbresult=content[0])
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
122
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
123 elif key is not None:
40
fd8e78bbc5ed more work on projects.
casties
parents: 38
diff changeset
124 # TODO: sometimes key is lowercased (e.g. responsibleScientistsList), we should fix the data
fd8e78bbc5ed more work on projects.
casties
parents: 38
diff changeset
125 content = self.executeZSQL("select * from personal_www where lower(key) = %s", [key.lower()])
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
126 if len(content) > 0:
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
127 member = MPIWGStaffMember(self, dbresult=content[0])
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
128
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
129 return member
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
130
2
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
131
40
fd8e78bbc5ed more work on projects.
casties
parents: 38
diff changeset
132 def isActiveMember(self, key):
fd8e78bbc5ed more work on projects.
casties
parents: 38
diff changeset
133 """returns if member key is active"""
fd8e78bbc5ed more work on projects.
casties
parents: 38
diff changeset
134 res = self.executeZSQL("select * from personal_www where lower(key) = %s and publish_the_data = 'yes'", [key.lower()])
fd8e78bbc5ed more work on projects.
casties
parents: 38
diff changeset
135 return len(res) > 0
fd8e78bbc5ed more work on projects.
casties
parents: 38
diff changeset
136
fd8e78bbc5ed more work on projects.
casties
parents: 38
diff changeset
137
93
48e88706cfc3 department filter for getMemberList.
casties
parents: 86
diff changeset
138 def getMemberList(self, department=None, sortBy='last_name', onlyCurrent=False, limit=0):
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
139 """Return the list of members.
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
140
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
141 Returns a list of MPIWGStaffMember objects.
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
142 """
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
143 members = []
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
144 query = "select * from personal_www_list where publish_the_data = 'yes' and is_scholar='yes'"
93
48e88706cfc3 department filter for getMemberList.
casties
parents: 86
diff changeset
145 args = []
48e88706cfc3 department filter for getMemberList.
casties
parents: 86
diff changeset
146
48e88706cfc3 department filter for getMemberList.
casties
parents: 86
diff changeset
147 if department is not None:
48e88706cfc3 department filter for getMemberList.
casties
parents: 86
diff changeset
148 query += " and department ilike %s"
48e88706cfc3 department filter for getMemberList.
casties
parents: 86
diff changeset
149 args.append('%%%s%%'%department)
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
150
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
151 if onlyCurrent:
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
152 query += " and date_from < CURRENT_DATE"
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
153
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
154 if sortBy == 'last_name':
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
155 query += " order by lower(last_name)"
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
156 elif sortBy == 'date_from':
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
157 query += " order by date_from DESC"
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
158
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
159 if limit > 0:
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
160 query += " limit %s"%int(limit)
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
161
93
48e88706cfc3 department filter for getMemberList.
casties
parents: 86
diff changeset
162 result = self.executeZSQL(query, args)
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
163 for res in result:
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
164 members.append(MPIWGStaffMember(self, dbresult=res))
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
165
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
166 return members
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
167
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
168
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
169 def sortPriority(self,list):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
170 def sort(x,y):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
171 try:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
172 xInt=int(x.priority)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
173 except:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
174 xInt=0
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
175 try:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
176 yInt=int(y.priority)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
177 except:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
178 yInt=0
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
179
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
180 return cmp(xInt,yInt)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
181
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
182 if not list:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
183 return []
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
184 tmp=[x for x in list]
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
185 tmp.sort(sort)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
186
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
187 return tmp
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
188
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
189
56
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
190 def getPublicationsFromPubman(self,coneId="renn",limit=None,publicationType=None):
38
3c98cc79dd14 version 0.1 mit publicationen von pubman (TEST!!)
dwinter
parents: 37
diff changeset
191
46
955d102392db pubman integration 0.2
dwinter
parents: 38
diff changeset
192 logging.debug("coneID:%s"%coneId)
38
3c98cc79dd14 version 0.1 mit publicationen von pubman (TEST!!)
dwinter
parents: 37
diff changeset
193 try:
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
194 pubs=self.mpiwgPubman.getPublications(coneId,limit=limit,publicationType=publicationType)
46
955d102392db pubman integration 0.2
dwinter
parents: 38
diff changeset
195
38
3c98cc79dd14 version 0.1 mit publicationen von pubman (TEST!!)
dwinter
parents: 37
diff changeset
196 return pubs
3c98cc79dd14 version 0.1 mit publicationen von pubman (TEST!!)
dwinter
parents: 37
diff changeset
197 except:
3c98cc79dd14 version 0.1 mit publicationen von pubman (TEST!!)
dwinter
parents: 37
diff changeset
198 return []
57
84879a3f91a6 getLastArrivals
dwinter
parents: 56
diff changeset
199
84879a3f91a6 getLastArrivals
dwinter
parents: 56
diff changeset
200
2
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
201 def manage_addMPIWGStaffFolderForm(self):
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
202 """form for adding the project"""
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
203 pt=PageTemplateFile('zpt/addMPIWGStaffFolderForm', globals()).__of__(self)
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
204 return pt()
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
205
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
206 def manage_addMPIWGStaffFolder(self,id,title,RESPONSE=None):
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
207 """add it"""
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
208 newObj=MPIWGStaffFolder(id,title)
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
209
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
210 self._setObject(id,newObj)
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
211
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
212 if RESPONSE is not None:
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
213 RESPONSE.redirect('manage_main')
ddf6c1a27a4b new version with main_template and css in product.
casties
parents: 0
diff changeset
214
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
215
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
216 class MPIWGStaffMember(Folder):
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
217 """MPIWG staff member object from database"""
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
218
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
219 security = ClassSecurityInfo()
65
63184d71c014 lots of cleaning up.
casties
parents: 59
diff changeset
220
63184d71c014 lots of cleaning up.
casties
parents: 59
diff changeset
221 # templates
63184d71c014 lots of cleaning up.
casties
parents: 59
diff changeset
222 mainEditFile=PageTemplateFile('zpt/staff/edit_main', globals())
100
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
223 talks_full_html = PageTemplateFile('zpt/staff/talks_full_html', globals())
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
224 teaching_full_html = PageTemplateFile('zpt/staff/teaching_full_html', globals())
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
225
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
226
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
227 def __init__(self, folder, dbresult):
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
228 """constructor: takes parent MPIWGStaffFolder and content (DB row)"""
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
229 self.folder = folder
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
230 self.content = dbresult
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
231
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
232 def isValid(self):
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
233 """returns if this member exists"""
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
234 return len(self.content) > 0
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
235
79
7f26c8e6c8e9 more styles for project lists.
casties
parents: 73
diff changeset
236 def isActive(self):
7f26c8e6c8e9 more styles for project lists.
casties
parents: 73
diff changeset
237 """Return if this member is visible (published)."""
7f26c8e6c8e9 more styles for project lists.
casties
parents: 73
diff changeset
238 return (self.content.publish_the_data == 'yes')
7f26c8e6c8e9 more styles for project lists.
casties
parents: 73
diff changeset
239
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
240 def getKey(self):
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
241 """returns the db key"""
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
242 return self.content.key
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
243
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
244 def getUsername(self):
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
245 """returns the username"""
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
246 id = re.sub('@mpiwg-berlin\.mpg\.de', '', self.content.e_mail)
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
247 return id
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
248
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
249 getId = getUsername
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
250
46
955d102392db pubman integration 0.2
dwinter
parents: 38
diff changeset
251 def getConeId(self):
955d102392db pubman integration 0.2
dwinter
parents: 38
diff changeset
252 """return cone ID"""
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
253 results= self.folder.executeZSQL("SELECT coneid FROM keys WHERE key_main = %s",[self.content.key])
46
955d102392db pubman integration 0.2
dwinter
parents: 38
diff changeset
254 for res in results:
79
7f26c8e6c8e9 more styles for project lists.
casties
parents: 73
diff changeset
255 return res.coneid
46
955d102392db pubman integration 0.2
dwinter
parents: 38
diff changeset
256 return None
955d102392db pubman integration 0.2
dwinter
parents: 38
diff changeset
257
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
258 def getPublishedImageUrl(self):
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
259 """returns the URL to the image if it is published"""
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
260 if self.content.image_p == 'yes':
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
261 url = 'http://digilib.mpiwg-berlin.mpg.de/digitallibrary/Scaler?fn=permanent/mpiwg/staff/%s'%self.getUsername()
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
262 return url
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
263
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
264 return None
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
265
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
266 def getContent(self):
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
267 """returns the db content of this object"""
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
268 return self.content
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
269
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
270
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
271 # TODO: ugly!
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
272 security.declarePublic('sortBibliography')
79
7f26c8e6c8e9 more styles for project lists.
casties
parents: 73
diff changeset
273 def sortBibliography(self, bib, sortingMode=None, max=None):
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
274 """sort bibliography"""
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
275 if not sortingMode:
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
276 sortingMode= "priority"
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
277
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
278 l = [x for x in bib]
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
279
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
280 if sortingMode == "year":
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
281 l.sort(key=lambda x: getInt(x.year))
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
282 else:
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
283 l.sort(key=lambda x: getInt(x.priority))
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
284
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
285 if max:
79
7f26c8e6c8e9 more styles for project lists.
casties
parents: 73
diff changeset
286 return l[0:max]
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
287 else:
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
288 return l
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
289
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
290
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
291
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
292 def execute(self,mode,REQUEST=None):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
293 method = getattr(self,mode,None)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
294 if method is not None:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
295 return method(REQUEST);
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
296 else:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
297 return "NOT FOUND"
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
298
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
299
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
300 getUrl = MPIWGHelper.getUrl
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
301
100
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
302 def getTalks(self, published=True, sortBy='priority'):
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
303 """Return the list of talks"""
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
304 query = "SELECT oid,* FROM talks WHERE key_main = %s"
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
305 if published:
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
306 query += " and published = 'yes'"
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
307
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
308 if sortBy == 'priority':
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
309 query += " order by priority"
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
310
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
311 return self.folder.executeZSQL(query, [self.content.key])
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
312
100
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
313 def getTeaching(self, published=True, sortBy='priority'):
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
314 """Return the list of teaching activities"""
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
315 query = "SELECT oid,* FROM teaching WHERE key_main = %s"
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
316 if published:
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
317 query += " AND published = 'yes'"
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
318
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
319 if sortBy == 'priority':
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
320 query += " ORDER BY priority"
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
321
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
322 return self.folder.executeZSQL("SELECT oid,* FROM teaching WHERE key_main = %s",[self.content.key])
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
323
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
324
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
325 def getLastUpdateCV(self):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
326 """getDate of Last Update"""
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
327 try:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
328 fname="%s_cv.pdf"%self.getUsername().encode('utf-8')
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
329 logging.debug(fname)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
330 ob=self.folder._getOb("downloadableFiles")._getOb(fname)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
331 return ob.bobobase_modification_time()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
332 except:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
333 return "No file yet!"
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
334
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
335
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
336 def getLastUpdatePublications(self):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
337 """getDate of Last Update"""
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
338 try:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
339 ob=self.folder._getOb("downloadableFiles")._getOb("%s_publications.pdf"%self.getUsername().encode('utf-8'))
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
340 return ob.bobobase_modification_time()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
341 except:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
342 return "No file yet!"
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
343
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
344
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
345 def downloadCV(self,REQUEST):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
346 fname="%s_cv.pdf"%self.getUsername().encode('utf-8')
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
347 logging.debug(fname)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
348 ob=self.folder._getOb("downloadableFiles")._getOb(fname)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
349 REQUEST.RESPONSE.redirect(ob.absolute_url())
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
350
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
351 def downloadPublications(self,REQUEST):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
352 ob=self.folder._getOb("downloadableFiles")._getOb("%s_publications.pdf"%self.getUsername().encode('utf-8'))
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
353 REQUEST.RESPONSE.redirect(ob.absolute_url())
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
354
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
355 def getAdditionalLinks(self):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
356
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
357 return self.folder.executeZSQL("SELECT oid,* FROM additionalLink WHERE key_main = %s",[self.content.key])
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
358 #return self.folder.ZSQLInlineSearch(_table='talks',key_main=self.content.key)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
359
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
360 #return self.folder.ZSQLInlineSearch(_table='talks',key_main=self.content.key)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
361
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
362 def getPathStyle(self, path, selected, style=""):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
363 """returns a string with the given style + 'sel' if path == selected."""
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
364
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
365 if path == selected:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
366 return style + 'sel'
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
367 else:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
368 return style
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
369
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
370
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
371 security.declareProtected('View management screens','edit')
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
372 def edit(self,REQUEST=None):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
373 """Edit the basic information"""
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
374
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
375
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
376
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
377 if REQUEST:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
378 argv=REQUEST.form
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
379
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
380 if argv.has_key('last_name'): #got data to change
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
381 self.invalidate_chache()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
382 self.changeData(argv);
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
383
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
384 pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/staff','edit_basic.zpt')).__of__(self)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
385 return pt()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
386
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
387
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
388 security.declareProtected('View management screens','edit')
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
389 def editShortEntry(self,REQUEST=None):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
390 """Edit the basic information"""
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
391
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
392
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
393
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
394 if REQUEST:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
395 argv=REQUEST.form
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
396
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
397 if argv.has_key('current_work'): #got data to change
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
398 self.invalidate_chache()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
399 self.changeData(argv);
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
400
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
401 pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/staff','edit_shortEntry.zpt')).__of__(self)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
402 return pt()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
403
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
404
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
405 security.declareProtected('View management screens','editProfile')
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
406 def editProfile(self, REQUEST=None):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
407 """edit Profile, new entry replaces CD, current work and research interests"""
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
408
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
409
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
410 if REQUEST:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
411 kupu=REQUEST.form.get('kupu',None);
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
412 preview=REQUEST.form.get('preview',None);
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
413
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
414
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
415 if kupu:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
416 start=kupu.find("<body>")
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
417 end=kupu.find("</body>")
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
418
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
419 newcontent= kupu[start+6:end]
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
420 query="UPDATE personal_www SET profile=%s WHERE key='%s'"
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
421 self.executeZSQL(query%(self.ZSQLQuote(newcontent),self.content.key))
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
422 logging.error("PROFILE:"+query%(self.ZSQLQuote(newcontent),self.content.key))
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
423
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
424 if preview:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
425 pass
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
426 #TODO: not supported yet
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
427 #if RESPONSE:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
428 # self.redirect(RESPONSE,"editProfile")
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
429
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
430 #return self.preview(newcontent)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
431
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
432 pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/staff','edit_profile.zpt')).__of__(self)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
433 return pt()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
434
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
435
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
436
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
437 security.declareProtected('View management screens','editTalks')
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
438 def editTalks(self,REQUEST):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
439 """edit talks"""
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
440
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
441
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
442 if REQUEST:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
443 argv=REQUEST.form
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
444
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
445 if argv.has_key('main_fields'): #got data to change
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
446 self.invalidate_chache()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
447 self.changeAdditionalData(argv);
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
448
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
449 pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/staff','edit_talks.zpt')).__of__(self)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
450 return pt()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
451
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
452
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
453 security.declareProtected('View management screens','editTeaching')
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
454 def editTeaching(self,REQUEST):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
455 """edit teaching"""
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
456
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
457
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
458 if REQUEST:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
459 argv=REQUEST.form
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
460
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
461 if argv.has_key('main_fields'): #got data to change
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
462 self.invalidate_chache()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
463 self.changeAdditionalData(argv);
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
464
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
465 pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/staff','edit_teaching.zpt')).__of__(self)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
466 return pt()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
467
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
468
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
469 security.declareProtected('View management screens','editAdditionalLinks.zpt')
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
470 def editAdditionalLinks(self,REQUEST):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
471 """editiere die additiona link von der Webseite"""
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
472
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
473 if REQUEST:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
474 argv=REQUEST.form
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
475
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
476 if argv.has_key('main_fields'): #got data to change
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
477 self.invalidate_chache()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
478 self.changeAdditionalData(argv);
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
479
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
480 pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/staff','edit_additionalLinks.zpt')).__of__(self)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
481 return pt()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
482
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
483
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
484 security.declareProtected('View management screens','editDownloads')
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
485 def editDownloads(self,REQUEST):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
486 """editiere die Downloads von der Webseite"""
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
487
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
488 pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/staff','edit_downloads.zpt')).__of__(self)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
489 return pt()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
490
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
491 def editPublications(self,REQUEST):
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
492 """editiere die Publications von der Webseite"""
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
493
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
494
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
495 data=REQUEST.form
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
496
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
497 if data.has_key('selectionMode'):
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
498 query="UPDATE personal_www SET publications_mode=%s WHERE key=%s"
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
499
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
500 self.executeZSQL(query,[data['selectionMode'],self.getKey()])
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
501
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
502 self.refresh_content()
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
503
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
504 pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/staff','edit_publications.zpt')).__of__(self)
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
505 return pt()
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
506
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
507
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
508 def refresh_content(self,):
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
509
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
510 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
511
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
512
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
513 def changeDownloads(self,REQUEST):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
514 """"change the downloadable files"""
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
515 self.invalidate_chache();
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
516
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
517 data=REQUEST.form
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
518
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
519 ob = self.folder._getOb("downloadableFiles")
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
520
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
521 if data.get('cv_publish',None):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
522
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
523 self.changeData({'cv_p':data['cv_publish']})
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
524
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
525 if data.get('publications_publish',None):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
526 self.changeData({'publications_p':data['publications_publish']})
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
527
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
528
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
529 if data.get('cv_pdf',None):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
530 cvName ="%s_cv.pdf"%self.getUsername()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
531 cvName=cvName.encode('utf-8')
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
532 logging.debug("CCC")
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
533 if not hasattr(ob,cvName):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
534
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
535 cvFile = ExtFile(cvName,cvName)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
536 ob._setObject(cvName,cvFile)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
537
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
538
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
539 cvFile = getattr(ob,cvName)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
540
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
541 cvFile.manage_upload(file=data['cv_pdf'])
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
542
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
543
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
544
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
545
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
546 if data.get('publications_pdf',None):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
547
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
548
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
549 pdfName="%s_publications.pdf"%self.getUsername()
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
550 pdfName=pdfName.encode('utf-8')
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
551
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
552 if not hasattr(ob,pdfName):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
553
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
554 cvFile = ExtFile(pdfName,pdfName)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
555 ob._setObject(pdfName,cvFile)
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 cvFile = getattr(ob,pdfName)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
559
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
560 cvFile.manage_upload(file=data['publications_pdf'])
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
561
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
562
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
563 #REQUEST.response.redirect(self.REQUEST['HTTP_REFERER'])
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
564
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
565
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
566
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
567
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
568 def changeData(self,changeSet):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
569 """changes the data in the database, changeset expects field --> value."""
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
570 for field in changeSet.keys():
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
571 if hasattr(self.content,field):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
572 logging.debug("Changing: %s"%field)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
573
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
574
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
575 results = self.folder.executeZSQL("update personal_www set "+field+" = %s where key = %s ", [changeSet.get(field),self.getKey().encode('utf-8')]);
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
576
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
577 logging.debug(results)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
578
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
579
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
580 security.declareProtected('View management screens','changeAdditionalData')
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
581 def changeAdditionalData(self,data):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
582 """change the research entries"""
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
583
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
584 self.invalidate_chache();
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
585
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
586 newEntries={}
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
587
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
588
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
589 mainfieldL=data['main_fields'].split(",") #fields to be changed
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
590 # format DATABASE__FIELDNAME
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
591
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
592 mainfield={}
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
593 for x in mainfieldL:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
594 tmp=x.split('__')
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
595 mainfield[tmp[0]]=tmp[1]
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
596 for field in data:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
597 splittedField=field.split("__")
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
598 if len(splittedField)<3:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
599 pass #kein datenbank eintrag
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
600
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
601 elif splittedField[2]=='new': # store new entries
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
602 if not newEntries.has_key(splittedField[0]):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
603 newEntries[splittedField[0]]={}
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
604
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
605 newEntries[splittedField[0]][splittedField[1]]=data[field]
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
606
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
607 else:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
608 query="UPDATE %s "%splittedField[0]
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
609 query+="SET %s = '%s' "%(splittedField[1],sql_quote(data[field]))
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
610 query+="WHERE oid = '%s' "%sql_quote(splittedField[2])
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
611
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
612 self.executeZSQL(query)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
613
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
614
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
615 #new entries
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
616 for newEntry in newEntries.keys():
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
617 query="INSERT INTO %s "%newEntry
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
618 keys=['key_main']
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
619 values=["'"+sql_quote(self.getKey())+"'"]
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
620 for key in newEntries[newEntry].keys():
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
621 keys.append(key)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
622 values.append("'"+sql_quote(newEntries[newEntry][key])+"'")
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
623
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
624
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
625 keystring=",".join(keys)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
626
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
627 valuestring=",".join(values)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
628
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
629 query+=" (%s) "%keystring
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
630 query+="VALUES (%s)"%valuestring
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
631 if not (newEntries[newEntry][mainfield[newEntry]].lstrip().rstrip()==""):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
632 self.executeZSQL(query)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
633
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
634
38
3c98cc79dd14 version 0.1 mit publicationen von pubman (TEST!!)
dwinter
parents: 37
diff changeset
635
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
636
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
637
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
638 def deleteField(self,REQUEST):
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
639 """delete entry"""
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
640
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
641
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
642 table = REQUEST.form.get('table',None);
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
643 oid = REQUEST.form.get('oid',None);
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
644
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
645 if table is None or oid is None:
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
646 return
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
647
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
648 query="DELETE FROM %s WHERE oid = '%s'"%(table,oid)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
649
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
650 self.executeZSQL(query)
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
651 REQUEST.response.redirect(self.REQUEST['HTTP_REFERER'])
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
652
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
653
40
fd8e78bbc5ed more work on projects.
casties
parents: 38
diff changeset
654 def invalidate_cache(self):
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
655 #TODO: How to invalidate the varnish cache from the member object
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
656 pass;
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
657
79
7f26c8e6c8e9 more styles for project lists.
casties
parents: 73
diff changeset
658
7f26c8e6c8e9 more styles for project lists.
casties
parents: 73
diff changeset
659 # TODO: compat, is this used?
7f26c8e6c8e9 more styles for project lists.
casties
parents: 73
diff changeset
660 getStaffURL = getUsername
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
661
56
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
662 def getPublicationsFromPubman(self,limit=None,publicationType=None):
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
663
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
664
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
665 if self.content.publications_mode=="year" or publicationType is not None:
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
666 coneId = self.getConeId();
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
667 if coneId:
56
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
668 pubs= self.folder.getPublicationsFromPubman(coneId,limit=limit,publicationType=publicationType)
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
669 return pubs
38
3c98cc79dd14 version 0.1 mit publicationen von pubman (TEST!!)
dwinter
parents: 37
diff changeset
670
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
671 elif self.content.publications_mode=="priority":
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
672 selPubs= self.getSelectedPublications()
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
673
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
674 pubs=[]
73
33c663a08025 projekte publicationen jetzt nach typen geordnet
dwinter
parents: 71
diff changeset
675 count =0
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
676 for selPub in selPubs:
73
33c663a08025 projekte publicationen jetzt nach typen geordnet
dwinter
parents: 71
diff changeset
677 if limit and count >= limit:
33c663a08025 projekte publicationen jetzt nach typen geordnet
dwinter
parents: 71
diff changeset
678 break
33c663a08025 projekte publicationen jetzt nach typen geordnet
dwinter
parents: 71
diff changeset
679 count+=1
53
e718d9a72f19 bibliographie funktionen
dwinter
parents: 48
diff changeset
680 logging.debug("searchFor:%s"%selPub.escidocid)
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
681 pubs.append((selPub.escidocid,self.mpiwgPubman.getEntryFromPubman(selPub.escidocid)))
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
682
46
955d102392db pubman integration 0.2
dwinter
parents: 38
diff changeset
683 return pubs
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
684 return {}
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
685
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
686
100
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
687 def publications_full_html(self, REQUEST):
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
688 """show publication"""
100
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
689 pt=PageTemplateFile('zpt/staff/pubman/show_publications.zpt', globals()).__of__(self)
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
690 return pt(member=self.content)
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
691
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
692
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
693 def addPublicationsFromPubman(self,REQUEST):
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
694 """addPublications from pubman"""
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
695
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
696 data=REQUEST.form
38
3c98cc79dd14 version 0.1 mit publicationen von pubman (TEST!!)
dwinter
parents: 37
diff changeset
697
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
698 if data.get("method",None) is None:
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
699 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
700 return pt()
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
701
37
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
702
9b38ba45773b ?berarbeitung MPIWGStaff
dwinter
parents: 28
diff changeset
703
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
704 if data.get("method") == "search":
73
33c663a08025 projekte publicationen jetzt nach typen geordnet
dwinter
parents: 71
diff changeset
705
33c663a08025 projekte publicationen jetzt nach typen geordnet
dwinter
parents: 71
diff changeset
706
33c663a08025 projekte publicationen jetzt nach typen geordnet
dwinter
parents: 71
diff changeset
707
33c663a08025 projekte publicationen jetzt nach typen geordnet
dwinter
parents: 71
diff changeset
708 entries= self.mpiwgPubman.search(data,contexts=["escidoc:85274","escidoc:38279"])
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
709 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
710
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
711
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
712 return pt(values=entries)
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
713
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
714
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
715
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
716 if data.get("method") == "add":
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
717
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
718 return self.addEntriesToPublicationList(data)
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
719 #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
720
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
721
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
722
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
723 def addEntriesToPublicationList(self,data):
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
724 """fuege eintrage aus data zur publications liste,
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
725 @param data Map mit escidocID --> value
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
726 value muss "add" sein damit hinzugefuegt wird"""
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
727
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
728 for key in data.keys():
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
729
56
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
730 if key.startswith('escidoc:'):
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
731
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
732
56
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
733 query="INSERT INTO pubmanbiblio (key_main,escidocId) values (%s,%s)"
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
734
56
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
735 if data.get(key)=="add":
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
736 self.executeZSQL(query,[self.getKey(),key])
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
737
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
738
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
739
56
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
740 #selectedPublications = self.getSelectedPublications()
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
741
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
742 #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
743
56
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
744 #return pt()
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
745 if hasattr(self,'REQUEST'):
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
746 return self.REQUEST.response.redirect("changePublications")
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
747
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
748
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
749 def changePublications(self,REQUEST):
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
750 """change published publications"""
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
751
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
752 data=REQUEST.form
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
753
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
754
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
755 if data.get("method","change"):
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
756 for key in data.keys():
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
757 splitted=key.split("__") #format escidoc_id__p fuer priority, nur escidocid
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
758 value=data[key]
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
759 if len(splitted)==1:
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
760 self.deleteFromPublicationList(key);
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
761
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
762 elif(splitted[1]) == "p":
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
763 self.setPublicationPriority(splitted[0],value);
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
764
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
765
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
766 pt = PageTemplateFile(os.path.join(package_home(globals()),'zpt/staff/pubman','change_publications.zpt')).__of__(self)
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
767 return pt()
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
768
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
769
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
770 def deleteFromPublicationList(self,escidocid):
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
771 """Loessche publication with escidoc id from publication list"""
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
772
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
773 query ="DELETE FROM pubmanbiblio WHERE escidocid=%s and key_main=%s"
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
774
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
775 self.executeZSQL(query,[escidocid,self.getKey()]);
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
776
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
777
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
778 def setPublicationPriority(self,escidocid,value):
56
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
779 try:
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
780 query="update pubmanbiblio set priority=%s where escidocid=%s and key_main=%s"
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
781
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
782 self.executeZSQL(query,[value,escidocid,self.getKey()]);
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
783
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
784 except:
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
785 logging.error("couldn't change:")
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
786 logging.error(escidocid)
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
787 logging.error(value)
a6ace48c2bf2 publication management f?r projekte
dwinter
parents: 53
diff changeset
788
80
b1893c4c9d2c more display of project pages.
casties
parents: 79
diff changeset
789
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
790 def getSelectedPublications(self):
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
791 """hole publications aus der datenbank"""
100
f4ac675b2031 more members pages.
casties
parents: 93
diff changeset
792 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
793 return self.executeZSQL(query,[self.getKey()])
68
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
794
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
795
86
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
796 def getProfile(self,REQUEST):
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
797 """get the profile"""
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
798 self.REQUEST.RESPONSE.setHeader('Last-Modified',email.Utils.formatdate().split("-")[0]+'GMT')
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
799
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
800
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
801 html="""<html><body>%s</body></html>"""
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
802 if self.content.profile and self.content.profile != "":
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
803
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
804 return html%self.content.profile
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
805 else:
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
806
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
807 return html%""
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
808
ab836d3f96dc styles for staff list.
casties
parents: 85
diff changeset
809
68
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
810 def generateProfileForPerson(self,REQUEST=None):
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
811 """erzeugt ein automatisches Profil aus den alten Eintraegen CV, Current work, und research interests"""
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
812
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
813 ret=""
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
814 #founds=self.ZSQLInlineSearch(_table='research_interest',key_main=person.getKeyUTF8())
80
b1893c4c9d2c more display of project pages.
casties
parents: 79
diff changeset
815 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
816 if founds:
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
817 ret="<p class=\"bio_section_header\">Research interests: </p><br/>"
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
818 for found in self.sortPriority(founds):
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
819 ret+=found.interest+"<br/>"
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
820 if (self.content.current_work) and (not self.content.current_work==""):
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
821 ret+="<p class=\"bio_section_header\">Current work: </p><br/>"
80
b1893c4c9d2c more display of project pages.
casties
parents: 79
diff changeset
822 ret+=self.content.current_work+"<br/>"
68
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
823 if (self.content.cv) and (not self.content.cv==""):
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
824 ret+="<p class=\"bio_section_header\">Curriculum Vitae: </p><br/>"
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
825 ret+=self.formatAscii(self.content.cv)
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
826
2ad8aa9d306c bugs in MPIWGTemplate fixed
dwinter
parents: 59
diff changeset
827 return ret
47
225179dfd892 getPublications erweitert nach Typ
dwinter
parents: 46
diff changeset
828
3
ee3eb9a6665a MPIWGStaffFolder shows members from db now.
casties
parents: 2
diff changeset
829 InitializeClass(MPIWGStaffMember)