--- ECHO_content/ECHO_collection.py 2004/11/29 21:55:29 1.193 +++ ECHO_content/ECHO_collection.py 2005/02/28 20:02:08 1.216 @@ -1,3 +1,4 @@ + """New version of the product started February, 8th. Without scientific classification, use content-type for further classification.""" """Echo collection provides the classes for the ECHO content web-site. @@ -9,9 +10,11 @@ class ECHO_externalLink contains informa """ -from reportlab.pdfgen import canvas -from reportlab.lib.pagesizes import A4 - +try: + from reportlab.pdfgen import canvas + from reportlab.lib.pagesizes import A4 +except: + print "PDF generation will not work" import string @@ -59,7 +62,6 @@ import xml.dom.minidom import urllib import xml.dom.minidom -from ECHO_graphicalOverview import javaHandler,javaScriptMain import ECHO_helpers from ECHO_helpers import * from ECHO_language import * @@ -73,12 +75,10 @@ regexpPage = re.compile(patternPage, re. -def setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight,coordstrs,viewClassification=""): +def setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight,coordstrs=""): """Allegemeine Informationen zu einer ECHO Collection""" - self.viewClassification=viewClassification - self.label = label self.title=title self.description=description @@ -87,22 +87,6 @@ def setECHO_collectionInformation(self,t self.credits=toList(credits) self.weight=weight - coords=[] - #coordinates of for rectangles - - - if coordstrs: - for coordstr in coordstrs: - - try: - temco=coordstr.split(",") - except: - temco=[] - - coords.append(temco) - - - self.coords=coords[0:] class ECHO_copyright(Folder,ECHO_basis): """Copyright informationen""" @@ -127,7 +111,7 @@ class ECHO_copyright(Folder,ECHO_basis): def ECHO_copyright_configForm(self): """change form""" - pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_copyright').__of__(self) + pt=zptFile(self, 'zpt/ChangeECHO_copyright') pt.content_type="text/html" return pt() @@ -143,7 +127,7 @@ class ECHO_copyright(Folder,ECHO_basis): def manage_addECHO_copyrightForm(self): """Form for adding""" - pt=PageTemplateFile('Products/ECHO_content/zpt/AddECHO_copyright.zpt').__of__(self) + pt=zptFile(self, 'zpt/AddECHO_copyright.zpt') return pt() def manage_addECHO_copyright(self, id,title,RESPONSE=None): @@ -168,26 +152,18 @@ class ECHO_layoutTemplate(ZopePageTempla def __init__(self, id, text=None, content_type=None,EchoType=None): self.id = str(id) - - self.ZBindings_edit(self._default_bindings) if text is None: - self._default_content_fn = os.path.join(package_home(globals()), - 'zpt/ECHO_%s_template_standard.zpt'%EchoType) + self._default_content_fn = os.path.join(package_home(globals()),'zpt','ECHO_%s_template_standard.zpt'%EchoType) text = open(self._default_content_fn).read() self.pt_edit(text, content_type) - - """change form""" - def manage_addECHO_layoutTemplateForm(self): """Form for adding""" - pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddECHO_layoutTemplate.zpt')).__of__(self) + pt=zptFile(self, 'zpt/AddECHO_layoutTemplate.zpt') return pt() -from urllib import quote - def manage_addECHO_layoutTemplate(self, EchoType,title=None,REQUEST=None): "Add a Page Template with optional file content." @@ -236,17 +212,16 @@ class ECHO_fullText(ZopePageTemplate,ECH def getPage(self,nr='1'): """get page n""" - dom=xml.dom.minidom.parseString(self()) + #return self().encode('latin-1','ignore') + dom=xml.dom.minidom.parseString(self().encode('utf-8','ignore')) pages=dom.getElementsByTagName('page') - return pages[int(nr)-1].toxml('utf-8') + return pages[int(nr)-1].toxml() # Product registration and Add support manage_addECHO_fullTextForm = PageTemplateFile( 'zpt/AddECHO_fullText.zpt', globals()) -from urllib import quote - def manage_addECHO_fullText(self, id, title=None, text=None, REQUEST=None, submit=None): "Add a Page Template with optional file content." @@ -274,7 +249,7 @@ def manage_addECHO_fullText(self, id, ti u = REQUEST['URL1'] if submit == " Add and Edit ": - u = "%s/%s" % (u, quote(id)) + u = "%s/%s" % (u, urllib.quote(id)) REQUEST.RESPONSE.redirect(u+'/manage_main') return '' @@ -284,7 +259,7 @@ class ECHO_resource(Folder,Persistent,EC security=ClassSecurityInfo() meta_type='ECHO_resource' - viewClassificationList=viewClassificationListMaster +# viewClassificationList=viewClassificationListMaster getSubCols = ECHO_helpers.getSubCols @@ -309,6 +284,7 @@ class ECHO_resource(Folder,Persistent,EC pages=int(parameter.getAttribute('value')) break + tempdir="/tmp/archivesImageServer" if not os.path.exists(tempdir): os.mkdir(tempdir) @@ -321,8 +297,7 @@ class ECHO_resource(Folder,Persistent,EC tmpFn=os.path.split(tmpZip)[1] - - + if RESPONSE: RESPONSE.setHeader("Content-Type","text/html") @@ -518,7 +493,7 @@ class ECHO_resource(Folder,Persistent,EC """Form for changing the startpage""" - pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_resourceStartPage.zpt').__of__(self) + pt=zptFile(self, 'zpt/ChangeECHO_resourceStartPage.zpt') pt.content_type="text/html" return pt() @@ -587,7 +562,7 @@ class ECHO_resource(Folder,Persistent,EC startpage=self.createImageUrl() params="startpage=%s"%startpage - print 'http://xserve02.mpiwg-berlin.mpg.de:18880/echo_nav/storage/downloadExternalXML?index_meta_url=%s&xml_url=%s'%(self.metalink,self.absolute_url()+'/newMetaXML'+urllib.quote('?'+params)) + #print 'http://xserve02.mpiwg-berlin.mpg.de:18880/echo_nav/storage/downloadExternalXML?index_meta_url=%s&xml_url=%s'%(self.metalink,self.absolute_url()+'/newMetaXML'+urllib.quote('?'+params)) ECHO_helpers.urlopen('http://xserve02.mpiwg-berlin.mpg.de:18880/echo_nav/storage/downloadExternalXML?index_meta_url=%s&xml_url=%s'%(self.metalink,self.absolute_url()+'/newMetaXML'+urllib.quote('?'+params))).read() @@ -615,7 +590,7 @@ class ECHO_resource(Folder,Persistent,EC def changeViewerTemplateSetForm(self): """change the viewer template set""" - pt=PageTemplateFile('Products/ECHO_content/zpt/changeResourceViewerTemplateSet').__of__(self) + pt=zptFile(self, 'zpt/changeResourceViewerTemplateSet') return pt() @@ -681,16 +656,16 @@ class ECHO_resource(Folder,Persistent,EC - + security.declarePublic('content_html') def content_html(self): """template fuer content""" return ECHO_basis.content_html(self,'resource') - def getViewClassification(self): - if hasattr(self,'viewClassification'): - return self.viewClassification - else: - return "" +# def getViewClassification(self): +# if hasattr(self,'viewClassification'): +# return self.viewClassification +# else: +# return "" def getFullTextXML(self,noredirect=None): """getFullTextXML; gives the FullText as an XML Document, and if somthing goes wrong.""" @@ -801,7 +776,7 @@ class ECHO_resource(Folder,Persistent,EC return ret def getInstitutionsHTML(self): - """gibt Liste der fšrdernden Institutionen aus""" + """gibt Liste der foerdernden Institutionen aus""" if hasattr(self,'support'): obj=self.support @@ -817,6 +792,8 @@ class ECHO_resource(Folder,Persistent,EC return self.credits else: return [] + + def __init__(self,id,link,metalink,resourceID,title,label,description,contentType,renderingType,copyrightType,responsible,credits,weight,coords): @@ -842,18 +819,9 @@ class ECHO_resource(Folder,Persistent,EC coordsnew=[] self.coords=coordsnew +# self.viewClassification="" - def getCoords(self): - """gibt coordinaten als String zurück und löscht zugleich einträge die keine Koordinaten sind, letzteres zur korrektur der Eingabe der alten version""" - retList=[] - if hasattr(self,'coords'): - for x in self.coords: - if len(x)>1: - retList.append(string.join(x,",")) - return retList - - def getContentType(self): try: @@ -879,34 +847,29 @@ class ECHO_resource(Folder,Persistent,EC if not hasattr(self,'weight'): self.weight="" - pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_resource.zpt').__of__(self) + pt=zptFile(self, 'zpt/ChangeECHO_resource.zpt') return pt() def ECHO_resource_config_main(self): """Main configuration""" - if not hasattr(self,'weight'): self.weight="" - - pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_resource_main.zpt').__of__(self) + pt=zptFile(self, 'zpt/ChangeECHO_resource_main.zpt') return pt() def ECHO_resource_config_coords(self): """Coords configuration """ - - pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_resource_coords.zpt').__of__(self) + pt=zptFile(self, 'zpt/ChangeECHO_resource_coords.zpt') return pt() def ECHO_resource_config_credits(self): """Main configuration""" - - pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_resource_credits.zpt').__of__(self) + pt=zptFile(self, 'zpt/ChangeECHO_resource_credits.zpt') return pt() def ECHO_resource_config_metadata(self): """Main configuration""" - if (hasattr(self,'metadata')) and not (hasattr(self,'metaDataHash')): self.metaDataHash={} self.contentType=self.bib_type @@ -916,14 +879,14 @@ class ECHO_resource(Folder,Persistent,EC DataHash[data_neu]=getattr(self,data)[0:] - pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_resource_metadata.zpt').__of__(self) + pt=zptFile(self, 'zpt/ChangeECHO_resource_metadata.zpt') return pt() def changeECHO_resource_main(self,metalink,link,title,label,description,contentType,renderingType,weight,resourceID,RESPONSE=None): - """Änderung der Properties""" + """Aenderung der Properties""" self.resourceID=resourceID self.title=title self.label=label @@ -940,25 +903,34 @@ class ECHO_resource(Folder,Persistent,EC RESPONSE.redirect('manage_main') - def changeECHO_resource_coords(self,coords,viewClassification,RESPONSE=None): - """Änderung der Properties - coords""" - - if type(coords)==StringType: - coords=[coords] + def changeECHO_resource_coords(self,RESPONSE=None): + """Aenderung der Properties - coords""" + #return self.REQUEST + for area in self.getMapAreas(): + id = area.getId() + if self.REQUEST.has_key('del.'+id): + # delete this area + self._delObject(id) + # return to same menu + if RESPONSE is not None: + RESPONSE.redirect('ECHO_resource_config_coords') + return + # modify this area + coordstring = self.REQUEST.get('coords.'+id, '') + coords = string.split(coordstring, ',') + angle = self.REQUEST.get('angle.'+id, '0') + type = self.REQUEST.get('type.'+id, 'area') + if len(coords) == 4: + area.setCoordString(coordstring) + area.setAngle(angle) + area.setType(type) + # return to main menu + if RESPONSE is not None: + RESPONSE.redirect('manage_main') - try: - coordsnew=[ string.split(x,",") for x in coords] - except: - coordsnew=[] - - self.coords=coordsnew[0:] - self.viewClassification=viewClassification - - if RESPONSE is not None: - RESPONSE.redirect('manage_main') def changeECHO_resource_credits(self,credits,responsible,copyrightType,RESPONSE=None): - """Änderung der Properties""" + """Aenderung der Properties""" self.credits=credits self.responsible=responsible self.copyrightType=copyrightType @@ -997,7 +969,7 @@ class ECHO_resource(Folder,Persistent,EC def getMDValue(self,fieldName,empty=None): - if empty: + if not empty: return self.metaDataHash.get(fieldName,'!!NOT USED HERE in Type: %s'%self.contentType) else: @@ -1029,17 +1001,10 @@ class ECHO_resource(Folder,Persistent,EC self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') return writeMetadata(self.metalink,self.metaDataHash) - def changeECHO_resource(self,metalink,link,title,label,description,contentType,responsible,weight,viewClassification="",coords=None,credits=None,RESPONSE=None): - """Änderung der Properties""" - - try: - coordsnew=[ string.split(x,",") for x in coords] - except: - coordsnew=[] + def changeECHO_resource(self,metalink,link,title,label,description,contentType,responsible,weight,coords=None,credits=None,RESPONSE=None): + """Aenderung der Properties""" - setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight,coordsnew) - self.viewClassification=viewClassification - self.coords=coordsnew[0:] + setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight) self.link=link self.metalink=metalink @@ -1050,40 +1015,13 @@ class ECHO_resource(Folder,Persistent,EC manage_options = Folder.manage_options+( {'label':'Main Config','action':'ECHO_resource_config_main'}, {'label':'Change Metadata','action':'ECHO_resource_config_metadata'}, - {'label':'Change Coords','action':'ECHO_resource_config_coords'}, - {'label':'Add coords','action':'ECHO_graphicEntry'}, + {'label':'Graphic Coords','action':'ECHO_graphicEntry'}, {'label':'Sync Metadata','action':'ECHO_getResourceMD'}, {'label':'Change TemplateSets and Image Viewer','action':'changeViewerTemplateSetForm'}, {'label':'set/change startpage','action':'setStartPageForm'}, {'label':'Copy MD for indexing and search','action':'copySearchFields'}, ) - def getOverview(self): - """overview graphics""" - - return self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['overview'])[0][1] - - def ECHO_graphicEntry(self): - """DO nothing""" - overview = self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['overview']) - if overview: - pt=PageTemplateFile('Products/ECHO_content/zpt/ECHO_draw.zpt').__of__(self) - return pt() - else: - return "NO OVERVIEW GRAPHICS" - - def ECHO_enterCoords(self,coordstr,angle="",RESPONSE=None): - """Enter coords""" - coords=self.coords - temco=coordstr.split(",") - temco.append(angle) - coords.append(temco) - - self.coords=coords[0:] - - if RESPONSE is not None: - RESPONSE.redirect('ECHO_graphicEntry') - def isDefinedInThisSet(self,fields,field): """checks if field is defined in fields""" @@ -1128,7 +1066,8 @@ class ECHO_resource(Folder,Persistent,EC if ret == "": return None else: - return ret + + return ret except: return None @@ -1165,7 +1104,9 @@ class ECHO_resource(Folder,Persistent,EC retdata={} fields=[] fieldlist=self.standardMD.fieldList - + + tags=self.findTagsFromMapping(self.contentType) + self.referencetypes=tags[2] for referenceTypeF in self.referencetypes: if referenceTypeF[1].title.lower() == referenceType.lower(): @@ -1265,7 +1206,7 @@ class ECHO_resource(Folder,Persistent,EC self.REQUEST.SESSION['contentStorage']=metadict['bib_type'] self.REQUEST.SESSION['contentZope']=self.contentType - return PageTemplateFile('Products/ECHO_content/zpt/ECHO_getResourceMDErrorContentType.zpt').__of__(self)() + return zptFile(self, 'zpt/ECHO_getResourceMDErrorContentType.zpt')() self.REQUEST.SESSION['metadict']=metadict @@ -1276,7 +1217,7 @@ class ECHO_resource(Folder,Persistent,EC if template=="yes": - pt=PageTemplateFile('Products/ECHO_content/zpt/ECHO_resourceMD.zpt').__of__(self) + pt=zptFile(self, 'zpt/ECHO_resourceMD.zpt') return pt() @@ -1303,7 +1244,7 @@ class ECHO_resource(Folder,Persistent,EC pdf=self.checkRDF(self.link) if pdf: fh=file(pdf,'r').read() - self.REQUEST.RESPONSE.setHeader('Content-Type','x-Application/pdf') + self.REQUEST.RESPONSE.setHeader('Content-Type','application/pdf') self.REQUEST.RESPONSE.write(fh) self.REQUEST.RESPONSE.close() return @@ -1319,13 +1260,13 @@ class ECHO_resource(Folder,Persistent,EC if sp: return sp[1]() - #prüfen ob irgendwo ein template + #pruefen ob irgendwo ein template if hasattr(self,'startpage_index_template'): return self.startpage_index_template() #generisches template ausgeben - pt=PageTemplateFile('Products/ECHO_content/zpt/ECHO_startpage_index_template_standard.zpt').__of__(self) + pt=zptFile(self, 'zpt/ECHO_startpage_index_template_standard.zpt') pt.content_type="text/html" return pt() @@ -1360,12 +1301,12 @@ Globals.InitializeClass(ECHO_resource) def manage_addECHO_resourceForm(self): """Form for adding a ressource""" - pt=PageTemplateFile('Products/ECHO_content/zpt/AddECHO_resourceForm.zpt').__of__(self) + pt=zptFile(self, 'zpt/AddECHO_resourceForm.zpt') return pt() -def manage_addECHO_resource(self,id,title,label,description,responsible,link,metalink,weight,copyrightType=None,resourceID=None,contentType=None,renderingType=None,credits=None,coords=None,RESPONSE=None): +def manage_addECHO_resource(self,id,title,label,description="",responsible="",link="",metalink="",weight="",copyrightType=None,resourceID=None,contentType=None,renderingType=None,credits=None,coords=None,RESPONSE=None): """addaresource""" newObj=ECHO_resource(id,link,metalink,resourceID,title,label,description,contentType,renderingType,copyrightType,responsible,credits,weight,coords) @@ -1381,7 +1322,7 @@ class ECHO_externalLink(Folder,ECHO_basi security=ClassSecurityInfo() meta_type='ECHO_externalLink' - + security.declarePublic('content_html') def content_html(self): """template fuer content""" return ECHO_basis.content_html(self,'externalLink') @@ -1412,21 +1353,14 @@ class ECHO_externalLink(Folder,ECHO_basi self.coords=[''] - pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_externalLink.zpt').__of__(self) + pt=zptFile(self, 'zpt/ChangeECHO_externalLink.zpt') return pt() def changeECHO_externalLink(self,link,title,label,description,contentType,responsible,weight,coords=None,credits=None,RESPONSE=None): + """Aenderung der Properties""" + setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight) - """Änderung der Properties""" - try: - coordsnew=[ string.split(x,",") for x in coords] - except: - coordsnew=[] - - setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight,coords) - - self.coords=coordsnew[0:] self.link=link if RESPONSE is not None: RESPONSE.redirect('manage_main') @@ -1444,7 +1378,7 @@ class ECHO_externalLink(Folder,ECHO_basi def manage_addECHO_externalLinkForm(self): """Form for external Links""" - pt=PageTemplateFile('Products/ECHO_content/zpt/AddECHO_externalLinkForm.zpt').__of__(self) + pt=zptFile(self, 'zpt/AddECHO_externalLinkForm.zpt') return pt() @@ -1464,7 +1398,7 @@ class ECHO_link(ECHO_externalLink): meta_type="ECHO_link" - + def content_html(self): """template fuer link""" if hasattr(self,"link_template"): @@ -1474,11 +1408,11 @@ class ECHO_link(ECHO_externalLink): def manage_addECHO_linkForm(self): """Form for external Links""" - pt=PageTemplateFile('Products/ECHO_content/zpt/AddECHO_linkForm.zpt').__of__(self) + pt=zptFile(self, 'zpt/AddECHO_linkForm.zpt') return pt() -def manage_addECHO_link(self,id,title,label,description,contentType,responsible,link,weight,coords=None,credits=None,RESPONSE=None): +def manage_addECHO_link(self,id,title,label,description="",contentType="",responsible="",link="",weight="",coords=[],credits=None,RESPONSE=None): """Add an external Link""" newObj=ECHO_link(id,link,title,label,description,contentType,responsible,credits,weight,coords) @@ -1494,7 +1428,7 @@ class ECHO_collection(Folder, Persistent security=ClassSecurityInfo() meta_type='ECHO_collection' - viewClassificationList=viewClassificationListMaster +# viewClassificationList=viewClassificationListMaster displayTypes=displayTypes path="/mpiwg/online/permanent/shipbuilding" @@ -1525,25 +1459,25 @@ class ECHO_collection(Folder, Persistent def changeLabels(self): """change form""" - pt=PageTemplateFile('Products/ECHO_content/zpt/changeLabelsForm').__of__(self) + pt=zptFile(self, 'zpt/changeLabelsForm') pt.content_type="text/html" return pt() def changeTitles(self): """change form""" - pt=PageTemplateFile('Products/ECHO_content/zpt/changeTitleForm').__of__(self) + pt=zptFile(self, 'zpt/changeTitleForm') pt.content_type="text/html" return pt() def changeWeights(self): """change form""" - pt=PageTemplateFile('Products/ECHO_content/zpt/changeWeightForm').__of__(self) + pt=zptFile(self, 'zpt/changeWeightForm') pt.content_type="text/html" return pt() def changeMetaDataLinks(self): """change form""" - pt=PageTemplateFile('Products/ECHO_content/zpt/changeMetaDataLinkForm').__of__(self) + pt=zptFile(self, 'zpt/changeMetaDataLinkForm') pt.content_type="text/html" return pt() def changeAccessRightsCollection(self): @@ -1558,7 +1492,7 @@ class ECHO_collection(Folder, Persistent ret+=resource[1].getId()+" "+argv[resource[1].getId()]+"
" resource[1].changeAccessRightMD(argv[resource[1].getId()]) except: - """not""" + pass return ret def changeMetaDataLinkInCollection(self): @@ -1573,7 +1507,7 @@ class ECHO_collection(Folder, Persistent ret+=resource[1].getId()+" "+argv[resource[1].getId()]+"
" resource[1].metalink=argv[resource[1].getId()][0:] except: - """not""" + pass return ret def changeMetaDataLinkInCollection(self): @@ -1588,7 +1522,7 @@ class ECHO_collection(Folder, Persistent ret+=resource[1].getId()+" "+argv[resource[1].getId()]+"
" resource[1].metalink=argv[resource[1].getId()][0:] except: - """not""" + pass return ret def changeWeightsInCollection(self): @@ -1603,7 +1537,7 @@ class ECHO_collection(Folder, Persistent ret+=resource[1].getId()+" "+argv[resource[1].getId()]+"
" resource[1].weight=argv[resource[1].getId()][0:] except: - """not""" + pass return ret def changeTitlesInCollection(self): @@ -1618,7 +1552,7 @@ class ECHO_collection(Folder, Persistent ret+=resource[1].getId()+" "+argv[resource[1].getId()]+"
" resource[1].title=argv[resource[1].getId()][0:] except: - """not""" + pass return ret def updateCollection(self,RESPONSE=None): @@ -1668,7 +1602,7 @@ class ECHO_collection(Folder, Persistent def changeViewerTemplateSetsForm(self): """change the viewer template set""" - pt=PageTemplateFile('Products/ECHO_content/zpt/changeViewerTemplateSet').__of__(self) + pt=zptFile(self, 'zpt/changeViewerTemplateSet') return pt() def getViewerTemplateSets(self,obj_ids=None,RESPONSE=None): @@ -1693,7 +1627,7 @@ class ECHO_collection(Folder, Persistent def isSelectedViewerTemplateSet(self,obj,id): - """is ausgewählt""" + """is ausgewaehlt""" if self.REQUEST['viewerTemplateSet']==id: return 1 @@ -1717,7 +1651,7 @@ class ECHO_collection(Folder, Persistent """Form for changing the startpage""" - pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_resourceStartPageFolder.zpt').__of__(self) + pt=zptFile(self, 'zpt/ChangeECHO_resourceStartPageFolder.zpt') pt.content_type="text/html" return pt() @@ -1768,7 +1702,7 @@ class ECHO_collection(Folder, Persistent def reloadMetaDataFromStorageWarning(self,RESPONSE=None): """warning""" - pt=PageTemplateFile('Products/ECHO_content/zpt/reloadMetaDataFromStorageWarning.zpt').__of__(self) + pt=zptFile(self, 'zpt/reloadMetaDataFromStorageWarning.zpt') pt.content_type="text/html" return pt() @@ -1806,16 +1740,16 @@ class ECHO_collection(Folder, Persistent """nothing""" return retStr - def getViewClassification(self): - if hasattr(self,'viewClassification'): - return self.viewClassification - else: - return "" +# def getViewClassification(self): +# if hasattr(self,'viewClassification'): +# return self.viewClassification +# else: +# return "" def createRessourcesFromXMLForm(self): """form""" - pt=PageTemplateFile('Products/ECHO_content/zpt/createRessourcesFromXMLForm.zpt').__of__(self) + pt=zptFile(self, 'zpt/createRessourcesFromXMLForm.zpt') return pt() def createRessourcesFromXML(self,fileupload): @@ -1832,7 +1766,8 @@ class ECHO_collection(Folder, Persistent ret+="

"+label+"

" manage_addECHO_resource(self,id,label.encode('ascii'),label.encode('ascii'),"","","",link.encode('ascii'),"","") return ret - + + security.declarePublic('getImageTag') def getImageTag(self): """GetTag""" try: @@ -1862,130 +1797,38 @@ class ECHO_collection(Folder, Persistent except: return "" - def getCollectionTreeXML(self): + def getCollectionTreeXML(self,pwstr=None): """Tree as XML""" - def addPassWd(str): + def addPassWd(str,pwstr=None): """adds a user/passwd to an url""" - txt2=re.sub(r"(http://)(.*?)","\g<1>www:3333@\g<2>",str) + if pwstr: + txt2=re.sub(r"(http://)(.*?)","\g<1>%s@\g<2>"%pwstr,str) + else: + txt2=re.sub(r"(http://)(.*?)","\g<1>www:3333@\g<2>",str) return txt2 - def getCollection(object,depth=0): + def getCollection(object,depth=0,pwstr=None): depth+=1 collections="" for entry in object.__dict__.keys(): element=getattr(object,entry) try: if element.meta_type in ["ECHO_collection","ECHO_group"]: - collections+="" + collections+="" collections+=getCollection(element,depth)+"\n" except: """nothing""" return collections ret="""""" - return ret+""+getCollection(self)+"" + return ret+""+getCollection(self,pwstr=pwstr)+"" - def createJavaScript(self): - """OLD CreateJava""" - ret=javaScriptMain - - dynamical="\n" - for ob in self.getGraphicCoords(): - if ob[4][4] == "": - dynamical+="""Coords.push(new Coord('%s', Img, %s));\n"""%(ob[1],ob[0]) - else: - dynamical+="""Coords.push(new Coord('%s', Img, %s));//%s\n"""%(ob[1],ob[0],ob[4][4]) - dynamical+="ShowArrow(new getObj('i.%s'),Img,%s);\n"%(ob[1],ob[0]) - ret+=javaHandler%dynamical - return ret - - def createJSAreas(self): + def createAllJSAreas(self): """create area calls for JavaScript""" - dynamical="\n" - for ob in self.getGraphicCoords(): - if ob[5] == "area": - dynamical+="""addArea('%s', 'overview', %s, 'area');\n"""%(ob[1],ob[0]) - else: - dynamical+="""addArea('%s', 'overview', %s, 'arrow');\n"""%(ob[1],ob[0]) - return dynamical - - def createMapHead(self): - """create javascript include and script tags for head""" - pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/ECHO_content_map_frag_js')).__of__(self) - return pt() - - def createMapImg(self): - """generate img-tag for map""" - bt = BrowserCheck(self) - tag = "" - src = self.REQUEST['URL1'] + "/overview" - if bt.isN4: - tag += ''%src - else: - tag += ''%src - return tag - - def createMapLink(self, ob, text=None): - """generate map link""" - bt = BrowserCheck(self) - id = ob[1] - link = ob[1] - if text == None: - text = ob[2] - tag = "" - if bt.isN4: - tag += '" - else: - tag = '" - return tag - - def createMapAux(self, ob, arrowsrc="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?dw=15&fn=icons/pfeil"): - """generate map link image, text and other stuff""" - id = ob[1] - link = ob[1] - vtype = ob[5] - ctype = ob[3].contentType - bt = BrowserCheck(self) - tag = "" + areas = self.getAllMapAreas() + return self.createJSAreas(areas) - if bt.isN4: - tag += ''%(id,id,id) - if vtype == "view point": - rot = ob[4][4] - tag += ''%(link,arrowsrc,rot) - else: - tag += ''%(id,id,id,link) - if vtype == "view point": - rot = ob[4][4] - if bt.isIEWin and bt.versIE > 5: - tag += ''%(id,arrowsrc,rot,arrowsrc,rot) - else: - tag += ''%(id,arrowsrc,rot) - else: - if bt.isIEWin: - tag += '
3: - coord=coordtemp[0:4] - label="" - vc="" - if hasattr(object,'label') and not object.label=="": - label=object.label - elif hasattr(object,'title') and not object.title=="": - label=object.title - else: - label=object.getId() - if object.viewClassification != "": - vc=object.viewClassification - else: - if len(coordtemp) > 4 and coordtemp[4] != "": - vc="view point" - else: - vc="area" - ids.append([string.join(coord,", "),object.getId(),label,object,coordtemp,vc]) - return ids - + def hl_add_js(self): + """javascript""" + return sendFile(self, 'js/hl_add.js', 'text/plain') + def getAllMapAreas(self): + """Give list of coordinates""" + mapColTypes=['ECHO_collection','ECHO_resource'] + areas=[] + for entry in self.getSubCols(subColTypes=mapColTypes): + object=entry + areas.extend(object.getMapAreas()) + return areas + + + def deleteMapAreas(self): + """deletes all map areas from this object""" + for obs in self.ZopeFind(self, obj_metatypes=['MapArea'], search_sub=1): + ob = obs[1] + id = ob.id + parent = ob.aq_parent + print "deleting: ", ob.id + parent._delObject(id) + return "Done" getSubCols = ECHO_helpers.getSubCols @@ -2276,11 +2060,11 @@ Globals.InitializeClass(ECHO_collection) def manage_addECHO_collectionForm(self): """Add collection form""" - pt=PageTemplateFile('Products/ECHO_content/zpt/AddECHO_collectionForm.zpt').__of__(self) + pt=zptFile(self, 'zpt/AddECHO_collectionForm.zpt') return pt() -def manage_addECHO_collection(self,id,title,label,description,contentType,responsible,weight,sortfield,coords="",secondaryLinkTitle="",secondaryLink="",credits=None,RESPONSE=None,imageTag="",bgcolour=""): +def manage_addECHO_collection(self,id,title,label,description="",contentType="",responsible="",weight=0,sortfield="weight",coords="",secondaryLinkTitle="",secondaryLink="",credits=None,RESPONSE=None,imageTag="",bgcolour=""): """add a echo collection""" @@ -2299,7 +2083,7 @@ class ECHO_group(ECHO_collection): manage_options = Folder.manage_options+( {'label':'Main Config','action':'ECHO_group_config'}, {'label':'Rerender Links','action':'ECHO_rerenderLinksMDWarning'}, - {'label':'Graphics','action':'ECHO_graphicEntry'}, + {'label':'Graphic Coords','action':'ECHO_graphicEntry'}, ) security.declareProtected('View','index_html') @@ -2344,7 +2128,7 @@ class ECHO_group(ECHO_collection): elif hasattr(self,'main_index_template'): return self.main_index_template() - pt=PageTemplateFile('Products/ECHO_content/zpt/ECHO_main_index_template_standard.zpt').__of__(self) + pt=zptFile(self, 'zpt/ECHO_main_index_template_standard.zpt') pt.content_type="text/html" return pt() @@ -2360,11 +2144,11 @@ class ECHO_group(ECHO_collection): if not hasattr(self,'coords'): self.coords=[] - pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_group.zpt').__of__(self) + pt=zptFile(self, 'zpt/ChangeECHO_group.zpt') return pt() def changeECHO_group(self,title,label,description,contentType,responsible,weight,secondaryLink,secondaryLinkTitle,credits=None,sortfield="weight",coords=None,RESPONSE=None,imageTag="",bgcolour="",logo=""): - """Änderung der Properties""" + """Aenderung der Properties""" self.secondaryLink=secondaryLink self.secondaryLinkTitle=secondaryLinkTitle @@ -2372,14 +2156,7 @@ class ECHO_group(ECHO_collection): self.bgcolour=bgcolour self.logo=logo - if coords: - coordsnew=[ string.split(x,",") for x in coords] - self.coords=coordsnew[0:] - else: - coordsnew=None - self.coords=None - - setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight,coordsnew) + setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight) @@ -2395,6 +2172,7 @@ class ECHO_group(ECHO_collection): except: return "ECHO_groups" + security.declarePublic('content_html') def content_html(self): """template fuer content""" return ECHO_basis.content_html(self,'group') @@ -2403,7 +2181,7 @@ class ECHO_group(ECHO_collection): def manage_addECHO_groupForm(self): """Add group form""" - pt=PageTemplateFile('Products/ECHO_content/zpt/AddECHO_groupForm.zpt').__of__(self) + pt=zptFile(self, 'zpt/AddECHO_groupForm.zpt') return pt() @@ -2576,7 +2354,26 @@ class ECHO_root(Folder,Persistent,Implic meta_type="ECHO_root" - ###CDLI adds -> have to be removed + def printer(self,txt): + print txt + print txt[2] + print txt[2].getImageTag() + print "HO" + return txt[2].getImageTag() + + def printer2(self,txt): + print txt + + + def item2(self,txt): + return txt[2] + + def getContentOverviewTemplate(self): + """produces overview template with macro""" + pt = zptObjectOrFile(self, 'content_overview_template') + return pt + + ###Cdli adds -> have to be removed def getTablet(self,item): #print "getTablet" try: @@ -2589,8 +2386,17 @@ class ECHO_root(Folder,Persistent,Implic ###END CDLI add + def URLquote(self, text): + """urllib.quote fuer Michael""" + return urllib.quote(text) + + def checkResource(self,id): """checks if a resource is in the tree, gives back none or list of resources""" + if not id: + id="" + splitted=id.split("/") + id=splitted[len(splitted)-1] if hasattr(self,"_v_checkResource") and self._v_checkResource.has_key(id): #existiert ein cache und id ist bereits drin? return self._v_checkResource[id] @@ -2619,7 +2425,7 @@ class ECHO_root(Folder,Persistent,Implic def generateFromRDFForm(self): """change form""" - pt=PageTemplateFile('Products/ECHO_content/zpt/generateFromRDFForm').__of__(self) + pt=zptFile(self, 'zpt/generateFromRDFForm') pt.content_type="text/html" return pt() @@ -2731,12 +2537,12 @@ class ECHO_root(Folder,Persistent,Implic ret+=resource[1].getId()+" "+argv[resource[1].getId()]+"
" resource[1].weight=argv[resource[1].getId()][0:] except: - """not""" + pass return ret def changeWeights(self): """change form""" - pt=PageTemplateFile('Products/ECHO_content/zpt/changeWeightForm').__of__(self) + pt=zptFile(self, 'zpt/changeWeightForm') pt.content_type="text/html" return pt() getSubCols = ECHO_helpers.getSubCols @@ -2753,7 +2559,7 @@ class ECHO_root(Folder,Persistent,Implic def reloadMetaDataFromStorageWarning(self,RESPONSE=None): """warning""" - pt=PageTemplateFile('Products/ECHO_content/zpt/reloadMetaDataFromStorageWarning.zpt').__of__(self) + pt=zptFile(self, 'zpt/reloadMetaDataFromStorageWarning.zpt') pt.content_type="text/html" return pt() @@ -2794,7 +2600,7 @@ class ECHO_root(Folder,Persistent,Implic def getBibTag(self,tag,content): - """get field tag für index-meta-generation""" + """get field tag for index-meta-generation""" if not content or content=="": return "" ret="<%s>"%tag @@ -2811,10 +2617,12 @@ class ECHO_root(Folder,Persistent,Implic return getattr(found,field).decode('ascii','ignore') except: return "" - + + security.declarePublic('getImageTag') def getImageTag(self): """needed by main_template""" return "" + secondaryLink="" #needed by main_template secondaryLinkTitle="" #needed by main_template @@ -2932,7 +2740,7 @@ class ECHO_root(Folder,Persistent,Implic """nothing""" return retStr - mediaTypes=['all','text','images','sound','video'] # konfigurierbar in neuer version über echoroot?? + mediaTypes=['all','text','images','sound','video'] # konfigurierbar in neuer version ueber echoroot?? def mediaTypeSelector_HTML(self,selected=None): """give type selector""" @@ -2972,6 +2780,11 @@ class ECHO_root(Folder,Persistent,Implic return "changed all contenttypes in: "+self.title + def repairAllCoords(self): + """updates map coordinates on the same and sublevels""" + return repairCoords(self) + + def patchViewClassification(self,obj=None): """setze viewClassification heuristisch""" @@ -3006,24 +2819,17 @@ class ECHO_root(Folder,Persistent,Implic def deleteCache(self,obj=None,RESPONSE=None): """setze alle collections auf cache = CacheManager""" - - if not obj: obj = self - entries=obj.ZopeFind(obj,search_sub=1) - for entry in entries: if hasattr(entry[1],'_v_hash'): entry[1]._v_hash=None - - - return "changed all CM in: "+self.title - + security.declarePublic('ECHO_newViewerLink') def ECHO_newViewerLink(self,obj=None): """change links (:86 faellt weg)""" @@ -3094,7 +2900,7 @@ class ECHO_root(Folder,Persistent,Implic if self.checkRef(ref): if pn: - link.setAttribute("href",self.aq_parent.absolute_url()+"/references?id="+ref+"&p="+pn) + link.setAttribute("href",self.aq_parent.absolute_url()+"/references?id="+ref+"&page="+pn) else: link.setAttribute("href",self.aq_parent.absolute_url()+"/references?id="+ref) @@ -3373,7 +3179,7 @@ def manage_addECHO_root(self,id,title,RE def manage_addECHO_rootForm(self): """Nothing yet""" - pt=PageTemplateFile('Products/ECHO_content/zpt/AddECHO_root.zpt').__of__(self) + pt=zptFile(self, 'zpt/AddECHO_root.zpt') return pt() class ECHO_copyrightType(Folder,ECHO_basis): @@ -3394,7 +3200,7 @@ class ECHO_copyrightType(Folder,ECHO_bas def ECHO_copyrightType_config_mainForm(self): """change form""" - pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_copyrightType').__of__(self) + pt=zptFile(self, 'zpt/ChangeECHO_copyrightType') pt.content_type="text/html" return pt() @@ -3409,7 +3215,7 @@ class ECHO_copyrightType(Folder,ECHO_bas def manage_addECHO_copyrightTypeForm(self): """Form for adding a ressource""" - pt=PageTemplateFile('Products/ECHO_content/zpt/AddECHO_copyrightTypeForm.zpt').__of__(self) + pt=zptFile(self, 'zpt/AddECHO_copyrightTypeForm.zpt') return pt() @@ -3466,7 +3272,7 @@ class ECHO_partner(Image,Persistent,ECHO """Main configuration""" if not hasattr(self,'url'): self.url="" - pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_partner.zpt').__of__(self) + pt=zptFile(self, 'zpt/ChangeECHO_partner.zpt') return pt() @@ -3525,7 +3331,7 @@ class ECHO_linkList(ZopePageTemplate,ECH def changeECHO_linkListWeightForm(self): """change""" - pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_linkListTemplate.zpt').__of__(self) + pt=zptFile(self, 'zpt/ChangeECHO_linkListTemplate.zpt') return pt() def changeECHO_linkListWeight(self,contentType,label,RESPONSE=None): @@ -3563,11 +3369,9 @@ class ECHO_linkList(ZopePageTemplate,ECH def manage_addECHO_linkListForm(self): """Form for adding""" - pt=PageTemplateFile('Products/ECHO_content/zpt/AddECHO_linkListTemplate.zpt').__of__(self) + pt=zptFile(self, 'zpt/AddECHO_linkListTemplate.zpt') return pt() -from urllib import quote - def manage_addECHO_linkList(self, id, label,contentType=0,title=None, text=None, REQUEST=None, submit=None): @@ -3600,7 +3404,7 @@ def manage_addECHO_linkList(self, id, la u = REQUEST['URL1'] if submit == " Add and Edit ": - u = "%s/%s" % (u, quote(id)) + u = "%s/%s" % (u, urllib.quote(id)) REQUEST.RESPONSE.redirect(u+'/manage_main') return '' @@ -3630,7 +3434,7 @@ class ECHO_support(Folder,ECHO_basis): def ECHO_support_configForm(self): """change form""" - pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_support').__of__(self) + pt=zptFile(self, 'zpt/ChangeECHO_support') pt.content_type="text/html" return pt() @@ -3644,7 +3448,7 @@ class ECHO_support(Folder,ECHO_basis): def manage_addECHO_supportForm(self): """Form for adding""" - pt=PageTemplateFile('Products/ECHO_content/zpt/AddECHO_support.zpt').__of__(self) + pt=zptFile(self, 'zpt/AddECHO_support.zpt') return pt() def manage_addECHO_support(self, id,institutions=None,RESPONSE=None): @@ -3696,7 +3500,7 @@ class ECHO_institution(Image,Persistent, """Main configuration""" if not hasattr(self,'url'): self.url="" - pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_institution.zpt').__of__(self) + pt=zptFile(self, 'zpt/ChangeECHO_institution.zpt') return pt() @@ -3739,3 +3543,42 @@ def manage_addECHO_institution(self, id, REQUEST.RESPONSE.redirect('%s/manage_main' % url) return id +def repairCoords(self): + """updates map coordinates to new MapArea objects""" + msg = "" + for cols in self.ZopeFind(self, obj_metatypes=['ECHO_collection','ECHO_resource'], search_sub=1): + col = cols[1] + if not hasattr(col, 'coords'): + continue + print "fixing: ", col.id + msg += "fixing: "+col.id+"\n" + coords = col.coords + if len(coords) > 0: + # delete old MapAreas + for areas in self.ZopeFind(col, obj_metatypes=['MapArea']): + #area = areas[1] + id = areas[0] + print " deleting: ", id + msg += " deleting: "+id+"\n" + col._delObject(id) + # add new MapAreas + areacnt = 0 + for coord in coords: + if len(coord) < 4: + continue + type = col.viewClassification + if type == 'view point': + type = 'arrow' + if type is None: + if len(coord) > 4: + type = 'arrow' + else: + type = 'area' + newid = "a%02d"%areacnt + areacnt += 1 + area = MapArea(newid, coord, type=type) + print " adding: ", newid + msg += " adding: "+newid+"\n" + col.addMapArea(area) + msg += "\nDone!" + return msg