version 1.310, 2010/10/13 13:10:19
|
version 1.310.2.6, 2012/01/19 19:03:28
|
Line 9 class ECHO_externalLink contains informa
|
Line 9 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 urlparse |
import string |
import string |
Line 40 from Globals import Persistent, package_
|
Line 36 from Globals import Persistent, package_
|
from Acquisition import Implicit |
from Acquisition import Implicit |
from Products.ZCatalog.CatalogPathAwareness import CatalogAware |
from Products.ZCatalog.CatalogPathAwareness import CatalogAware |
from Products.ZCTextIndex.ZCTextIndex import manage_addLexicon |
from Products.ZCTextIndex.ZCTextIndex import manage_addLexicon |
|
import ECHO_helpers |
|
from Acquisition import aq_parent |
try: |
try: |
from Products.MetaDataProvider.MetaDataClient import MetaDataClient |
from Products.MetaDataProvider.MetaDataClient import MetaDataClient |
except: |
except: |
Line 49 import urllib2
|
Line 47 import urllib2
|
import cgi |
import cgi |
import smtplib |
import smtplib |
import time |
import time |
from Ft.Xml.Domlette import NonvalidatingReader |
#from Ft.Xml.Domlette import NonvalidatingReader |
from Ft.Xml.Domlette import PrettyPrint, Print |
#from Ft.Xml.Domlette import PrettyPrint, Print |
from Ft.Xml import EMPTY_NAMESPACE |
#from Ft.Xml import EMPTY_NAMESPACE |
|
# |
import Ft.Xml.XPath |
#import Ft.Xml.XPath |
import cStringIO |
import cStringIO |
|
|
import sys |
import sys |
Line 697 class ECHO_collection(CatalogAware, Fold
|
Line 695 class ECHO_collection(CatalogAware, Fold
|
meta_type='ECHO_collection' |
meta_type='ECHO_collection' |
default_catalog='resourceCatalog' |
default_catalog='resourceCatalog' |
|
|
|
rootMetaTypes = ['ECHO_root', 'ECHO_main', 'ECHO_nav'] |
|
|
# viewClassificationList=viewClassificationListMaster |
# viewClassificationList=viewClassificationListMaster |
displayTypes=displayTypes |
displayTypes=displayTypes |
|
|
Line 709 class ECHO_collection(CatalogAware, Fold
|
Line 709 class ECHO_collection(CatalogAware, Fold
|
return crumbs[0][2].getId() |
return crumbs[0][2].getId() |
|
|
p = self |
p = self |
|
|
sec = None |
sec = None |
# descend parents to the root (and remember the last id) |
# 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() |
sec = p.getId() |
p = p.aq_parent |
p = aq_parent(p.context) |
|
|
return sec |
return sec |
|
|
Line 728 class ECHO_collection(CatalogAware, Fold
|
Line 727 class ECHO_collection(CatalogAware, Fold
|
sec = None |
sec = None |
subsec = None |
subsec = None |
# descend parents to the root (and remember the last id) |
# 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 |
subsec = sec |
sec = p.getId() |
sec = p.getId() |
p = p.aq_parent |
p = aq_parent(p.context) |
|
|
return subsec |
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): |
def exportImportObjects_html(self,RESPONSE): |
"""ImportObject""" |
"""ImportObject""" |
pt=zptFile(self, 'zpt/exportImportObjects.zpt') |
pt=zptFile(self, 'zpt/exportImportObjects.zpt') |
Line 1134 class ECHO_collection(CatalogAware, Fold
|
Line 1142 class ECHO_collection(CatalogAware, Fold
|
if RESPONSE is not None: |
if RESPONSE is not None: |
RESPONSE.write("<p>Done</p></body></html>") |
RESPONSE.write("<p>Done</p></body></html>") |
|
|
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): |
def copyTitleToInfoXMLFolder(self,RESPONSE=None): |
"""copy title into the title field of info.xml |
"""copy title into the title field of info.xml |
Line 1200 class ECHO_collection(CatalogAware, Fold
|
Line 1177 class ECHO_collection(CatalogAware, Fold
|
if RESPONSE is not None: |
if RESPONSE is not None: |
RESPONSE.redirect('manage_main') |
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"): |
def getPartnerCopyright(self,name,sonst="generic"): |
Line 1443 class ECHO_collection(CatalogAware, Fold
|
Line 1410 class ECHO_collection(CatalogAware, Fold
|
{'label':'Export/Import Objects','action':'exportImportObjects_html'}, |
{'label':'Export/Import Objects','action':'exportImportObjects_html'}, |
{'label':'Graphic Coords','action':'ECHO_graphicEntry'}, |
{'label':'Graphic Coords','action':'ECHO_graphicEntry'}, |
{'label':'create resources from XML','action':'createRessourcesFromXMLForm'}, |
{'label':'create resources from XML','action':'createRessourcesFromXMLForm'}, |
{'label':'Set Startpage','action':'setStartpageFolderForm'}, |
|
{'label':'Change Viewer Templates and Image Viewer','action':'changeViewerTemplateSetsForm'}, |
{'label':'Change Viewer Templates and Image Viewer','action':'changeViewerTemplateSetsForm'}, |
{'label':'Reload Metadata','action':'reloadMetaDataFromStorageWarning'}, |
|
{'label':'ImportCollection','action':'importCollection'}, |
{'label':'ImportCollection','action':'importCollection'}, |
{'label':'Copy MD for indexing and search','action':'copySearchFields'}, |
|
{'label':'Change access rights', 'action':'changeAccessRightsCollectionForm'}, |
{'label':'Change access rights', 'action':'changeAccessRightsCollectionForm'}, |
) |
) |
|
|
Line 1506 class ECHO_collection(CatalogAware, Fold
|
Line 1470 class ECHO_collection(CatalogAware, Fold
|
|
|
def showOverview(self): |
def showOverview(self): |
"""overview""" |
"""overview""" |
if 'ECHO_overview.html' in self.__dict__.keys(): |
# use ECHO_overview.html template in this instance |
return getattr(self,'ECHO_overview.html')() |
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') |
pt=zptFile(self, 'zpt/ECHO_content_overview.zpt') |
return pt() |
return pt() |
|
|
Line 1516 class ECHO_collection(CatalogAware, Fold
|
Line 1487 class ECHO_collection(CatalogAware, Fold
|
def index_html(self): |
def index_html(self): |
"""standard page""" |
"""standard page""" |
if self.ZCacheable_isCachingEnabled(): |
if self.ZCacheable_isCachingEnabled(): |
|
|
result = self.ZCacheable_get() |
result = self.ZCacheable_get() |
if result is not None: |
if result is not None: |
# Got a cached value. |
# Got a cached value. |
return result |
return result |
|
|
if 'index.html' in self.__dict__.keys(): |
# old Zope 2.9 method |
ret=getattr(self,'index.html')() |
#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.__dict__.keys(): |
elif 'overview' in self: |
|
# use red-rectangle template when there's an 'overview' |
ret=self.showOverview() |
ret=self.showOverview() |
|
|
|
# use getattr for acquisition |
elif hasattr(self,'collection_index_template'): |
elif hasattr(self,'collection_index_template'): |
|
# use 'collection_index_template' in acquisition path |
ret=self.collection_index_template() |
ret=self.collection_index_template() |
elif hasattr(self,'main_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) |
ret=self.main_index_template.__of__(self)(self.main_template) |
|
|
else: |
else: |
|
# use template from Product |
pt=zptFile(self, 'zpt/ECHO_main_index_template_standard.zpt') |
pt=zptFile(self, 'zpt/ECHO_main_index_template_standard.zpt') |
pt.content_type="text/html" |
pt.content_type="text/html" |
ret=pt.render() |
ret=pt.render() |
Line 1561 class ECHO_collection(CatalogAware, Fold
|
Line 1544 class ECHO_collection(CatalogAware, Fold
|
|
|
def area_img(self): |
def area_img(self): |
"""area image""" |
"""area image""" |
bt = BrowserCheck(self) |
bt = browserType(self) |
if bt.isIE or bt.isN4: |
if bt['isIE'] or bt['isN4']: |
return sendFile(self, 'images/red.gif', 'image/gif') |
return sendFile(self, 'images/red.gif', 'image/gif') |
else: |
else: |
return sendFile(self, 'images/reda.png', 'image/png') |
return sendFile(self, 'images/reda.png', 'image/png') |
Line 1922 class ECHO_root(Folder,Persistent,Implic
|
Line 1905 class ECHO_root(Folder,Persistent,Implic
|
|
|
manage_options=Folder.manage_options+( |
manage_options=Folder.manage_options+( |
{'label':'Main Config','action':'ECHO_copyright_configForm'}, |
{'label':'Main Config','action':'ECHO_copyright_configForm'}, |
{'label':'Reload Metadata','action':'reloadMetaDataFromStorageWarning'}, |
|
{'label':'Change Weights','action':'changeWeights'}, |
{'label':'Change Weights','action':'changeWeights'}, |
{'label':'Generate from RDF','action':'generateFromRDFForm'}, |
{'label':'Generate from RDF','action':'generateFromRDFForm'}, |
{'label':'update Resource Catalog','action':'updateResourceCatalog'}, |
{'label':'update Resource Catalog','action':'updateResourceCatalog'}, |
{'label':'Copy MD for indexing and search','action':'copySearchFields'}, |
|
) |
) |
|
|
|
|
Line 1938 class ECHO_root(Folder,Persistent,Implic
|
Line 1919 class ECHO_root(Folder,Persistent,Implic
|
def getECHORoot(self): |
def getECHORoot(self): |
return self |
return self |
|
|
def copySearchFields(self,RESPONSE=None): |
def getBrowserType(self): |
"""copys < metadatafields to the object""" |
"""returns browserType object""" |
resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1) |
return browserType(self) |
|
|
for resource in resources: |
|
|
|
resource[1].copySearchFields() |
|
|
|
if RESPONSE is not None: |
|
RESPONSE.redirect('manage_main') |
|
|
|
def mod_re_sub(self,pattern,replace,string): |
def mod_re_sub(self,pattern,replace,string): |
"""re.sub aus mod re zur Verfuegung stellen""" |
"""re.sub aus mod re zur Verfuegung stellen""" |
Line 2193 class ECHO_root(Folder,Persistent,Implic
|
Line 2167 class ECHO_root(Folder,Persistent,Implic
|
return pt() |
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): |
def getRDF(self,urn=None): |
"""rdf of the collection""" |
"""rdf of the collection""" |
|
|
Line 3252 class ECHO_main(ECHO_root,ECHO_navigatio
|
Line 3215 class ECHO_main(ECHO_root,ECHO_navigatio
|
{'label':'Main Config','action':'ECHO_navigationConfigForm'}, |
{'label':'Main Config','action':'ECHO_navigationConfigForm'}, |
{'label':'Cache','action':'ECHO_cacheManageForm'}, |
{'label':'Cache','action':'ECHO_cacheManageForm'}, |
{'label':'Main Config','action':'ECHO_copyright_configForm'}, |
{'label':'Main Config','action':'ECHO_copyright_configForm'}, |
{'label':'Reload Metadata','action':'reloadMetaDataFromStorageWarning'}, |
|
{'label':'Change Weights','action':'changeWeights'}, |
{'label':'Change Weights','action':'changeWeights'}, |
{'label':'Generate from RDF','action':'generateFromRDFForm'}, |
{'label':'Generate from RDF','action':'generateFromRDFForm'}, |
{'label':'update Resource Catalog','action':'updateResourceCatalog'}, |
{'label':'update Resource Catalog','action':'updateResourceCatalog'}, |