version 1.60, 2005/09/12 22:23:44
|
version 1.67, 2005/12/01 12:11:51
|
Line 14 from AccessControl import ClassSecurityI
|
Line 14 from AccessControl import ClassSecurityI
|
import os.path |
import os.path |
from OFS.Folder import Folder |
from OFS.Folder import Folder |
import ECHO_collection |
import ECHO_collection |
|
import base64 |
|
import bz2 |
|
import xmlrpclib |
|
|
displayTypes = ['ZSQLExtendFolder','ZSQLBibliography','ECHO_group','ECHO_collection','ECHO_resource','ECHO_link','ECHO_sqlElement','ECHO_pageTemplate','ECHO_externalLink','ImageCollectionIFrame','VLP_resource','VLP_essay','ECHO_ZCatalogElement','ImageCollection','versionedFileFolder','ECHO_movie'] |
displayTypes = ['ZSQLExtendFolder','ZSQLBibliography','ECHO_group','ECHO_collection','ECHO_resource','ECHO_link','ECHO_sqlElement','ECHO_pageTemplate','ECHO_externalLink','ImageCollectionIFrame','VLP_resource','VLP_essay','ECHO_ZCatalogElement','ImageCollection','versionedFileFolder','ECHO_movie'] |
|
|
|
|
|
#decode and compress for xmlrpc communication with OSAS_server |
|
|
|
def encodeRPC(string): |
|
return base64.encodestring(bz2.compress(string)) |
|
def decodeRPC(string): |
|
return bz2.decompress(base64.decodestring(string)) |
|
|
def content_html(self,type): |
def content_html(self,type): |
"""template fuer content""" |
"""template fuer content""" |
#templates = self.ZopeFind(self.aq_parent,obj_ids=[type+"_template"]) |
#templates = self.ZopeFind(self.aq_parent,obj_ids=[type+"_template"]) |
Line 408 class ECHO_basis:
|
Line 419 class ECHO_basis:
|
if hasattr(getattr(self,link),'link'): |
if hasattr(getattr(self,link),'link'): |
cLink=getattr(self,link).link |
cLink=getattr(self,link).link |
# if existing delete virtuell path |
# if existing delete virtuell path |
|
if hasattr(self.REQUEST,'VirtualRootPhysicalPath'): |
cLink=cLink.replace('/'.join(self.REQUEST['VirtualRootPhysicalPath']),'') |
cLink=cLink.replace('/'.join(self.REQUEST['VirtualRootPhysicalPath']),'') |
|
|
if backLink and hasattr(getattr(self,link),'link') and backLink==self.REQUEST['SERVER_URL']+cLink.lstrip(): |
if backLink and hasattr(getattr(self,link),'link') and backLink==self.REQUEST['SERVER_URL']+cLink.lstrip(): |
Line 530 def checkOnlyOneInGroup(object):
|
Line 542 def checkOnlyOneInGroup(object):
|
return displayedObjects[0][1] |
return displayedObjects[0][1] |
else: return object |
else: return object |
|
|
def getSubCols(self, sortfield=None, subColTypes=displayTypes, sortFieldMD=None,searchMD=None): |
def getSubCols(self, sortfield=None, subColTypes=displayTypes, sortFieldMD=None,searchMD=None,searchSimple=None,generic="yes"): |
|
|
|
|
def sort(x,y): |
def sort(x,y): |
return cmp(x[0],y[0]) |
return cmp(x[0],y[0]) |
|
|
def sortfnc(sortfield,x,y): |
def sortfnc(sortfield,x,y): |
try: |
try: |
xa=x[1].getMDValue(sortfield) |
xa=x[1].getMDValue(sortfield,generic=generic) |
except: |
except: |
xa="" |
xa="" |
try: |
try: |
ya=y[1].getMDValue(sortfield) |
ya=y[1].getMDValue(sortfield,generic=generic) |
except: |
except: |
ya="" |
ya="" |
return cmp(xa,ya) |
return cmp(xa,ya) |
Line 552 def getSubCols(self, sortfield=None, sub
|
Line 563 def getSubCols(self, sortfield=None, sub
|
displayedObjects=self.ZopeFind(self,obj_metatypes=subColTypes) |
displayedObjects=self.ZopeFind(self,obj_metatypes=subColTypes) |
|
|
|
|
|
if searchSimple and (not (searchSimple==""))and hasattr(self,'resourceCatalog'): |
|
|
|
searchString=" AND ".join(searchSimple.split()) |
|
|
|
ids=[x.getObject() for x in self.resourceCatalog({'getMDValueSimpleSearchField':searchString})] |
|
|
|
else: |
for entry in displayedObjects: |
for entry in displayedObjects: |
|
|
|
|
Line 559 def getSubCols(self, sortfield=None, sub
|
Line 577 def getSubCols(self, sortfield=None, sub
|
if searchMD and hasattr(object,'getMDValue'): |
if searchMD and hasattr(object,'getMDValue'): |
flag=0 |
flag=0 |
for field in searchMD.keys(): |
for field in searchMD.keys(): |
if object.getMDValue(field)==searchMD[field]: |
#if object.getMDValue(field,generic=generic)==searchMD[field]: |
|
if re.match(searchMD[field],object.getMDValue(field,generic=generic)): |
flag=1 |
flag=1 |
else: |
else: |
flag=0 |
flag=0 |
break |
break |
if flag==1: |
if flag==1: |
ids.append(object) |
ids.append(object) |
|
|
|
|
else: |
else: |
ids.append(object) |
ids.append(object) |
|
|
Line 593 def getSubCols(self, sortfield=None, sub
|
Line 614 def getSubCols(self, sortfield=None, sub
|
else: |
else: |
tmplist.sort(sortWithMD(sortFieldMD)) |
tmplist.sort(sortWithMD(sortFieldMD)) |
|
|
return [x for (key,x) in tmplist] |
ret=[x for (key,x) in tmplist] |
|
|
|
return ret |
|
|
def ECHO_rerenderLinksMD(self,obj=None,types=['title','label']): |
def ECHO_rerenderLinksMD(self,obj=None,types=['title','label']): |
"""Rerender all Links""" |
"""Rerender all Links""" |
Line 607 def ECHO_rerenderLinksMD(self,obj=None,t
|
Line 630 def ECHO_rerenderLinksMD(self,obj=None,t
|
for entry in entries: |
for entry in entries: |
if entry[1].meta_type == 'ECHO_resource': |
if entry[1].meta_type == 'ECHO_resource': |
try: |
try: |
entry[1].ECHO_getResourceMD(template="no") |
entry[1].ECHO_getResourceMD(template="no",overwrite="yes") |
if "title" in types: |
if "title" in types: |
entry[1].generate_title() |
entry[1].generate_title() |
if "label" in types: |
if "label" in types: |
Line 625 def reloadMetaDataFromStorage(self,RESPO
|
Line 648 def reloadMetaDataFromStorage(self,RESPO
|
"""copy metadata from the storage to ECHO""" |
"""copy metadata from the storage to ECHO""" |
ret="" |
ret="" |
resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1) |
resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1) |
|
if RESPONSE is not None: |
|
RESPONSE.setHeader("Content-Type", type) |
|
RESPONSE.write("<html><body>\n") |
|
|
for resource in resources: |
for resource in resources: |
x=str(resource[1].copyIndex_meta2echo_resource())+"<br>" |
x=str(resource[1].copyIndex_meta2echo_resource())+"<br>" |
|
if RESPONSE is not None: |
|
RESPONSE.write(x+"\n") |
|
|
ret+=x |
ret+=x |
|
|
if RESPONSE is not None: |
if RESPONSE is not None: |
#RESPONSE.redirect('./manage_main') |
#RESPONSE.redirect('./manage_main') |
return "<html><body>"+ret+"</html></body>" |
RESPONSE.write( "</html></body>") |
|
|
return ret |
return ret |
|
|
Line 736 def checkDiffs(self,metadict):
|
Line 765 def checkDiffs(self,metadict):
|
|
|
for field in tags[1]: |
for field in tags[1]: |
try: |
try: |
if (NoneToEmpty(self.getFieldValue(self.getFieldTag(tags,field)))==metadict[self.getFieldTag(tags,field)]): |
if (NoneToEmpty(self.getMDValue(self.getFieldTag(tags,field)))==metadict[self.getFieldTag(tags,field)]): |
diffs[self.getFieldTag(tags,field)]=1 |
diffs[self.getFieldTag(tags,field)]=1 |
else: |
else: |
|
|