--- ECHO_content/ECHO_collection.py 2004/11/28 21:56:07 1.191 +++ ECHO_content/ECHO_collection.py 2004/12/02 17:04:15 1.197 @@ -9,7 +9,15 @@ class ECHO_externalLink contains informa """ +try: + from reportlab.pdfgen import canvas + from reportlab.lib.pagesizes import A4 +except: + print "PDF generation will not work" + + import string +import tempfile import re import os import OFS.Image @@ -121,7 +129,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() @@ -137,7 +145,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): @@ -177,11 +185,9 @@ class ECHO_layoutTemplate(ZopePageTempla 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." @@ -239,8 +245,6 @@ class ECHO_fullText(ZopePageTemplate,ECH 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." @@ -268,10 +272,11 @@ 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 '' + class ECHO_resource(Folder,Persistent,ECHO_basis): """ECHO Ressource""" security=ClassSecurityInfo() @@ -283,6 +288,91 @@ class ECHO_resource(Folder,Persistent,EC security.declareProtected('View','index_html') + + + security.declareProtected('View','createPDF') + def createPDF(self,RESPONSE=None,local=None,dpi=150): + """erzeuge pdf file""" + pages=1 + dpi=float(dpi) + imagePath=self.getImagePath().replace("/mpiwg/online","") + + + image="http://nausikaa2.mpiwg-berlin.mpg.de/digitallibrary/servlet/Scaler?fn="+imagePath+"&dw=%i&dh=%i&pn=%i" + xmlInfo="http://nausikaa2.mpiwg-berlin.mpg.de/digitallibrary/dlInfo-xml.jsp?fn="+imagePath + + dom=xml.dom.minidom.parse(urllib.urlopen(xmlInfo)) + for parameter in dom.getElementsByTagName('parameter'): + if parameter.getAttribute('name')=="pt": + pages=int(parameter.getAttribute('value')) + break + + + tempdir="/tmp/archivesImageServer" + if not os.path.exists(tempdir): + os.mkdir(tempdir) + + tmpPath=tempfile.mkdtemp(dir=tempdir) + + + tmpZip=tempfile.mktemp(dir=tempdir) + + tmpFn=os.path.split(tmpZip)[1] + + + + + if RESPONSE: + RESPONSE.setHeader("Content-Type","text/html") + RESPONSE.write("

I am creating the pdf

") + txt="

1. step: getting the images( %i pages)

"%pages + RESPONSE.write(txt) + + c=canvas.Canvas(tmpZip) + for i in range(1,pages+1): + if RESPONSE: + RESPONSE.write(str("

Get Page: %i
\n"%i)) + faktor=dpi/72.0 + + fn=tmpPath+"/%i"%i + + width,height=A4 + #print image%(width*faktor,height*faktor,i) + url=urllib.urlopen(image%(width*faktor,height*faktor,i)).read() + fh=file(fn,"w") + fh.write(url) + fh.close() + + + + c.drawImage(fn,0,0,width=width,height=height) + c.showPage() + c.save() + if RESPONSE: + RESPONSE.write("

finished
\n") + + if RESPONSE: + len=os.stat(tmpZip)[6] + downloadUrl=self.absolute_url()+"/downloadPDF" + RESPONSE.write("""

Click here for download ( %i Byte)

\n"""%(tmpFn,len)) + RESPONSE.write("""

The file will be stored for a while, you can download it later, the URL is:

+

%s?fn=%s\n"""%(tmpFn,downloadUrl,tmpFn)) + RESPONSE.close() + + + def downloadPDF(self,fn): + """download prepared set""" + filename="/tmp/archivesImageServer/"+fn + namePDF=self.getId()+".pdf" + self.REQUEST.RESPONSE.setHeader("Content-Disposition","""attachement; filename="%s" """%namePDF) + self.REQUEST.RESPONSE.setHeader("Content-Type","application/octet-stream") + len=os.stat(filename)[6] + self.REQUEST.RESPONSE.setHeader("Content-Length",len) + images=file(filename).read() + self.REQUEST.RESPONSE.write(images) + self.REQUEST.RESPONSE.close() + + def getRDF(self,urn=None): """rdf""" ret=getRDFDescription(self,self.link,urn=urn) @@ -426,7 +516,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() @@ -523,7 +613,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() @@ -636,8 +726,11 @@ class ECHO_resource(Folder,Persistent,EC else: return "no fulltext available" - - def getImageView(self,noredirect=None): + def getImagePath(self): + """gibt pfad zum image aus""" + return self.getImageView(noredirect="yes",onlyPath="yes") + + def getImageView(self,noredirect=None,onlyPath=None): """getImages; give Imageviewr and if somthing goes wrong.""" try: fh=ECHO_helpers.urlopen(self.metalink) @@ -656,7 +749,10 @@ class ECHO_resource(Folder,Persistent,EC self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') self.REQUEST.RESPONSE.redirect(imageurl) else: - return imageurl + if not onlyPath: + return imageurl + else: + return archivepath+"/"+imagetemp except: if not noredirect: @@ -703,7 +799,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 @@ -719,6 +815,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): @@ -744,18 +842,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: @@ -781,34 +870,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 @@ -818,14 +902,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 @@ -842,25 +926,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 @@ -932,7 +1025,7 @@ class ECHO_resource(Folder,Persistent,EC 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""" + """Aenderung der Properties""" try: coordsnew=[ string.split(x,",") for x in coords] @@ -952,8 +1045,8 @@ 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':'Edit Coords','action':'ECHO_resource_config_coords'}, + {'label':'Change Coords','action':'ECHO_graphicEntry'}, {'label':'Sync Metadata','action':'ECHO_getResourceMD'}, {'label':'Change TemplateSets and Image Viewer','action':'changeViewerTemplateSetForm'}, {'label':'set/change startpage','action':'setStartPageForm'}, @@ -962,14 +1055,13 @@ class ECHO_resource(Folder,Persistent,EC 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) + pt=zptFile(self, 'zpt/ECHO_draw.zpt') return pt() else: return "NO OVERVIEW GRAPHICS" @@ -1167,7 +1259,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 @@ -1178,7 +1270,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() @@ -1190,7 +1282,7 @@ class ECHO_resource(Folder,Persistent,EC return getattr(self,item) def checkRDF(self,path): - """check if pdf behind path""" + """check if pdf in the path""" try: for fileName in os.listdir(path): if os.path.splitext(fileName)[1]==".pdf": @@ -1205,7 +1297,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 @@ -1221,13 +1313,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() @@ -1262,7 +1354,7 @@ 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() @@ -1314,13 +1406,13 @@ 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): - """Änderung der Properties""" + """Aenderung der Properties""" try: coordsnew=[ string.split(x,",") for x in coords] except: @@ -1346,7 +1438,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() @@ -1376,7 +1468,7 @@ 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() @@ -1427,25 +1519,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): @@ -1570,7 +1662,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): @@ -1595,7 +1687,7 @@ class ECHO_collection(Folder, Persistent def isSelectedViewerTemplateSet(self,obj,id): - """is ausgewählt""" + """is ausgewaehlt""" if self.REQUEST['viewerTemplateSet']==id: return 1 @@ -1619,7 +1711,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() @@ -1670,7 +1762,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() @@ -1717,7 +1809,7 @@ class ECHO_collection(Folder, Persistent 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): @@ -1779,7 +1871,7 @@ class ECHO_collection(Folder, Persistent element=getattr(object,entry) try: if element.meta_type in ["ECHO_collection","ECHO_group"]: - collections+="" + collections+="" collections+=getCollection(element,depth)+"\n" except: """nothing""" @@ -1802,19 +1894,30 @@ class ECHO_collection(Folder, Persistent ret+=javaHandler%dynamical return ret - def createJSAreas(self): + def newMapArea(self, id, coords=None): + """returns a new MapArea""" + if coords is None: + coords = [0,0,0,0] + return MapArea(id, coords) + + def createJSAreas(self, areas): """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]) + for ob in areas: + if ob.isTypeArrow(): + dynamical+="""addArea('%s', 'overview', %s, 'arrow');\n"""%(ob.getFullId(),ob.getCoordString()) else: - dynamical+="""addArea('%s', 'overview', %s, 'arrow');\n"""%(ob[1],ob[0]) + dynamical+="""addArea('%s', 'overview', %s, 'area');\n"""%(ob.getFullId(),ob.getCoordString()) return dynamical + def createAllJSAreas(self): + """create area calls for JavaScript""" + areas = self.getAllMapAreas() + return self.createJSAreas(areas) + 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) + pt=zptFile(self, 'zpt/ECHO_content_map_frag_js') return pt() def createMapImg(self): @@ -1831,46 +1934,46 @@ class ECHO_collection(Folder, Persistent def createMapLink(self, ob, text=None): """generate map link""" bt = BrowserCheck(self) - id = ob[1] - link = ob[1] - if text == None: - text = ob[2] + id = ob.getFullId() + link = ob.getLinkId() + if text is None: + text = ob.getLabel() + if text is None: + text = "link" 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) + id = ob.getFullId() + link = ob.getLinkId() + tiptext = ob.getText() tag = "" if bt.isN4: tag += ''%(id,id,id) - if vtype == "view point": - rot = ob[4][4] + if ob.isTypeArrow(): + rot = ob.angle tag += ''%(link,arrowsrc,rot) else: tag += ''%(id,id,id,link) - if vtype == "view point": - rot = ob[4][4] + if ob.isTypeArrow(): + rot = ob.angle if bt.isIEWin and bt.versIE > 5: tag += ''%(id,arrowsrc,rot,arrowsrc,rot) else: @@ -1880,9 +1983,8 @@ class ECHO_collection(Folder, Persistent 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 + 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" + + def repairCoords(self): + """updates map coordinates to new class 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 getSubCols = ECHO_helpers.getSubCols @@ -2178,7 +2287,7 @@ 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() @@ -2246,7 +2355,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() @@ -2262,11 +2371,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 @@ -2305,7 +2414,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() @@ -2521,7 +2630,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() @@ -2638,7 +2747,7 @@ class ECHO_root(Folder,Persistent,Implic 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 @@ -2655,7 +2764,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() @@ -2696,7 +2805,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 @@ -2834,7 +2943,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""" @@ -2926,6 +3035,7 @@ class ECHO_root(Folder,Persistent,Implic + security.declarePublic('ECHO_newViewerLink') def ECHO_newViewerLink(self,obj=None): """change links (:86 faellt weg)""" @@ -3275,7 +3385,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): @@ -3296,7 +3406,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() @@ -3311,7 +3421,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() @@ -3368,7 +3478,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() @@ -3427,7 +3537,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): @@ -3465,11 +3575,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): @@ -3502,7 +3610,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 '' @@ -3532,7 +3640,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() @@ -3546,7 +3654,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): @@ -3598,7 +3706,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()