Diff for /ECHO_content/ECHO_collection.py between versions 1.310 and 1.310.2.6

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'},

Removed from v.1.310  
changed lines
  Added in v.1.310.2.6


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>