--- ECHO_content/VLPExtension.py 2004/10/06 16:29:27 1.28
+++ ECHO_content/VLPExtension.py 2004/11/03 15:04:46 1.32
@@ -1,3 +1,7 @@
+"""
+This module contains extensions which where originally made for the VLP.
+"""
+
from Products.ECHO_content.ECHO_collection import *
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
from Products.PageTemplates.PageTemplate import PageTemplate
@@ -13,6 +17,7 @@ import urllib
import xmlrpclib
import vlp_xmlhelpers
from types import *
+from Globals import package_home
@@ -48,6 +53,94 @@ def getText(nodelist):
rc = rc + node.data
return rc
+class sendMailForm(ZopePageTemplate):
+ """sendMailForm"""
+ meta_type="sendMailForm"
+
+ _default_content_fn = os.path.join(package_home(globals()), 'vlp','sendMail_template.zpt')
+
+ manage_options = ZopePageTemplate.manage_options+(
+ {'label':'Main Config','action':'main_configForm'},
+ )
+
+ main_configForm = PageTemplateFile(
+ 'vlp/changeSendMailForm', globals())
+
+ def main_config(self, toAddrs,mailServer, subjectAdd=None, RESPONSE=None):
+ """main_config"""
+ self.toAddrs=toAddrs.split("\n")
+ self.mailServer=mailServer
+ self.subjectAdd=subjectAdd
+ if RESPONSE:
+ RESPONSE.redirect('manage_main')
+
+ def sendForm(self,fromaddr,subject,content,nextPage="index_html",RESPONSE=None):
+ """sendform"""
+ fromaddr=fromaddr.strip("\r\n\t") # sicherstellen dass keine zusaetzlichen headerzeilen eingefuegt werden
+ subject=subject.strip("\r\n\t") # sicherstellen dass keine zusaetzlichen headerzeilen eingefuegt werden
+ toaddrs=self.toAddrs
+
+ subject="%s %s"%(self.subjectAdd,subject)
+
+ msg = ("From: %s\r\nSubject: %s\r\nTo: %s\r\n\r\n"
+ % (fromaddr, subject, ", ".join(toaddrs)))
+ server = smtplib.SMTP(self.mailServer)
+ #server.set_debuglevel(1)
+ msg=msg+content
+ server.sendmail(fromaddr, toaddrs, msg)
+ server.quit()
+
+ if RESPONSE:
+ RESPONSE.redirect(nextPage)
+
+manage_addSendMailFormForm = PageTemplateFile(
+ 'vlp/addSendMailForm', globals(), __name__='manage_addSendMailFormFrom')
+
+from urllib import quote
+
+def manage_addSendMailForm(self, id, toAddrs,mailServer, title=None, text=None, subjectAdd=None,
+ REQUEST=None, submit=None):
+ "Add a Page Template with optional file content."
+ toAddrsList=toAddrs.split("\n")
+ id = str(id)
+ if REQUEST is None:
+ self._setObject(id, sendMailForm(id, text))
+ ob = getattr(self, id)
+ if title:
+ ob.pt_setTitle(title)
+ setattr(ob,'toAddrs',toAddrsList)
+ setattr(ob,'mailServer',mailServer)
+ setattr(ob,'subjectAdd',subjectAdd)
+ return ob
+ else:
+ file = REQUEST.form.get('file')
+ headers = getattr(file, 'headers', None)
+ if headers is None or not file.filename:
+ zpt = sendMailForm(id)
+ else:
+ zpt = sendMailForm(id, file, headers.get('content_type'))
+
+ self._setObject(id, zpt)
+
+ try:
+ u = self.DestinationURL()
+ except AttributeError:
+ u = REQUEST['URL1']
+
+ if submit == " Add and Edit ":
+ u = "%s/%s" % (u, quote(id))
+
+ ob = getattr(self, id)
+ if title:
+ ob.pt_setTitle(title)
+
+ setattr(ob,'toAddrs',toAddrsList)
+ setattr(ob,'mailServer',mailServer)
+ setattr(ob,'subjectAdd',subjectAdd)
+ REQUEST.RESPONSE.redirect(u+'/manage_main')
+ return ''
+
+
class VLP_essay(Folder):
"""classe für VLP essays"""
@@ -69,13 +162,13 @@ class VLP_essay(Folder):
obj=getattr(self,type+"_template")
return obj()
else:
- pt=PageTemplateFile('Products/ECHO_content/zpt/ECHO_%s_template_standard.zpt'%type).__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ECHO_%s_template_standard.zpt'%type)).__of__(self)
pt.content_type="text/html"
return pt()
def ConfigVLP_essayForm(self):
"""Form for adding"""
- pt=PageTemplateFile('Products/ECHO_content/vlp/ChangeVLP_essay.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','ChangeVLP_essay.zpt')).__of__(self)
return pt()
def ChangeVLP_essay(self,title,label,description,RESPONSE=None):
@@ -100,7 +193,7 @@ class VLP_essay(Folder):
if hasattr(self,'essayTemplate.html'):
return getattr(self,'essayTemplate.html')()
- pt=PageTemplateFile('Products/ECHO_content/vlp/essay_template.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','essay_template.zpt')).__of__(self)
pt.content_type="text/html"
return pt()
@@ -175,7 +268,7 @@ class VLP_essay(Folder):
def manage_addVLP_essayForm(self):
"""Form for adding"""
- pt=PageTemplateFile('Products/ECHO_content/vlp/AddVLP_essay.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','AddVLP_essay.zpt')).__of__(self)
return pt()
def manage_addVLP_essay(self, id,title,label,RESPONSE=None):
@@ -200,7 +293,7 @@ class VLP_encyclopaedia(VLP_essay):
def loadNewFileForm(self):
"""Neues XML-File einlesen"""
- pt=PageTemplateFile('Products/ECHO_content/vlp/VLP_newfile.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','VLP_newfile.zpt')).__of__(self)
return pt()
def loadNewFile(self,RESPONSE=None):
@@ -233,7 +326,7 @@ class VLP_encyclopaedia(VLP_essay):
def manage_addVLP_encycForm(self):
"""Form for adding"""
- pt=PageTemplateFile('Products/ECHO_content/vlp/AddVLP_encyc.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','AddVLP_encyc.zpt')).__of__(self)
return pt()
def manage_addVLP_encyc(self, id,title,label,RESPONSE=None):
@@ -258,7 +351,7 @@ class VLP_collection(ECHO_collection):
def VLP_path_configForm(self):
"""change pt"""
- path=PageTemplateFile('Products/ECHO_content/vlp/ChangeVLPPath.zpt').__of__(self)
+ path=PageTemplateFile(os.path.join(package_home(globals()),'vlp','ChangeVLPPath.zpt')).__of__(self)
return pt()
def VLP_path_config(self,path,RESPONSE=None):
@@ -275,8 +368,9 @@ class VLP_collection(ECHO_collection):
if fileName[0:3]=="lit":
metalink=self.REQUEST['URL1']+"/"+fileName+"/index_meta"
- newObj=VLP_resource(fileName,'',metalink,fileName,fileName,fileName,'generated','book','','','','','','')
- self._setObject(fileName,newObj)
+ if not hasattr(self,fileName):
+ newObj=VLP_resource(fileName,'',metalink,fileName,fileName,fileName,'generated','book','','','','','','')
+ self._setObject(fileName,newObj)
genObj=getattr(self,fileName)
genObj.createIndexFile()
@@ -316,7 +410,7 @@ class VLP_collection(ECHO_collection):
def manage_addVLP_collectionForm(self):
"""Form for adding a ressource"""
- pt=PageTemplateFile('Products/ECHO_content/vlp/AddVLP_collectionForm.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','AddVLP_collectionForm.zpt')).__of__(self)
return pt()
@@ -359,7 +453,7 @@ class VLP_resource(ECHO_resource):
if hasattr(self,'libraryTranscriptionTemplate.html'):
return getattr(self,'libraryTranscriptionTemplate.html')()
- pt=PageTemplateFile('Products/ECHO_content/vlp/library_transcriptionTemplate.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','library_transcriptionTemplate.zpt')).__of__(self)
pt.content_type="text/html"
return pt()
@@ -420,7 +514,7 @@ class VLP_resource(ECHO_resource):
if hasattr(self,'libraryTemplate.html'):
return getattr(self,'libraryTemplate.html')()
- pt=PageTemplateFile('Products/ECHO_content/vlp/library_template.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','library_template.zpt')).__of__(self)
pt.content_type="text/html"
return pt()
@@ -447,7 +541,7 @@ class VLP_resource(ECHO_resource):
def index_meta(self):
"""index_meta"""
- pt=PageTemplateFile('Products/ECHO_content/vlp/index_meta.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','index_meta.zpt')).__of__(self)
pt.content_type="text/html"
return pt()
@@ -466,7 +560,8 @@ class VLP_resource(ECHO_resource):
"""dir to index"""
def calculateName(str):
- ret="%s: %s"%(str[0],str[1:5])
+ name=os.path.splitext(str[1:])[0]
+ ret="%s: %s"%(str[0],name)
return ret
try:
@@ -476,6 +571,7 @@ class VLP_resource(ECHO_resource):
ret=os.listdir(os.path.join(self.vlp_basis,self.resourceID,'pagesHi'))
self.imagePath='pagesHi'
temp=[]
+ ret.sort()
for x in ret:
if not (x[0]=="."):
@@ -489,10 +585,11 @@ class VLP_resource(ECHO_resource):
return """
first"""
else:
- return """
+ ws=self.REQUEST.get('ws','1')
+ return """
first
- """%(self.REQUEST['URL']+"?pn=1")
+ """%(self.REQUEST['URL']+"?pn=1&ws=%s"%ws)
def lastPage(self,url=None):
"""showlink to the first image"""
@@ -504,10 +601,11 @@ class VLP_resource(ECHO_resource):
return """
last"""
else:
- return """
-
last
+ ws=self.REQUEST.get('ws','1')
+ return """
+
last
- """%(self.REQUEST['URL']+"?pn="+str(ln))
+ """%(self.REQUEST['URL']+"?pn="+str(ln)+"&ws="+ws)
def prevPage(self,url=None):
"""showlink to the first image"""
@@ -518,10 +616,11 @@ class VLP_resource(ECHO_resource):
return """
prev"""
else:
- return """
+ ws=self.REQUEST.get('ws','1')
+ return """
prev
- """%(self.REQUEST['URL']+"?pn="+str(nn))
+ """%(self.REQUEST['URL']+"?pn="+str(nn)+"&ws="+ws)
def nextPage(self,url=None):
"""showlink to the first image"""
@@ -534,10 +633,11 @@ class VLP_resource(ECHO_resource):
return """
next"""
else:
- return """
+ ws=self.REQUEST.get('ws','1')
+ return """
next
- """%(self.REQUEST['URL']+"?pn="+str(nn))
+ """%(self.REQUEST['URL']+"?pn="+str(nn)+"&ws="+ws)
def readIndexFile(self,url=None):
@@ -571,7 +671,7 @@ class VLP_resource(ECHO_resource):
"""create index file"""
- pt=PageTemplateFile('Products/ECHO_content/vlp/index_template.zpt').__of__(self)()
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','index_template.zpt')).__of__(self)()
@@ -590,7 +690,7 @@ class VLP_resource(ECHO_resource):
def manage_addVLP_resourceForm(self):
"""Form for adding a ressource"""
- pt=PageTemplateFile('Products/ECHO_content/vlp/AddVLP_resourceForm.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','AddVLP_resourceForm.zpt')).__of__(self)
return pt()