version 1.1.2.22, 2009/02/26 08:06:44
|
version 1.1.2.29, 2010/09/22 16:06:09
|
Line 67 class MPIWGRoot(ZSQLExtendFolder):
|
Line 67 class MPIWGRoot(ZSQLExtendFolder):
|
# types of objects that show up in navigation |
# types of objects that show up in navigation |
nav_meta_types = ['MPIWGTemplate','MPIWGLink','MPIWGFolder'] |
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): |
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 |
"""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 <span class="found">XX</span> getaggt, die Umgebungen werden |
alle Tags werden entfernt, die Fundstellen werden mit <span class="found">XX</span> getaggt, die Umgebungen werden |
Line 386 class MPIWGRoot(ZSQLExtendFolder):
|
Line 397 class MPIWGRoot(ZSQLExtendFolder):
|
else: |
else: |
return style |
return style |
|
|
def getFeatures(self): |
def getFeatures(self, num=None): |
"""returns a list of all Features""" |
"""returns a list of the last num Features""" |
dir = getattr(self, 'features') |
dir = getattr(self, 'features') |
features = dir.objectItems(['MPIWGFeature']) |
features = dir.objectItems(['MPIWGFeature']) |
features.sort(sortWeight) |
features.sort(sortWeight) |
|
if num is not None: |
|
# take only the last num elements |
|
features = features[-num:] |
# return pure list of objects |
# return pure list of objects |
return [f[1] for f in features] |
return [f[1] for f in features] |
|
|
Line 680 class MPIWGRoot(ZSQLExtendFolder):
|
Line 694 class MPIWGRoot(ZSQLExtendFolder):
|
return projects |
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): |
def updatePublicationDB(self,personId=None): |
"""updates the publication db, i.e. copy year and type into the main table""" |
"""updates the publication db, i.e. copy year and type into the main table""" |
|
|
Line 776 class MPIWGRoot(ZSQLExtendFolder):
|
Line 779 class MPIWGRoot(ZSQLExtendFolder):
|
|
|
|
|
result,msg=MPIWGStaff.createNewDBEntry(self,data['publish_the_data'],data['key'],data['last_name'], |
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['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']) |
data['e_mail2'],data['current_work'],"yes",data['date_stay_at_mpiwg'],data['group'],"no",data['current_work']) |
|
|
return result,msg |
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""" |
"""update an person entry from data. but ignore all fields in ignore Entries""" |
|
if ignoreEntries is None: |
|
ignoreEntries = [] |
|
|
ignoreEntries.append('current_work') # TODO:updatecurrent work |
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 |
if data['date_to']=="": # wenn date_to leer |
data['date_to']="date_none" |
data['date_to']="date_none" |
Line 800 class MPIWGRoot(ZSQLExtendFolder):
|
Line 806 class MPIWGRoot(ZSQLExtendFolder):
|
|
|
columns=data.keys() |
columns=data.keys() |
for x in ignoreEntries: |
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 |
try: #falls in ignore entries felder sind, die nicht in columns sind, fange den fehler ab |
columns.remove(x) |
columns.remove(x) |
except: |
except: |
Line 834 class MPIWGRoot(ZSQLExtendFolder):
|
Line 840 class MPIWGRoot(ZSQLExtendFolder):
|
resultSet=self.REQUEST.SESSION['personal_www']['resultSet'] |
resultSet=self.REQUEST.SESSION['personal_www']['resultSet'] |
news=self.REQUEST.SESSION['personal_www']['news'] |
news=self.REQUEST.SESSION['personal_www']['news'] |
conflicts=self.REQUEST.SESSION['personal_www']['conflicts'] |
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="<html><body>" |
ret="<html><body>" |
# generate the new entry |
# generate the new entry |
|
|
Line 841 class MPIWGRoot(ZSQLExtendFolder):
|
Line 849 class MPIWGRoot(ZSQLExtendFolder):
|
ret+="<h2>Hinzugefügt</h2>" |
ret+="<h2>Hinzugefügt</h2>" |
ret+="<p>Neueinträge erscheinen erst auf der Homepage, wenn ihnen eine e-mail Adresse zugeordnet wurde.</p>" |
ret+="<p>Neueinträge erscheinen erst auf der Homepage, wenn ihnen eine e-mail Adresse zugeordnet wurde.</p>" |
ret+="<ul>" |
ret+="<ul>" |
for new in news: |
|
|
|
|
for new in news: |
if args.has_key(self.urlQuote(new.encode('utf-8'))): # entry was selected |
if args.has_key(self.urlQuote(new.encode('utf-8'))): # entry was selected |
result,msg=self.generateNewPersonEntry(resultSet[new]) |
result,msg=self.generateNewPersonEntry(resultSet[new]) |
if not result: |
if not result: |
Line 850 class MPIWGRoot(ZSQLExtendFolder):
|
Line 858 class MPIWGRoot(ZSQLExtendFolder):
|
ret+="<li>ERROR: %s %s"%(new.encode('utf-8'),msg) |
ret+="<li>ERROR: %s %s"%(new.encode('utf-8'),msg) |
else: |
else: |
ret+="<li>OK: %s"%(new.encode('utf-8')) |
ret+="<li>OK: %s"%(new.encode('utf-8')) |
|
|
if news and (len(news)>0): |
if news and (len(news)>0): |
ret+="<p>Neueinträge erscheinen erst auf der Homepage, wenn ihnen eine e-mail Adresse zugeordnet wurde.</p>" |
ret+="<p>Neueinträge erscheinen erst auf der Homepage, wenn ihnen eine e-mail Adresse zugeordnet wurde.</p>" |
ret+="</ul>" |
ret+="</ul>" |
Line 868 class MPIWGRoot(ZSQLExtendFolder):
|
Line 877 class MPIWGRoot(ZSQLExtendFolder):
|
if args[conflict.encode('utf-8')+'_'+cf[0]]=="stored": #use the stored one |
if args[conflict.encode('utf-8')+'_'+cf[0]]=="stored": #use the stored one |
ignoreEntries.append(cf[0]) #so ignore field cf[0] |
ignoreEntries.append(cf[0]) #so ignore field cf[0] |
displayIgnored.append(cf) |
displayIgnored.append(cf) |
|
|
if len(displayIgnored)>0: |
if len(displayIgnored)>0: |
ret+="<h3>%s</h3>"%conflict.encode('utf-8') |
ret+="<h3>%s</h3>"%conflict.encode('utf-8') |
|
|
ret+="<table border='1'>" |
ret+="<table border='1'>" |
for iE in displayIgnored: |
for iE in displayIgnored: |
ret+="<tr><td>%s</td><td>%s</td><td>%s</td>"%(iE[0].encode('utf-8'),iE[1].encode('utf-8'),iE[2].encode('utf-8')) |
ret+="<tr><td>%s</td><td>%s</td><td>%s</td>"%(iE[0].encode('utf-8'),iE[1].encode('utf-8'),iE[2].encode('utf-8')) |
Line 963 class MPIWGRoot(ZSQLExtendFolder):
|
Line 972 class MPIWGRoot(ZSQLExtendFolder):
|
|
|
results=self.MembersCatalog({'isPublished':True}) |
results=self.MembersCatalog({'isPublished':True}) |
|
|
ret=[(", ".join([proj.lastName, proj.firstName]).decode('utf-8'),proj.getKey) for proj in results] |
ret=[(unicodify(", ".join([proj.lastName, proj.firstName])), proj.getKey) for proj in results] |
|
|
ret.sort(sorter) |
ret.sort(sorter) |
return ret |
return ret |
Line 1016 class MPIWGRoot(ZSQLExtendFolder):
|
Line 1025 class MPIWGRoot(ZSQLExtendFolder):
|
onlyArchived=0: alle Projekte |
onlyArchived=0: alle Projekte |
onlyArchived= 1 : nur aktuelle Projekte |
onlyArchived= 1 : nur aktuelle Projekte |
onlyArchived = 2: nur archivierte Projekte |
onlyArchived = 2: nur archivierte Projekte |
|
|
|
department fuer das Tree geholt werden soll |
""" |
""" |
|
|
returnListTmp=[] |
returnListTmp=[] |
Line 1035 class MPIWGRoot(ZSQLExtendFolder):
|
Line 1046 class MPIWGRoot(ZSQLExtendFolder):
|
if idNr[0]=="x": # kompatibilitaet mit alter Konvention, x vor der Nummer macht project inactive |
if idNr[0]=="x": # kompatibilitaet mit alter Konvention, x vor der Nummer macht project inactive |
project[0].setActiveFlag(False) |
project[0].setActiveFlag(False) |
|
|
if (not dep) or (idNr[0]==dep): #falls dep gesetzt ist nur dieses hinzufuegen. |
if (not dep) or (splittedId[0]==dep): #falls dep gesetzt ist nur dieses hinzufuegen. |
|
|
if (onlyActive==0): |
if (onlyActive==0): |
returnListTmp.append((depth,nr,title,project[0])) |
returnListTmp.append((depth,nr,title,project[0])) |
Line 1097 class MPIWGRoot(ZSQLExtendFolder):
|
Line 1108 class MPIWGRoot(ZSQLExtendFolder):
|
hashList={} |
hashList={} |
onlyArchived=int(form.get("onlyArchived",0)) |
onlyArchived=int(form.get("onlyArchived",0)) |
onlyActive=int(form.get("onlyActive",0)) |
onlyActive=int(form.get("onlyActive",0)) |
|
dep=form.get("dep",None) |
|
|
|
fields=self.getTree(dep=dep,onlyArchived=onlyArchived,onlyActive=onlyActive) |
fields=self.getTree(onlyArchived=onlyArchived,onlyActive=onlyActive) |
|
|
|
logging.info("GOT TREE!----------------------------------------------------") |
logging.info("GOT TREE!----------------------------------------------------") |
for field in form.keys(): |
for field in form.keys(): |
Line 1116 class MPIWGRoot(ZSQLExtendFolder):
|
Line 1127 class MPIWGRoot(ZSQLExtendFolder):
|
else: |
else: |
fields[nr][3].setActiveFlag(False) |
fields[nr][3].setActiveFlag(False) |
|
|
#nummer hat sich geŠndert |
#nummer hat sich geaendert |
|
|
entryChanged = False; |
entryChanged = False; |
|
|
|
if isinstance(fields[nr][3].xdata_05,list): #for some reasons somtimes the content of the field is a list with one entry. |
|
fields[nr][3].xdata_05=fields[nr][3].xdata_05[0] |
|
|
if not (fields[nr][3].xdata_05==form[str(nr)+'_number']): |
if not (fields[nr][3].xdata_05==form[str(nr)+'_number']): |
logging.info("Changed!Number+++++++++++++++++++++++++++++++++") |
logging.info("Changed!Number+++++++++++++++++++++++++++++++++") |
|
logging.info(repr(fields[nr][3].xdata_05)+" ---> "+ repr(form[str(nr)+'_number'])) |
fields[nr][3].xdata_05=form[str(nr)+'_number'] |
fields[nr][3].xdata_05=form[str(nr)+'_number'] |
entryChanged = True |
entryChanged = True |
|
|
#completed har sich geaendert |
#completed har sich geaendert |
|
|
if not (fields[nr][3].getCompletedAt()==fields[nr][3].transformDate(form[str(nr)+'_completed'])): |
td = fields[nr][3].transformDate # hole die funktion zum transformieren des datums |
|
|
|
if not (td(fields[nr][3].getCompletedAt())==td(form[str(nr)+'_completed'])): |
fields[nr][3].setCompletedAt(form[str(nr)+'_completed']) |
fields[nr][3].setCompletedAt(form[str(nr)+'_completed']) |
|
logging.info(repr(td(fields[nr][3].getCompletedAt()))+" ---> "+ repr(td(form[str(nr)+'_completed']))) |
logging.info("Changed!Completed+++++++++++++++++++++++++++++++++") |
logging.info("Changed!Completed+++++++++++++++++++++++++++++++++") |
entryChanged = True |
entryChanged = True |
|
|
if not (fields[nr][3].getStartedAt()==fields[nr][3].transformDate(form[str(nr)+'_started'])): |
if not (td(fields[nr][3].getStartedAt())==td(form[str(nr)+'_started'])): |
fields[nr][3].setStartedAt(form[str(nr)+'_started']) |
fields[nr][3].setStartedAt(form[str(nr)+'_started']) |
|
|
|
logging.info(repr(td(fields[nr][3].getStartedAt()))+" ---> "+ repr(td(form[str(nr)+'_started']))) |
logging.info("Changed!Started+++++++++++++++++++++++++++++++++") |
logging.info("Changed!Started+++++++++++++++++++++++++++++++++") |
entryChanged = True |
entryChanged = True |
|
|