[Zope-CMF] First steps with tools

Charlie Clark charlie at begeistert.org
Wed Oct 31 09:58:09 EDT 2007


Hi,

thanks again to everyone who helped me yesterday. I feel understand  
things a lot better now. However, there are still a lot of things I  
need to learn.

As suggested I'm trying to factor out a function from a content type  
into utility so that it can be used for any content type. My utility  
is simple: I want to be able to publish documents to my subscribers.  
The following code is based on bits of the RegistrationTool and  
elsewhere but with a little more understanding than my usual copy &  
paste:

class PublishTool(BaseTool)

     def publishByEmail(self, document=""):
         text = getattr(aq_base(document), EditableBody)
         subject = getattr(aq_base(document), Title)
         lang = getattr(aq_base(document), lang)

         ptool = getUtility(IPropertiesTool)

         headers = {}
         headers['Subject'] = subject
         headers['From'] = ptool.email_from_address
         host = getUtility(IMailHost)
         subscibers = self.getSubscribersByLanguage(lang)
         for s in subscribers:
             headers['To'] = s.email
             email = makeEmail(decode(text, script), script, headers)
	    try:
             	host.send(email)
             except:
		# don't stop just because you can't send a single e-mail

Now, apart from obvious problems that this is not the way to handle  
with large subscriptions - MailDrop or a dedicated mailing list are  
better for that, I know and I suspect makeEmail might not work in  
this context - what is the best way to make this available as an  
action for my documents? Looking at CMFDefault it seems that  
currently I would actually do much of this work in a PythonScript  
with attendant template very similar to how discussions work. Is this  
correct? Or is there another way to provide this action to documents  
and make it available only when the user has the correct permissions?

While I've been working on this I've noticed is that there are no  
browser views for the various utilities such as logging in, signing  
up or having a discussion. Is this because they haven't been done yet  
or am I looking in the wrong place?

Charlie

--
Charlie Clark
Helmholtzstr. 20
Düsseldorf
D- 40215
Tel: +49-211-938-5360
GSM: +49-178-782-6226





More information about the Zope-CMF mailing list