[Zope-dev] external method problems (ARGH!)

Michel Pelletier michel@digicool.com
Wed, 01 Mar 2000 10:44:28 -0800


Can you send the traceback to the list also?

-Michel

auto44082@hushmail.com wrote:
> 
> Hello,
> 
> I tried posting this to the zope list, but then thought it might be more
> appropriat here.
> I'm getting grief from an external python, method and I'm hoping that someone
> has some ideas that might help. Here's what I'm doing.
> 
> I have a Zope product (SmartDTML) consisting of a Zclass which inherrits
> a DTML Document. I've heavily modified the constructor DTML Method, and
> among other things it calls some external python code which takes an uploaded
> file, converts it, and then preloads it into the DTML document via the munge()
> method. (I've included the code below)
> 
> The external python code can be run from two places. 1. it runs automatically
> when you add a new instance of SmartDTML. and 2. from the Upload tab of
> the newly created SmartDTML instance . Well when called from the object's
> constructor, my external code runs and works just fine. But when called
> from the Upload tab, I keep getting "read-only character buffer, instance"
> errors out of zope. I have an indistinct feeling that it might have something
> to do with permissions but I don't know enough about Zope yet to know whether
> or not that is a valid hunch.
> 
> Incidentally, this product I'm working on is a supposed to be a modified
> DTML Document which knows how to convert MSWord documents to HTML automatically.
> 
> Here's the offending python code:
> #upload_file is an object property containing the uploaded file if available,
> #convert is a text field indicating whether or not DOC->HTML conversion
> should be done or not
> def convertFile(self):
>         import os
>         """Converts MSWord Documents to HTML"""
>         if self.convert == 'YES' and self.upload_file != '':
>                 #convert upload_file to HTML
>                 f=open('./Extensions/tempfile.doc', 'w') #creat a temp file
>                 testvar = self.upload_file
>                 f.write(testvar)
>                 f.close() #convert it
>                 os.system('wvHtml ./Extensions/tempfile.doc > ./Extensions/tempfile.html')
>                 f=open('./Extensions/tempfile.html', 'r')
>                 testvar = f.read()
>                 self.munge(testvar)
>                 f.close()
>                 os.remove('./Extensions/tempfile.doc') #clean up after ourselves
>                 os.remove('./Extensions/tempfile.html')
>         else:
>                 #no conversion
>                 if self.upload_file == '':
>                 #no upload_file so give it a standard header & footer
>                         testvar = "<dtml-var standard_html_header>\n\
> <h2><dtml-var title_or_id></h2>\n<p>\nThis is the <dtml-var id> Document.\n\
> </p>\n<dtml-var standard_dtml_footer>"
> 
>                 else:
>             #already html, no conversion needed
>                         testvar = self.upload_file
> 
>                 self.munge(testvar)
> 
> IMPORTANT NOTICE:  If you are not using HushMail, this message could have been read easily by the many people who have access to your open personal email messages.
> Get your FREE, totally secure email address at http://www.hushmail.com.
> 
> _______________________________________________
> Zope-Dev maillist  -  Zope-Dev@zope.org
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists -
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )