Mercurial > hg > MPIWGThesaurus
changeset 17:8e2ddcef1e8d
overviews
author | dwinter |
---|---|
date | Fri, 27 Jan 2012 14:48:02 +0100 |
parents | c8f78f50e097 |
children | 8cbb34593ca9 |
files | .pydevproject MPIWGThesaurus.py zpt/manageMPIWGThesaurus.zpt |
diffstat | 3 files changed, 104 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/.pydevproject Wed Jan 18 19:54:03 2012 +0100 +++ b/.pydevproject Fri Jan 27 14:48:02 2012 +0100 @@ -2,7 +2,7 @@ <?eclipse-pydev version="1.0"?> <pydev_project> -<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">python2.4</pydev_property> +<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">python2.4 - zope</pydev_property> <pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.4</pydev_property> <pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH"> <path>/MPIWGThesaurus</path>
--- a/MPIWGThesaurus.py Wed Jan 18 19:54:03 2012 +0100 +++ b/MPIWGThesaurus.py Fri Jan 27 14:48:02 2012 +0100 @@ -26,7 +26,21 @@ import random import urllib2 import urllib +from Ft.Lib.DistExt.ImageHlp import Array +from aetypes import IsType + +class projectHolder: + projectHolder="" + projectName="" + projectID="" + persons="" + tags={} + + def __init__(self,ID): + self.projectID=ID + self.tags={} + #Entry beschreibt jeweils einen Tag mit dem Namen "title", entries enthaelt eine Liste von Subtags (der Klasse Entry), die diesem Tag untergeordnet sind. class Entry: """publicClass""" @@ -220,6 +234,83 @@ redirect(RESPONSE,'manage_main') + def getProjectsAndTags(self): + """projekte und tags""" + + + projectTags={} + for tag in self.tags.keys(): + logging.debug("getProjectsAndTags:"+tag) + # <div class="level1_projects" tal:repeat="proj + # python:here.getProjectsWithTag('approaches',here.getTitle(level1))"><a tal:attributes="href + # python:proj[0]"><span tal:content="python:proj[1]">my proj</span><tal:x define="person python:proj[2]"><span + # class="person_projects" tal:content="person"/></tal:x></a></div> + #</div> + + for subTag in self.tags.get(tag): + projs = self.getProjectsWithTag(tag,subTag) + if not isinstance(projs, ListType): + projs=[projs] + + for proj in projs: + + projectID=proj[0] + logging.debug("PTS"+repr(projectTags)) + project=projectTags.get(projectID,projectHolder(projectID)) + project.projectName=proj[1] + project.persons=proj[2] + logging.debug(project) + logging.debug(tag) + logging.debug("PROTS"+repr(project.tags)) + tagsOfType=project.tags.get(tag,OOSet()) + logging.debug(tagsOfType) + tagsOfType.add(subTag.decode('utf-8')) + + logging.debug("Adding %s to %s"%(subTag,projectID)) + project.tags[tag]=tagsOfType + + projectTags[projectID]=project + logging.debug("Saved %s to %s"%(repr(list(tagsOfType)),projectID)) + logging.debug(projectTags) + + + + return projectTags + + def getProjectsAndTagsTSV(self): + """get the projects as tab""" + ret="" + + #genereate headers + headers=['date','projectPath','projectName','researchers resp'] + headers.extend(list(self.tags.keys())) + ret+="\t".join(headers)+"\n" + + projectTags = self.getProjectsAndTags() + for projectID in projectTags.keys(): + retarray=[] + splitted = projectID.split("/") # hiern nur die eingetliche ID ohne den Pfad + if len(splitted)>0: + projectIDShort=splitted[-1] + retarray.append(self.lastChangeInThesaurus.get(projectIDShort,'')) + else: + retarray.append('') + retarray.append(projectID) + project = projectTags.get(projectID) + retarray.append(project.projectName) + retarray.append(project.persons) + + + + for tagType in self.tags.keys(): + tags = project.tags.get(tagType,['']) + retarray.append(";".join(tags)) + + + ret+="\t".join(retarray)+"\n" + + return ret + def getLogpath(self): return getattr(self,"logpath",self.logpathDefault) @@ -546,6 +637,7 @@ return self.levelFormatted(level1_entries=entries,type=formatType) def getEntries(self,entry): + logging.debug("GETENTRY:"+repr(entry)) return entry.entries #nimmt ein eine Text der Form @@ -1448,6 +1540,10 @@ from time import gmtime,strftime + + + + fl = open(self.getLogpath(),"a") person = self.REQUEST.AUTHENTICATED_USER.getId() @@ -1457,6 +1553,10 @@ fl.flush() fl.close() + lastChangeInThesaurus = getattr(self,'lastChangeInThesaurus',OOBTree()) + lastChangeInThesaurus.update({projectID:date}) + self.lastChangeInThesaurus=lastChangeInThesaurus + def redirect(RESPONSE,url): """mache ein redirect mit einem angehaengten time stamp um ein reload zu erzwingen"""
--- a/zpt/manageMPIWGThesaurus.zpt Wed Jan 18 19:54:03 2012 +0100 +++ b/zpt/manageMPIWGThesaurus.zpt Fri Jan 27 14:48:02 2012 +0100 @@ -7,6 +7,9 @@ <li><a href="getPersonsWithProjectIDs?check=bool:True">Hole all Personen mit ProjectIDs, raeumt zu gleich den Cache Persone-->ProjectID auf</a></li> <li><a href="rearangePersonIDsHTML">Ordne neue IDs vorhandenen Personen zu, insbesondere ersetze temporaere IDs durch GND oder andere,</a></li> <li><a href="getUnifyPersonsList">Ordne GND ids zu, falls bisher IDs aus anderen Kontexten vergeben wurden.</a></li> + +<h3>Overview</h3> +<li><a href="getProjectsAndTagsTSV">Uebersicht ueber alle vergebenenen Tags (TAB-getrennte Liste) </a></li> </ul> </body> </html> \ No newline at end of file