version 1.1.2.38, 2012/02/29 19:01:19
|
version 1.1.2.41, 2012/03/13 07:04:24
|
Line 719 class MPIWGRoot(ZSQLExtendFolder):
|
Line 719 class MPIWGRoot(ZSQLExtendFolder):
|
|
|
return ret |
return ret |
|
|
def getAllProjectsAndTagsAsCSV(self,archived=1): |
|
|
def getAllProjectsAndTagsAsCSV(self,archived=1,RESPONSE=None): |
"""alle projekte auch die nicht getaggten""" |
"""alle projekte auch die nicht getaggten""" |
retList=[] |
retList=[] |
|
headers=['projectId','sortingNumber','projectName','scholars','startedAt','completedAt','lastChangeThesaurusAt','lastChangeProjectAt','projectCreatedAt','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'): |
for project in self.getProjectFields('WEB_title_or_short'): |
proj = project[0] |
proj = project[0] |
p_name = project[1] |
p_name = project[1] |
retProj=[] |
retProj=[] |
if (not proj.isArchivedProject() and archived==1) or (proj.isArchivedProject() and archived==2): |
#if (not proj.isArchivedProject() and archived==1) or (proj.isArchivedProject() and archived==2): |
|
retProj.append(self.utf8ify(proj.getId())) |
|
retProj.append(self.utf8ify(proj.getContent('xdata_05'))) |
retProj.append(self.utf8ify(p_name)) |
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.utf8ify(proj.getStartedAt())) |
|
retProj.append(self.utf8ify(proj.getCompletedAt())) |
|
changeDate=self.thesaurus.lastChangeInThesaurus.get(proj.getId(),'') |
|
n = re.sub("[:\- ]","",str(changeDate)) |
|
retProj.append(n) |
retProj.append(self.utf8ify(getattr(proj,'creationTime','20050101000000'))) |
retProj.append(self.utf8ify(getattr(proj,'creationTime','20050101000000'))) |
retProj.append("|".join([person[1] for person in self.thesaurus.getPersonsFromProject(proj.getId())])) |
retProj.append("")#TODO: project created at |
retProj.append("|".join([person[1] for person in self.thesaurus.getHistoricalPlacesFromProject(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.getObjectsFromProject(proj.getId())])) |
retProj.append(";".join([person[1] for person in self.thesaurus.getHistoricalPlacesFromProject(proj.getId())])) |
retProj.append("|".join(self.thesaurus.getTags(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)) |
retList.append("\t".join(retProj)) |
|
|
|
if RESPONSE: |
|
|
|
RESPONSE.setHeader('Content-Disposition','attachment; filename="ProjectsAndTags.tsv"') |
|
RESPONSE.setHeader('Content-Type', "application/octet-stream") |
|
|
return "\n".join(retList); |
return "\n".join(retList); |
|
|
|
|
|
|
|
|
def getProjectFields(self,fieldName,date=None,folder=None,sort=None): |
def getProjectFields(self,fieldName,date=None,folder=None,sort=None): |
"""getListofFieldNames""" |
"""getListofFieldNames""" |
ret=[] |
ret=[] |