--- zogiLib/zogiLib.py 2004/06/22 17:09:13 1.29 +++ zogiLib/zogiLib.py 2004/07/19 17:54:02 1.33 @@ -1,4 +1,3 @@ - from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Products.PageTemplates.PageTemplate import PageTemplate from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate @@ -7,7 +6,7 @@ from webdav.common import rfc1123_date import xml.dom.minidom from OFS.Folder import Folder -from xml_helpers import getText +from xml_helpers import getUniqueElementText,getText import os import re import string @@ -15,7 +14,12 @@ import urllib import types from Globals import package_home -ZOGIVERSION = "0.9.4 ROC:22.6.2004" +ZOGIVERSION = "0.9.5 ROC:25.6.2004" + +def cropf(f): + """returns a float with reduced precision""" + return float(int(f * 10000)/10000.0) + def sendFile(self, filename, type): """sends an object or a local file (in the product) as response""" @@ -57,49 +61,6 @@ def browserCheck(self): return bt -def manage_addZogiLibMainTemplateForm(self): - """Form for adding""" - #FIXME:??? - pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/AddOSAS_thumbTemplate.zpt')).__of__(self) - return pt() - - - - -def manage_addZogiLibMainTemplate(self, id,title=None, text=None, - REQUEST=None, submit=None): - "Add a Page Template with optional file content." - #FIXME:??? - id = str(id) - if REQUEST is None: - self._setObject(id, zogiLib_mainTemplate(id, text)) - ob = getattr(self, id) - - if title: - ob.pt_setTitle(title) - return ob - else: - file = REQUEST.form.get('file') - headers = getattr(file, 'headers', None) - if headers is None or not file.filename: - zpt = zogiLib_mainTemplate(id) - else: - zpt = zogiLib_mainTemplate(id, file, headers.get('content_type')) - - self._setObject(id, zpt) - ob = getattr(self, id) - - - try: - u = self.DestinationURL() - except AttributeError: - u = REQUEST['URL1'] - - if submit == " Add and Edit ": - u = "%s/%s" % (u, quote(id)) - REQUEST.RESPONSE.redirect(u+'/manage_main') - return '' - class zogiImage(Image): """einzelnes Image""" @@ -421,17 +382,19 @@ class zogiLib(Folder): """StandardElement""" meta_type="zogiLib" + #xxxx manage_options = Folder.manage_options+( {'label':'Main Config','action':'changeZogiLibForm'}, ) - def __init__(self, id, title, digilibBaseUrl, localFileBase, version="book", basePath="", dlTarget=None): + def __init__(self, id, title, digilibBaseUrl,localFileBase, version="book", basePath="", dlTarget=None): """init""" self.id=id self.title=title self.digilibBaseUrl=digilibBaseUrl + self.localFileBase=localFileBase self.basePath=basePath self.layout=version @@ -444,6 +407,116 @@ class zogiLib(Folder): """version information""" return ZOGIVERSION + def getContextStatic(self): + """get all the contexts which go to static pages""" + + try: + dom=xml.dom.minidom.parse(urllib.urlopen(self.getMetaFileName())) + contexts=dom.getElementsByTagName("context") + + ret=[] + for context in contexts: + name=getUniqueElementText(context.getElementsByTagName("name")) + + link=getUniqueElementText(context.getElementsByTagName("link")) + if name or link: + ret.append((name,link)) + return ret + except: + return [] + + def getContextDatabases(self): + """get all dynamic contexts""" + try: + dom=xml.dom.minidom.parse(urllib.urlopen(self.getMetaFileName())) + contexts=dom.getElementsByTagName("context") + ret=[] + for context in contexts: + metaDataLinks=context.getElementsByTagName("meta-datalink") + for metaDataLink in metaDataLinks: + db=metaDataLink.getAttribute("db") + link=self.REQUEST['URL1']+"/dl_db?db=%s"%db + if db: + ret.append((db,link)) + metaDataLinks=context.getElementsByTagName("meta-baselink") + + for metaDataLink in metaDataLinks: + db=metaDataLink.getAttribute("db") + link=self.REQUEST['URL1']+"/dl_db?db=%s"%db + if db: + ret.append((db,link)) + + return ret + except: + return ret + + def formatHTML(self,url,label=None,viewUrl=None): + + + sets=xml.dom.minidom.parse(urllib.urlopen(url)).getElementsByTagName('dataset') + ret="" + print label + if label: + ret+="""%s"""%(viewUrl,label) + for set in sets: + ret+="
%s: | %s |