[ADD] trigger mail with email.template

bzr revid: mva@openerp.com-20120111110518-o961ova39cc0ucku
This commit is contained in:
MVA 2012-01-11 12:05:18 +01:00
parent e6eeabd862
commit 789d528eb9
2 changed files with 25 additions and 38 deletions

View File

@ -186,7 +186,7 @@ class event_event(osv.osv):
register_values['date_deadline'] = vals['date_begin']
#change the description of the registration linked to this event
"""
if vals.get('mail_auto_confirm', False):
if vals['mail_auto_confirm']:
@ -227,7 +227,9 @@ class event_event(osv.osv):
help='If event is created, the state is \'Draft\'.If event is confirmed for the particular dates the state is set to \'Confirmed\'. If the event is over, the state is set to \'Done\'.If event is cancelled the state is set to \'Cancelled\'.'),
'email_registration_id' : fields.many2one('email.template','Email registration'),
'email_confirmation_id' : fields.many2one('email.template','Email registration'),
'email_confirmation_id' : fields.many2one('email.template','Email confirmation'),
'reply_to': fields.char('Reply-To', size=64, readonly=False, states={'done': [('readonly', True)]}, help="The email address put in the 'Reply-To' of all emails sent by OpenERP"),
'product_id': fields.many2one('product.product', 'Product', required=True, readonly=True, states={'draft': [('readonly', False)]}, help="The invoices of this event registration will be created with this Product. Thus it allows you to set the default label and the accounting info you want by default on these invoices."),
'note': fields.text('Notes', help="Description or Summary of Event", readonly=False, states={'done': [('readonly', True)]}),
@ -303,6 +305,7 @@ class event_registration(osv.osv):
'nb_register': fields.integer('Quantity', required=True, readonly=True, states={'draft': [('readonly', False)]}, help="Number of Registrations or Tickets"),
'event_id': fields.many2one('event.event', 'Event', required=True, readonly=True, states={'draft': [('readonly', False)]}),
'partner_id': fields.many2one('res.partner', 'Partner', states={'done': [('readonly', True)]}),
'partner_id_address': fields.many2one('res.partner.address', 'Partner', states={'done': [('readonly', True)]}),
"partner_invoice_id": fields.many2one('res.partner', 'Partner Invoiced', readonly=True, states={'draft': [('readonly', False)]}),
"contact_id": fields.many2one('res.partner.address', 'Partner Contact', readonly=False, states={'done': [('readonly', True)]}), #TODO: filter only the contacts that have a function into the selected partner_id
"unit_price": fields.float('Unit Price', required=True, digits_compute=dp.get_precision('Sale Price'), readonly=True, states={'draft': [('readonly', False)]}),
@ -545,33 +548,15 @@ class event_registration(osv.osv):
"""
Send email to user
"""
mail_message = self.pool.get('email.template')
for registration in self.browse(cr, uid, ids, context=context):
# src = registration.reply_to or False
email_to = []
email_cc = []
if registration.email_from:
email_to = [registration.email_from]
if registration.email_cc:
email_cc += [registration.email_cc]
if not (email_to or email_cc):
continue
subject = ""
body = ""
if confirm:
subject = _('Auto Confirmation: [%s] %s') %(registration.id, registration.name)
body = registration.event_id.mail_confirm
elif registration.event_id.mail_auto_confirm or registration.event_id.mail_auto_registr:
if registration.event_id.state in ['draft', 'fixed', 'open', 'confirm', 'running'] and registration.event_id.mail_auto_registr:
subject = _('Auto Registration: [%s] %s') %(registration.id, registration.name)
body = registration.event_id.mail_registr
if (registration.event_id.state in ['confirm', 'running']) and registration.event_id.mail_auto_confirm:
subject = _('Auto Confirmation: [%s] %s') %(registration.id, registration.name)
body = registration.event_id.mail_confirm
subject = registration.event_id.email_confirmation_id.subject
reply_to = registration.event_id.email_confirmation_id.reply_to
email_cc = registration.event_id.email_confirmation_id.email_cc
email_to =registration.event_id.email_confirmation_id.email_to
body = registration.event_id.email_confirmation_id.body_html
if subject or body:
mail_message.schedule_with_attach(cr, uid, src, email_to, subject, body, model='event.registration', email_cc=email_cc, res_id=registration.id)
return True
def mail_user_confirm(self, cr, uid, ids, context=None):

View File

@ -109,7 +109,7 @@
<field name="partner_invoice_id" on_change="onchange_partner_invoice_id(event_id, partner_invoice_id)"/>
<group colspan="4" col="4">
<field name="event_product"/>
<field name="nb_register"/>
<field name="nb_register" invisible="1"/>
<field name="unit_price"/>
<field name="price_subtotal"/>
</group>
@ -126,7 +126,7 @@
<field name="create_date" string="Registration Date"/>
<field name="partner_id" required="1" string="Partner" on_change="onchange_partner_id(partner_id,event_id)"/>
<field name="event_product"/>
<field name="nb_register"/>
<field name="nb_register" invisible="1"/>
<field name="unit_price"/>
<field name="price_subtotal"/>
<field name="state"/>
@ -296,7 +296,7 @@
<tree string="Registration">
<field name="partner_id"/>
<field name="event_id"/>
<field name="nb_register"/>
<field name="nb_register" invisible="1"/>
<field name="price_subtotal" sum="Total"/>
<field name="user_id"/>
<field name="state"/>
@ -318,26 +318,23 @@
<field name="date" />
<field name="date_deadline" />
<field name="name"/>
<field name="partner_id" attrs="{'readonly':[('state','!=', 'draft')]}" required="1" on_change="onchange_partner_id(partner_id,event_id)" />
<field name="user_id" attrs="{'readonly':[('state','!=', 'draft')]}" />
<field name="tobe_invoiced"/>
</group>
<notebook colspan="4">
<page string="Registration">
<group colspan="2" col="2">
<separator string="partner" colspan="4"/>
<field name="partner_id" attrs="{'readonly':[('state','!=', 'draft')]}" required="1" on_change="onchange_partner_id(partner_id,event_id)" />
<field name="partner_id_address" colspan="4" />
</group>
<group colspan="2" col="2">
<separator string="Registration Cost" colspan="4"/>
<field name="nb_register" invisible="1"/>
<field name="unit_price"/>
<field name="price_subtotal" invisible="1"/>
</group>
<group colspan="2" col="2" attrs="{'invisible':[('tobe_invoiced','=',False)]}">
<separator string="Invoice" colspan="4"/>
<field name="event_product" attrs="{'required':[('tobe_invoiced','=',True)]}"/>
<field name="partner_invoice_id" attrs="{'required':[('tobe_invoiced','=',True)]}" on_change="onchange_partner_invoice_id(event_id, partner_invoice_id)"/>
<field name="invoice_id"/>
</group>
<separator string="" colspan="4"/>
<group col="8" colspan="4">
@ -347,6 +344,11 @@
<button name="check_confirm" string="Confirm Registration" states="draft" type="object" icon="gtk-apply"/>
</group>
</page>
<page string='invoice'>
<field name="event_product" attrs="{'required':[('tobe_invoiced','=',True)]}"/>
<field name="partner_invoice_id" attrs="{'required':[('tobe_invoiced','=',True)]}" on_change="onchange_partner_invoice_id(event_id, partner_invoice_id)"/>
<field name="invoice_id"/>
</page>
<page string="Extra Info">
<field name="create_date" string="Registration Date"/>
@ -448,7 +450,7 @@
<filter icon="terp-camera_test" string="Confirmed" domain="[('state','=','open')]" help="Confirmed registrations"/>
<separator orientation="vertical"/>
<field name="partner_id" />
<field name="event_id" widget="selection"/>
<field name="event_id" widget="seemaillection"/>
<field name="user_id" widget="selection">
<filter icon="terp-personal"
string="My Registrations"