comparison MPIWGStaff.py @ 189:cc5198541af8

erzeugen neuer eintr?ge auf der homepage mittels updatexml
author dwinter
date Mon, 17 Jun 2013 13:48:55 +0200
parents 16d55695f1c8
children 9a09156eee7c
comparison
equal deleted inserted replaced
188:16d55695f1c8 189:cc5198541af8
26 # 26 #
27 # compatibility 27 # compatibility
28 # TODO: should be removed when done 28 # TODO: should be removed when done
29 import MPIWGStaff_old 29 import MPIWGStaff_old
30 30
31 createNewDBEntry = MPIWGStaff_old.createNewDBEntry 31 #createNewDBEntry = MPIWGStaff_old.createNewDBEntry
32 32
33 class MPIWGStaff(MPIWGStaff_old.MPIWGStaff): 33 class MPIWGStaff(MPIWGStaff_old.MPIWGStaff):
34 """Staff""" 34 """Staff"""
35 pass 35 pass
36 36
98 """returns if member key is active""" 98 """returns if member key is active"""
99 res = self.executeZSQL("select * from personal_www where lower(key) = %s and publish_the_data = 'yes'", [key.lower()]) 99 res = self.executeZSQL("select * from personal_www where lower(key) = %s and publish_the_data = 'yes'", [key.lower()])
100 return len(res) > 0 100 return len(res) > 0
101 101
102 102
103 def getMemberList(self, department=None, sortBy='last_name', onlyCurrent=False, arrivedWithin=None, limit=0): 103 def getMemberList(self, department=None, sortBy='last_name', onlyCurrent=False, arrivedWithin=None, limit=0,withEmail=True):
104 """Return the list of members. 104 """Return the list of members.
105 105
106 Returns a list of MPIWGStaffMember objects. 106 Returns a list of MPIWGStaffMember objects.
107 """ 107 """
108 members = [] 108 members = []
109 query = "select * from personal_www_list where publish_the_data = 'yes' and is_scholar='yes'" 109
110 if withEmail:
111 query = "select * from personal_www_list where publish_the_data = 'yes' and is_scholar='yes' and e_mail <> '' "
112 else:
113 query = "select * from personal_www_list where publish_the_data = 'yes' and is_scholar='yes'"
110 args = [] 114 args = []
111 115
112 if department is not None: 116 if department is not None:
113 query += " and department ilike %s" 117 query += " and department ilike %s"
114 args.append('%%%s%%'%department) 118 args.append('%%%s%%'%department)
219 ret.append(olduser) 223 ret.append(olduser)
220 224
221 return ret,len(ret) 225 return ret,len(ret)
222 226
223 227
224 228 def createNewDBEntry(self,publish_the_data,key,name,vorname,titles_new,position,e_mail,e_mail_p,date_from,date_to,abteilung,heimat_inst,funded_by="",e_mail2="",txt="",txt_p="no",stay_at_mpiwg="",group="",web_object_created="no",current_work=""):
229 """lege person in der datenbank an"""
230
231 if date_to=="": # wenn date_to leer
232 date_to="date_none"
233
234 if date_from=="": # wenn date_fromleer
235 date_from="date_none"
236 msg=""
237 #test ob id schon existiert
238 if self.ZSQLQuery("select key from personal_www where key='%s'"%id):
239 return False,"ERROR:key%s already exists"%key
240
241 #eintragen
242 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 """
243 insertTuple=(publish_the_data,key,name,vorname,titles_new,position,e_mail,e_mail_p,date_from,date_to,abteilung,heimat_inst,funded_by,e_mail2,stay_at_mpiwg,web_object_created,group,current_work,"yes")
244
245 insert=[]
246 for element in insertTuple:
247 if element=="date_none": # date_none eintrag wird zu null uebersetzt
248 insert.append('null')
249 else:
250 insert.append("%s"%self.ZSQLQuote(element))
251
252 insertStr=",".join(insert)
253 queryStr="INSERT INTO personal_www (%s) VALUES (%s)"%(columnlist,insertStr)
254 self.ZSQLQuery("SET DATESTYLE TO 'German'")
255 self.ZSQLQuery(queryStr)
256 logging.info("createNewDBEntry %s:"%queryStr)
257 #currentwork
258 #if not (current_work==""):
259 # queryStr="INSERT INTO current_work (key_main,current,publish) VALUES ('%s',%s,'%s')"%(key,self.ZSQLQuote(current_work),"yes")
260
261 # self.ZSQLQuery(queryStr)
262
263 return True,msg
264
265 def addEmails(self,RESPONSE):
266 """add emails to the members from form"""
267 memberFolder=getattr(self,'members')
268 args=self.REQUEST.form
269 arg_k=args.keys()
270 arg_k.remove("submit")
271 ret="<html><body>"
272 for key in arg_k:
273 k=key
274
275 qstr="select * from personal_www where key=%s"%self.ZSQLQuote(k)
276 res=self.executeZSQL(qstr)[0]
277 if args[key]!="": #email-adresse wurde eingetragen
278 #create the object
279 e_mail=args[key]
280
281
282 qstr="update personal_www set web_object_created='yes',e_mail='%s@mpiwg-berlin.mpg.de' where key=%s"%(e_mail,self.ZSQLQuote(k))
283 self.executeZSQL(qstr)
284
285 ret+="<p>Added: %s</p>"%k
286
287
288 return ret+"</body></html>"
225 def manage_addMPIWGStaffFolderForm(self): 289 def manage_addMPIWGStaffFolderForm(self):
226 """form for adding the project""" 290 """form for adding the project"""
227 pt=PageTemplateFile('zpt/addMPIWGStaffFolderForm', globals()).__of__(self) 291 pt=PageTemplateFile('zpt/addMPIWGStaffFolderForm', globals()).__of__(self)
228 return pt() 292 return pt()
229 293
882 ret+="<p class=\"bio_section_header\">Curriculum Vitae: </p><br/>" 946 ret+="<p class=\"bio_section_header\">Curriculum Vitae: </p><br/>"
883 ret+=self.formatAscii(self.content.cv) 947 ret+=self.formatAscii(self.content.cv)
884 948
885 return ret 949 return ret
886 950
951
952
887 # initialize security 953 # initialize security
888 InitializeClass(MPIWGStaffFolder) 954 InitializeClass(MPIWGStaffFolder)
889 InitializeClass(MPIWGStaffMember) 955 InitializeClass(MPIWGStaffMember)