--- ECHO_content/ECHO_collection.py 2010/10/13 13:10:19 1.310 +++ ECHO_content/ECHO_collection.py 2012/08/23 10:25:32 1.310.2.7 @@ -9,11 +9,7 @@ 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 urlparse import string @@ -40,6 +36,8 @@ from Globals import Persistent, package_ from Acquisition import Implicit from Products.ZCatalog.CatalogPathAwareness import CatalogAware from Products.ZCTextIndex.ZCTextIndex import manage_addLexicon +import ECHO_helpers +from Acquisition import aq_parent try: from Products.MetaDataProvider.MetaDataClient import MetaDataClient except: @@ -49,11 +47,11 @@ import urllib2 import cgi import smtplib import time -from Ft.Xml.Domlette import NonvalidatingReader -from Ft.Xml.Domlette import PrettyPrint, Print -from Ft.Xml import EMPTY_NAMESPACE - -import Ft.Xml.XPath +#from Ft.Xml.Domlette import NonvalidatingReader +#from Ft.Xml.Domlette import PrettyPrint, Print +#from Ft.Xml import EMPTY_NAMESPACE +# +#import Ft.Xml.XPath import cStringIO import sys @@ -83,7 +81,7 @@ except: pass from ECHO_movie import * -import vlp_xmlhelpers #TODO: vlp elemente aus echo herausnehmen +#import vlp_xmlhelpers #TODO: vlp elemente aus echo herausnehmen import xmlrpclib import logging @@ -697,6 +695,8 @@ class ECHO_collection(CatalogAware, Fold meta_type='ECHO_collection' default_catalog='resourceCatalog' + rootMetaTypes = ['ECHO_root', 'ECHO_main', 'ECHO_nav'] + # viewClassificationList=viewClassificationListMaster displayTypes=displayTypes @@ -709,12 +709,11 @@ class ECHO_collection(CatalogAware, Fold return crumbs[0][2].getId() p = self - sec = None # descend parents to the root (and remember the last id) - while p is not None and p.meta_type != 'ECHO_root' and p.meta_type!='ECHO_main' and p.meta_type!='ECHO_nav': + while p is not None and p.meta_type not in self.rootMetaTypes: sec = p.getId() - p = p.aq_parent + p = aq_parent(p.context) return sec @@ -728,12 +727,21 @@ class ECHO_collection(CatalogAware, Fold sec = None subsec = None # descend parents to the root (and remember the last id) - while p is not None and p.meta_type != 'ECHO_root' and p.meta_type!='ECHO_main' and p.meta_type!='ECHO_nav': + while p is not None and p.meta_type not in self.rootMetaTypes: subsec = sec sec = p.getId() - p = p.aq_parent + p = aq_parent(p.context) return subsec + + + def getCrumb(self): + """returns breadcrumb for this object""" + return ECHO_helpers.getCrumb(self) + + def getHierCrumbs(self): + """returns a list of hierarchical breadcrumbs from self to the ECHO_root""" + return ECHO_helpers.getHierCrumbs(self) def exportImportObjects_html(self,RESPONSE): @@ -1134,38 +1142,7 @@ class ECHO_collection(CatalogAware, Fold if RESPONSE is not None: RESPONSE.write("

Done

") - def changeViewerTemplateSets(self,project,xslt,thumbtemplate,topbar,digiLibTemplate,digiliburlprefix,RESPONSE=None): - """change the templates""" - - resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1) - - for resource in resources: - - resource[1].changeViewerTemplateSet(project,xslt,thumbtemplate,topbar,digiLibTemplate,digiliburlprefix) - - if RESPONSE is not None: - RESPONSE.redirect('manage_main') - - - def setStartpageFolderForm(self): - """Form for changing the startpage""" - - - pt=zptFile(self, 'zpt/ChangeECHO_resourceStartPageFolder.zpt') - pt.content_type="text/html" - return pt() - - def setStartpageFolder(self,startpage=None,RESPONSE=None): - """change the templates""" - - resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1) - - for resource in resources: - - resource[1].setStartPage(startpage) - - if RESPONSE is not None: - RESPONSE.redirect('manage_main') + def copyTitleToInfoXMLFolder(self,RESPONSE=None): """copy title into the title field of info.xml @@ -1200,17 +1177,7 @@ class ECHO_collection(CatalogAware, Fold if RESPONSE is not None: RESPONSE.redirect('manage_main') - def reloadMetaDataFromStorageWarning(self,RESPONSE=None): - """warning""" - pt=zptFile(self, 'zpt/reloadMetaDataFromStorageWarning.zpt') - pt.content_type="text/html" - return pt() - - def reloadMetaDataFromStorage(self,RESPONSE=None): - """copy metadata from the storage to ECHO""" - - return reloadMetaDataFromStorage(self,RESPONSE) - + def getPartnerCopyright(self,name,sonst="generic"): """gibt generisches copyright eines partners aus, sonst behalte jetzige einsteillung""" @@ -1443,11 +1410,8 @@ class ECHO_collection(CatalogAware, Fold {'label':'Export/Import Objects','action':'exportImportObjects_html'}, {'label':'Graphic Coords','action':'ECHO_graphicEntry'}, {'label':'create resources from XML','action':'createRessourcesFromXMLForm'}, - {'label':'Set Startpage','action':'setStartpageFolderForm'}, {'label':'Change Viewer Templates and Image Viewer','action':'changeViewerTemplateSetsForm'}, - {'label':'Reload Metadata','action':'reloadMetaDataFromStorageWarning'}, {'label':'ImportCollection','action':'importCollection'}, - {'label':'Copy MD for indexing and search','action':'copySearchFields'}, {'label':'Change access rights', 'action':'changeAccessRightsCollectionForm'}, ) @@ -1506,8 +1470,15 @@ class ECHO_collection(CatalogAware, Fold def showOverview(self): """overview""" - if 'ECHO_overview.html' in self.__dict__.keys(): - return getattr(self,'ECHO_overview.html')() + # use ECHO_overview.html template in this instance + if 'ECHO_overview.html' in self: + return self['ECHO_overview.html']() + + # use ECHO_overview_main template in path + if hasattr(self, 'ECHO_overview_main'): + return getattr(self, 'ECHO_overview_main')() + + # use template from Product pt=zptFile(self, 'zpt/ECHO_content_overview.zpt') return pt() @@ -1516,23 +1487,35 @@ class ECHO_collection(CatalogAware, Fold def index_html(self): """standard page""" if self.ZCacheable_isCachingEnabled(): - result = self.ZCacheable_get() if result is not None: # Got a cached value. return result - - if 'index.html' in self.__dict__.keys(): - ret=getattr(self,'index.html')() - - elif 'overview' in self.__dict__.keys(): + + # old Zope 2.9 method + #if 'index.html' in self.__dict__.keys(): + # ret=getattr(self,'index.html')() + + # use Zope 2.12 IContainer for child access + if 'index.html' in self: + # use index.html template if it exists + ret = self['index.html']() + + elif 'overview' in self: + # use red-rectangle template when there's an 'overview' ret=self.showOverview() + + # use getattr for acquisition elif hasattr(self,'collection_index_template'): - ret=self.collection_index_template() + # use 'collection_index_template' in acquisition path + ret=self.collection_index_template() + elif hasattr(self,'main_index_template'): - + # use 'main_index_template' in acquisition path ret=self.main_index_template.__of__(self)(self.main_template) + else: + # use template from Product pt=zptFile(self, 'zpt/ECHO_main_index_template_standard.zpt') pt.content_type="text/html" ret=pt.render() @@ -1561,8 +1544,8 @@ class ECHO_collection(CatalogAware, Fold def area_img(self): """area image""" - bt = BrowserCheck(self) - if bt.isIE or bt.isN4: + bt = browserType(self) + if bt['isIE'] or bt['isN4']: return sendFile(self, 'images/red.gif', 'image/gif') else: return sendFile(self, 'images/reda.png', 'image/png') @@ -1922,12 +1905,10 @@ class ECHO_root(Folder,Persistent,Implic manage_options=Folder.manage_options+( {'label':'Main Config','action':'ECHO_copyright_configForm'}, - {'label':'Reload Metadata','action':'reloadMetaDataFromStorageWarning'}, {'label':'Change Weights','action':'changeWeights'}, {'label':'Generate from RDF','action':'generateFromRDFForm'}, {'label':'update Resource Catalog','action':'updateResourceCatalog'}, - {'label':'Copy MD for indexing and search','action':'copySearchFields'}, -) + ) @@ -1937,18 +1918,11 @@ class ECHO_root(Folder,Persistent,Implic def getECHORoot(self): return self - - def copySearchFields(self,RESPONSE=None): - """copys < metadatafields to the object""" - resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1) - - for resource in resources: - - resource[1].copySearchFields() - if RESPONSE is not None: - RESPONSE.redirect('manage_main') - + def getBrowserType(self): + """returns browserType object""" + return browserType(self) + def mod_re_sub(self,pattern,replace,string): """re.sub aus mod re zur Verfuegung stellen""" return re.sub(pattern,replace,string) @@ -2192,17 +2166,6 @@ class ECHO_root(Folder,Persistent,Implic pt.content_type="text/html" return pt() - - def reloadMetaDataFromStorageWarning(self,RESPONSE=None): - """warning""" - pt=zptFile(self, 'zpt/reloadMetaDataFromStorageWarning.zpt') - pt.content_type="text/html" - return pt() - - def reloadMetaDataFromStorage(self,RESPONSE=None): - """reload MD from Storage""" - - return reloadMetaDataFromStorage(self,RESPONSE) def getRDF(self,urn=None): """rdf of the collection""" @@ -2514,12 +2477,12 @@ class ECHO_root(Folder,Persistent,Implic else: return u"" - link2html=vlp_xmlhelpers.link2html - related2html=vlp_xmlhelpers.related2html + #link2html=vlp_xmlhelpers.link2html + #related2html=vlp_xmlhelpers.related2html - xml2html=vlp_xmlhelpers.xml2html + #xml2html=vlp_xmlhelpers.xml2html - checkRef=vlp_xmlhelpers.checkRef + #checkRef=vlp_xmlhelpers.checkRef # def checkRef(self,ref): # if ref[0:3]=='lit': @@ -3252,7 +3215,6 @@ class ECHO_main(ECHO_root,ECHO_navigatio {'label':'Main Config','action':'ECHO_navigationConfigForm'}, {'label':'Cache','action':'ECHO_cacheManageForm'}, {'label':'Main Config','action':'ECHO_copyright_configForm'}, - {'label':'Reload Metadata','action':'reloadMetaDataFromStorageWarning'}, {'label':'Change Weights','action':'changeWeights'}, {'label':'Generate from RDF','action':'generateFromRDFForm'}, {'label':'update Resource Catalog','action':'updateResourceCatalog'},