Una funcionalidad muy útil a la hora de crear o modificar expedientes es el envío automático de eamils personalizados
Dejamos aquí un código ejemplo para utilizar en un script post edit. (este script lo dejaremos en portal_skins –> custom como siempre, y lo asociaremos a la propiedad post edit action del patrón)
from AccessControl import getSecurityManager
from Products.KMKeyCore.pattern import KMObjectCreationAdapter
from Products.CMFCore.utils import getToolByName
from DateTime.DateTime import DateTime
from urllib import unquote
if not proxy or not content:
return
rq = context.REQUEST
from Products.KMKeyCore.pattern import KMObjectCreationAdapter
adapter = KMObjectCreationAdapter(proxy)
idd = proxy.getDocid()
if rq.get(‘enviaMailEscalarExecuted2_%s’ % idd, False):
return
else:
adapter.setValueToDataModel(rq,’enviaMailEscalarExecuted2_%s’ % idd,True)
enviar=False
cdm = content.getDataModel()
catalog = proxy.portal_catalog
reference=cdm.get(‘reference’,»)
creador = context.portal_vocabularies.members.get(cdm[‘creador’],cdm[‘creador’])
if not hasattr(rqs,’form’):
return
if rqs.form.has_key(‘widget__mi_campo’):
#DETECTAR EL CAMBIO DEL CAMPO EN CUESTIÓN
new=»
if rqs:
new = rqs.form[‘widget__campo que cambia’]
old = proxy[‘dept_pers’]
if not old: old = »
if not new: new=»
if rqs and new!=old:
#Enviar mail de modificaion a rr_pers
brains = catalog(username=new)
nombre=»
mto=»
if len(brains) and brains[0].email:
mto = «%s <%s>»%(brains[0].fullname,brains[0].email)
nombre = brains[0].Title
if brains[0].email:
utool = context.portal_url
url = context.REQUEST[‘BASE0’] + ‘/misite/’ + utool.getRelativeContentURL(proxy)
subject=’Subject del Email- %s – %s’%(reference,nombre)
body=»»»
Cabecera del body : %s
Título : %s
Descripción : %s
Otros campos etc… : %s
«»»%(cdm[‘Title’],cdm[‘Description’],cdm[‘category’],url)
proxy.createEmail(subject=subject,body=body,email_to = mto)