--- MPIWGWeb/Attic/MPIWGRoot.py 2008/10/23 10:02:09 1.1.2.21 +++ MPIWGWeb/Attic/MPIWGRoot.py 2012/01/03 09:26:45 1.1.2.32 @@ -67,6 +67,17 @@ class MPIWGRoot(ZSQLExtendFolder): # types of objects that show up in navigation nav_meta_types = ['MPIWGTemplate','MPIWGLink','MPIWGFolder'] + manage_options = Folder.manage_options+( + {'label':'Update personal homepages','action':'updatePersonalwww_html'}, + {'label':'Reindex catalogs','action':'reindexCatalogs'}, + {'label':'Main config','action':'changeMPIWGRootForm'}, + {'label':'add e-mails','action':'showNewDBEntries'}, + #{'label':'update the institutsbibliography','action':'updateInstitutsbiliography'}, + #{'label':'Edit Historical Persons','action':'editHistoricalPersonsForm'}, + #{'label':'Store Historical Persons','action':'storeHistoricalPersons'}, + ) + + def getGetNeighbourhood(self,obj, wordStr, length=100,tagging=True): """finde umgebung um die worte in wordStr, zurueckgegeben wird eine Array mit den Umgebungen von Fundstellen der Worte alle Tags werden entfernt, die Fundstellen werden mit XX getaggt, die Umgebungen werden @@ -80,6 +91,8 @@ class MPIWGRoot(ZSQLExtendFolder): ret=[] # nimmt das Array auf, dass spaeter zurueckgegeben wird ranges=[] #Array mit tupeln x,y wobei x die Position des Anfang und y des Endes der i-ten Umgebung angiebt + wordStr=wordStr.lstrip().rstrip() + def isInRanges(nr,length): """test ob eine gegeben Position nr schon irgendwo in einer Umgebung ist, gibt den Index des ersten Wertes aus ranges zurueck, -1, wenn kein Treffer @@ -384,11 +397,14 @@ class MPIWGRoot(ZSQLExtendFolder): else: return style - def getFeatures(self): - """returns a list of all Features""" + def getFeatures(self, num=None): + """returns a list of the last num Features""" dir = getattr(self, 'features') features = dir.objectItems(['MPIWGFeature']) features.sort(sortWeight) + if num is not None: + # take only the last num elements + features = features[-num:] # return pure list of objects return [f[1] for f in features] @@ -584,15 +600,18 @@ class MPIWGRoot(ZSQLExtendFolder): pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeMPIWGRootForm')).__of__(self) return pt() - def changeMPIWGRoot(self,title,disciplineList,themesList,connection_id,lang=None,RESPONSE=None): + def changeMPIWGRoot(self,title,connection_id,coneServiceURL,lang=None,autocommit=None,RESPONSE=None): """change""" self.title=title self.connection_id=connection_id - self.disciplineList=disciplineList - self.themesList=themesList + #self.disciplineList=disciplineList + #self.themesList=themesList + self.coneServiceURL=coneServiceURL + if lang is not None: self.lang = lang + self.autocommit = (autocommit == "on") if RESPONSE is not None: RESPONSE.redirect('manage_main') @@ -678,17 +697,6 @@ class MPIWGRoot(ZSQLExtendFolder): return projects - manage_options = Folder.manage_options+( - {'label':'Update personal homepages','action':'updatePersonalwww_html'}, - {'label':'Reindex catalogs','action':'reindexCatalogs'}, - {'label':'Main config','action':'changeMPIWGRootForm'}, - {'label':'add e-mails','action':'showNewDBEntries'}, - {'label':'update the institutsbibliography','action':'updateInstitutsbiliography'}, - #{'label':'Edit Historical Persons','action':'editHistoricalPersonsForm'}, - #{'label':'Store Historical Persons','action':'storeHistoricalPersons'}, - ) - - def updatePublicationDB(self,personId=None): """updates the publication db, i.e. copy year and type into the main table""" @@ -774,17 +782,20 @@ class MPIWGRoot(ZSQLExtendFolder): result,msg=MPIWGStaff.createNewDBEntry(self,data['publish_the_data'],data['key'],data['last_name'], - data['first_name'],data['title'],data['status'],"", + data['first_name'],data['titles_new'],data['status'],"", "",data['date_from'],data['date_to'], - data['department'],data['home_inst'],data['funded_by'], + data['department'],'',data['funded_by'], data['e_mail2'],data['current_work'],"yes",data['date_stay_at_mpiwg'],data['group'],"no",data['current_work']) return result,msg - def updatePersonEntry(self,data,ignoreEntries=[]): + def updatePersonEntry(self,data,ignoreEntries=None): """update an person entry from data. but ignore all fields in ignore Entries""" - - ignoreEntries.append('current_work') # TODO:updatecurrent work + if ignoreEntries is None: + ignoreEntries = [] + + #ignoreEntries.append('current_work') # TODO:updatecurrent work + logging.debug("updatePersonEntry: data=%s ignoreEntries=%s"%(repr(data),repr(ignoreEntries))) if data['date_to']=="": # wenn date_to leer data['date_to']="date_none" @@ -798,9 +809,9 @@ class MPIWGRoot(ZSQLExtendFolder): columns=data.keys() for x in ignoreEntries: - logging.info("ign rem: %s"%x) + logging.debug("updatePersonEntry: ignoring %s"%x) try: #falls in ignore entries felder sind, die nicht in columns sind, fange den fehler ab - columns.remove(x) + columns.remove(x) except: pass @@ -832,6 +843,8 @@ class MPIWGRoot(ZSQLExtendFolder): resultSet=self.REQUEST.SESSION['personal_www']['resultSet'] news=self.REQUEST.SESSION['personal_www']['news'] conflicts=self.REQUEST.SESSION['personal_www']['conflicts'] + logging.debug("updatePersonalwww_doIt: args=%s\n resultSet=%s\n news=%s\n conflicts=%s"%(args,resultSet,news,conflicts)) + ret="
" # generate the new entry @@ -839,8 +852,8 @@ class MPIWGRoot(ZSQLExtendFolder): ret+="Neueinträge erscheinen erst auf der Homepage, wenn ihnen eine e-mail Adresse zugeordnet wurde.
" ret+="Neueinträge erscheinen erst auf der Homepage, wenn ihnen eine e-mail Adresse zugeordnet wurde.
" ret+="%s | %s | %s | "%(iE[0].encode('utf-8'),iE[1].encode('utf-8'),iE[2].encode('utf-8')) - ret+="" + ret+="