--- MPIWGWeb/Attic/MPIWGRoot.py 2012/02/29 19:01:19 1.1.2.38 +++ MPIWGWeb/Attic/MPIWGRoot.py 2012/03/01 07:46:27 1.1.2.39 @@ -719,23 +719,34 @@ class MPIWGRoot(ZSQLExtendFolder): return ret - def getAllProjectsAndTagsAsCSV(self,archived=1): + def getAllProjectsAndTagsAsCSV(self,archived=1,RESPONSE=None): """alle projekte auch die nicht getaggten""" retList=[] + headers=['projectName','scholars','lastChange thesaurus','last change project','persons','places','objects'] + headers.extend(list(self.thesaurus.tags.keys())) + retList.append("\t".join(headers)) + if not hasattr(self,'thesaurus'): + return "NON thesaurus (there have to be a MPIWGthesaurus object, with object ID thesaurus)" + + projectTags = self.thesaurus.getProjectsAndTags() for project in self.getProjectFields('WEB_title_or_short'): proj = project[0] p_name = project[1] retProj=[] if (not proj.isArchivedProject() and archived==1) or (proj.isArchivedProject() and archived==2): retProj.append(self.utf8ify(p_name)) - retProj.append(self.utf8ify(proj.getContent('xdata_01'))) + retProj.append(self.utf8ify(proj.getContent('xdata_01'))) + retProj.append(self.thesaurus.lastChangeInThesaurus.get(proj.getId(),'')) retProj.append(self.utf8ify(getattr(proj,'creationTime','20050101000000'))) - retProj.append("|".join([person[1] for person in self.thesaurus.getPersonsFromProject(proj.getId())])) - retProj.append("|".join([person[1] for person in self.thesaurus.getHistoricalPlacesFromProject(proj.getId())])) - retProj.append("|".join([person[1] for person in self.thesaurus.getObjectsFromProject(proj.getId())])) - retProj.append("|".join(self.thesaurus.getTags(proj.getId()))) + retProj.append(";".join([person[1] for person in self.thesaurus.getPersonsFromProject(proj.getId())])) + retProj.append(";".join([person[1] for person in self.thesaurus.getHistoricalPlacesFromProject(proj.getId())])) + retProj.append(";".join([person[1] for person in self.thesaurus.getObjectsFromProject(proj.getId())])) + retProj+=self.thesaurus.getTags(proj.getId(),projectTags) retList.append("\t".join(retProj)) - + + if RESPONSE: + RESPONSE.setHeader('Content-Type', "application/octet-stream") + return "\n".join(retList); def getProjectFields(self,fieldName,date=None,folder=None,sort=None):