# Copyright (c) 2005-2006 Simplistix Ltd # # This Software is released under the MIT License: # http://www.opensource.org/licenses/mit-license.html # See license.txt for more details. from AccessControl import allow_module,allow_class from Products.PageTemplates.PageTemplateFile import PageTemplateFile from MailTemplate import MailTemplate from types import ClassType from urllib import quote try: import Products.CMFCore except ImportError: pass else: import FSMailTemplate import Products.CMFCore.utils Products.CMFCore.utils.registerIcon(FSMailTemplate.FSMailTemplate, 'www/fsmt.gif', globals()) def initialize( context ): context.registerClass( MailTemplate, # we use the same permission as page templates # in order to keep things simple. permission='Add Page Templates', constructors=(addMailTemplateForm, addMailTemplate), icon='www/mt.gif', ) addMailTemplateForm = PageTemplateFile( 'www/mtAdd', globals(), __name__='addMailTemplateForm' ) def addMailTemplate(self, id, mailhost=None, text=None, REQUEST=None, submit=None): "Add a Mail Template with optional file content." id = str(id) if REQUEST is None: self._setObject(id, MailTemplate(id, text)) ob = getattr(self, id) if mailhost: ob._setPropValue('mailhost',mailhost) return ob else: file = REQUEST.form.get('file') headers = getattr(file, 'headers', None) if headers is None or not file.filename: mt = MailTemplate(id, text) else: mt = MailTemplate(id, file, headers.get('content_type')) self._setObject(id, mt) ob = getattr(self, id) if mailhost: ob._setPropValue('mailhost',mailhost) if submit == " Add and Edit ": u = ob.absolute_url() else: u = ob.aq_parent.absolute_url() REQUEST.RESPONSE.redirect(u+'/manage_main') # allow all the email module's public bits import email for name in email.__all__: path = 'email.'+name allow_module(path) try: mod = __import__(path) except ImportError: pass else: mod = getattr(mod,name) for mod_name in dir(mod): obj = getattr(mod,mod_name) if isinstance(obj,ClassType): allow_class(obj)