[IMP] all: next pass of review/renaming for new mail API
bzr revid: odo@openerp.com-20110822171659-zxho36a6n628i10q
This commit is contained in:
@@ -36,10 +36,12 @@ class res_company(osv.osv):
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'overdue_msg': 'Please note that the following payments are now due. If your payment \
|
||||
has been sent, kindly forward your payment details. If payment will be \
|
||||
delayed further, please contact us to discuss. \
|
||||
\nWould your payment have been carried out after this mail was sent, please consider the present one as void.'
|
||||
'overdue_msg': 'Please note that the following payments are now due. If your payment '
|
||||
'has been carried out, may we ask you to forward us your payment details '
|
||||
'as we seem to have missed it. If the payment needs to be delayed further, '
|
||||
'please contact us to discuss.\n'
|
||||
'If your payment has been carried out after this mail was sent, please '
|
||||
'ignore this message.'
|
||||
}
|
||||
|
||||
res_company()
|
||||
|
||||
@@ -17,9 +17,9 @@
|
||||
<field name="description">
|
||||
Dear %(partner_name)s,
|
||||
|
||||
Exception made if there was a mistake of ours, it seems that the following amount staid unpaid. Please, take appropriate measures in order to carry out this payment in the next 8 days.
|
||||
Exception made if there was a mistake of ours, it seems that the following amount stays unpaid. Please, take appropriate measures in order to carry out this payment in the next 8 days.
|
||||
|
||||
Would your payment have been carried out after this mail was sent, please consider the present one as void. Do not hesitate to contact our accounting department at (+32).10.68.94.39.
|
||||
Would your payment have been carried out after this mail was sent, please ignore this message. Do not hesitate to contact our accounting department at (+32).10.68.94.39.
|
||||
|
||||
Best Regards,
|
||||
</field>
|
||||
|
||||
@@ -205,7 +205,7 @@ class account_followup_print_all(osv.osv_memory):
|
||||
move_obj = self.pool.get('account.move.line')
|
||||
user_obj = self.pool.get('res.users')
|
||||
line_obj = self.pool.get('account_followup.stat')
|
||||
email_message_obj = self.pool.get('email.message')
|
||||
mail_message = self.pool.get('mail.message')
|
||||
|
||||
if context is None:
|
||||
context = {}
|
||||
@@ -278,7 +278,7 @@ class account_followup_print_all(osv.osv_memory):
|
||||
msg = ''
|
||||
if dest:
|
||||
try:
|
||||
email_message_obj.schedule_with_attach(cr, uid, src, dest, sub, body, model='account.followup.print.all')
|
||||
mail_message.schedule_with_attach(cr, uid, src, dest, sub, body, context=context)
|
||||
msg_sent += partner.name + '\n'
|
||||
except Exception, e:
|
||||
raise osv.except_osv('Error !', e )
|
||||
|
||||
@@ -299,7 +299,7 @@ the rule to mark CC(mail to any other person defined in actions)."),
|
||||
if context is None:
|
||||
context = {}
|
||||
|
||||
email_message_obj = self.pool.get('email.message')
|
||||
mail_message = self.pool.get('mail.message')
|
||||
body = self.format_mail(obj, body)
|
||||
if not emailfrom:
|
||||
if hasattr(obj, 'user_id') and obj.user_id and obj.user_id.user_email:
|
||||
@@ -311,7 +311,7 @@ the rule to mark CC(mail to any other person defined in actions)."),
|
||||
if not emailfrom:
|
||||
raise osv.except_osv(_('Error!'),
|
||||
_("No E-Mail ID Found for your Company address!"))
|
||||
return email_message_obj.schedule_with_attach(cr, uid, emailfrom, emails, name, body, model='base.action.rule', reply_to=reply_to, openobject_id=str(obj.id))
|
||||
return mail_message.schedule_with_attach(cr, uid, emailfrom, emails, name, body, model='base.action.rule', reply_to=reply_to, res_id=obj.id)
|
||||
|
||||
|
||||
def do_check(self, cr, uid, action, obj, context=None):
|
||||
|
||||
@@ -484,7 +484,7 @@ property or property parameter."),
|
||||
context = {}
|
||||
|
||||
company = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.name
|
||||
email_message_obj = self.pool.get('email.message')
|
||||
mail_message = self.pool.get('mail.message')
|
||||
for att in self.browse(cr, uid, ids, context=context):
|
||||
sign = att.sent_by_uid and att.sent_by_uid.signature or ''
|
||||
sign = '<br>'.join(sign and sign.split('\n') or [])
|
||||
@@ -511,15 +511,15 @@ property or property parameter."),
|
||||
body = html_invitation % body_vals
|
||||
if mail_to and email_from:
|
||||
attach = self.get_ics_file(cr, uid, res_obj, context=context)
|
||||
email_message_obj.schedule_with_attach(cr, uid,
|
||||
mail_message.schedule_with_attach(cr, uid,
|
||||
email_from,
|
||||
mail_to,
|
||||
sub,
|
||||
body,
|
||||
model='calendar.attendee',
|
||||
attach=attach and {'invitation.ics': attach} or None,
|
||||
attachments=attach and {'invitation.ics': attach} or None,
|
||||
subtype='html',
|
||||
reply_to=email_from
|
||||
reply_to=email_from,
|
||||
context=context
|
||||
)
|
||||
return True
|
||||
|
||||
@@ -814,7 +814,7 @@ class calendar_alarm(osv.osv):
|
||||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
email_message_obj = self.pool.get('email.message')
|
||||
mail_message = self.pool.get('mail.message')
|
||||
current_datetime = datetime.now()
|
||||
request_obj = self.pool.get('res.request')
|
||||
alarm_ids = self.search(cr, uid, [('state', '!=', 'done')], context=context)
|
||||
@@ -896,12 +896,12 @@ From:
|
||||
for att in alarm.attendee_ids:
|
||||
mail_to.append(att.user_id.user_email)
|
||||
if mail_to:
|
||||
email_message_obj.schedule_with_attach(cr, uid,
|
||||
mail_message.schedule_with_attach(cr, uid,
|
||||
tools.config.get('email_from', False),
|
||||
mail_to,
|
||||
sub,
|
||||
body,
|
||||
model='calendar.alarm'
|
||||
context=context
|
||||
)
|
||||
if next_trigger_date:
|
||||
update_vals.update({'trigger_date': next_trigger_date})
|
||||
|
||||
+5
-4
@@ -210,8 +210,8 @@ class crm_base(object):
|
||||
class crm_case(crm_base):
|
||||
"""
|
||||
A simple python class to be used for common functions
|
||||
Object that inherit from this class should inherit from mailgate.thread
|
||||
And need a stage_id field
|
||||
Objects that inherit from this class should inherit from mail.thread
|
||||
and need a stage_id field
|
||||
|
||||
And object that inherit (orm inheritance) from a class the overwrite copy
|
||||
"""
|
||||
@@ -472,8 +472,9 @@ class crm_case(crm_base):
|
||||
body,
|
||||
model='crm.case',
|
||||
reply_to=case.section_id.reply_to,
|
||||
res_id=str(case.id),
|
||||
attachments=attach_to_send
|
||||
res_id=case.id,
|
||||
attachments=attach_to_send,
|
||||
context=context
|
||||
)
|
||||
return True
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ class base_action_rule(osv.osv):
|
||||
reply_to = emailfrom
|
||||
if not emailfrom:
|
||||
raise osv.except_osv(_('Error!'), _("No E-Mail Found for your Company address!"))
|
||||
return mail_message.schedule_with_attach(cr, uid, emailfrom, emails, name, body, model='base.action.rule', reply_to=reply_to, res_id=str(obj.id))
|
||||
return mail_message.schedule_with_attach(cr, uid, emailfrom, emails, name, body, model='base.action.rule', reply_to=reply_to, res_id=obj.id)
|
||||
|
||||
def do_check(self, cr, uid, action, obj, context=None):
|
||||
ok = super(base_action_rule, self).do_check(cr, uid, action, obj, context=context)
|
||||
|
||||
@@ -352,7 +352,7 @@ class crm_lead(crm_case, osv.osv):
|
||||
'description': body,
|
||||
'user_id': False,
|
||||
}
|
||||
if msg.get('priority', False):
|
||||
if priority:
|
||||
vals['priority'] = priority
|
||||
res = mail_thread.get_partner(cr, uid, msg.get('from', False))
|
||||
if res:
|
||||
|
||||
@@ -19,8 +19,7 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
#import crm_send_email
|
||||
import email_compose_message
|
||||
import mail_compose_message
|
||||
import crm_add_note
|
||||
|
||||
import crm_lead_to_partner
|
||||
|
||||
@@ -137,7 +137,7 @@ class crm_merge_opportunity(osv.osv_memory):
|
||||
attach_ids = self.get_attachments(cr, uid, opp, context=context)
|
||||
self.set_attachements_res_id(cr, uid, first_opportunity.id, attach_ids)
|
||||
for mail_msg in opp.message_ids:
|
||||
message_obj.write(cr, uid, mail_msg.id, {'res_id': first_opportunity.id, 'name' : _("From %s : %s") % (opp.name, mail_msg.subject) }, context=context)
|
||||
message_obj.write(cr, uid, mail_msg.id, {'res_id': first_opportunity.id, 'subject' : _("From %s : %s") % (opp.name, mail_msg.subject) }, context=context)
|
||||
|
||||
#Notification about loss of information
|
||||
details = []
|
||||
|
||||
+2
-2
@@ -33,8 +33,8 @@ class mail_compose_message(osv.osv_memory):
|
||||
wizard when sending an email related to the document record identified
|
||||
by ``model`` and ``res_id``.
|
||||
|
||||
The default implementation returns an empty dictionary, and is meant
|
||||
to be overridden by subclasses.
|
||||
Overrides the default implementation to provide more default field values
|
||||
related to the corresponding CRM case.
|
||||
|
||||
:param str model: model name of the document record this mail is related to.
|
||||
:param int res_id: id of the document record this mail is related to.
|
||||
@@ -27,7 +27,7 @@ import binascii
|
||||
import tools
|
||||
from tools.translate import _
|
||||
|
||||
wizard.email_compose_message.email_model.append('crm.claim')
|
||||
wizard.mail_compose_message.SUPPORTED_MODELS.append('crm.claim')
|
||||
CRM_CLAIM_PENDING_STATES = (
|
||||
crm.AVAILABLE_STATES[2][0], # Cancelled
|
||||
crm.AVAILABLE_STATES[3][0], # Done
|
||||
|
||||
@@ -106,7 +106,7 @@ class crm_claim_report(osv.osv):
|
||||
c.type_action as type_action,
|
||||
date_trunc('day',c.create_date) as create_date,
|
||||
avg(extract('epoch' from (c.date_closed-c.create_date)))/(3600*24) as delay_close,
|
||||
(SELECT count(id) FROM email_message WHERE model='crm.claim' AND res_id=c.id AND email_from IS NOT NULL) AS email,
|
||||
(SELECT count(id) FROM mail_message WHERE model='crm.claim' AND res_id=c.id AND email_from IS NOT NULL) AS email,
|
||||
(SELECT avg(probability) FROM crm_case_stage WHERE type='claim' AND id=c.stage_id) AS probability,
|
||||
extract('epoch' from (c.date_deadline - c.date_closed))/(3600*24) as delay_expected
|
||||
from
|
||||
|
||||
@@ -23,7 +23,7 @@ from osv import fields, osv
|
||||
from crm import crm
|
||||
from crm import wizard
|
||||
|
||||
wizard.email_compose_message.email_model.append('crm.fundraising')
|
||||
wizard.mail_compose_message.SUPPORTED_MODELS.append('crm.fundraising')
|
||||
|
||||
class crm_fundraising(crm.crm_case, osv.osv):
|
||||
""" Fund Raising Cases """
|
||||
|
||||
@@ -111,7 +111,7 @@ class crm_helpdesk(crm.crm_case, osv.osv):
|
||||
'description': body,
|
||||
'user_id': False,
|
||||
}
|
||||
if msg.get('priority', False):
|
||||
if priority:
|
||||
vals['priority'] = priority
|
||||
|
||||
res = thread_pool.get_partner(cr, uid, msg.get('from', False))
|
||||
|
||||
@@ -97,7 +97,7 @@ class crm_helpdesk_report(osv.osv):
|
||||
c.planned_cost,
|
||||
count(*) as nbr,
|
||||
extract('epoch' from (c.date_closed-c.create_date))/(3600*24) as delay_close,
|
||||
(SELECT count(id) FROM email_message WHERE model='crm.helpdesk' AND res_id=c.id AND email_from IS NOT NULL) AS email,
|
||||
(SELECT count(id) FROM mail_message WHERE model='crm.helpdesk' AND res_id=c.id AND email_from IS NOT NULL) AS email,
|
||||
abs(avg(extract('epoch' from (c.date_deadline - c.date_closed)))/(3600*24)) as delay_expected
|
||||
from
|
||||
crm_helpdesk c
|
||||
|
||||
@@ -24,15 +24,21 @@ from osv import fields
|
||||
import tools
|
||||
|
||||
class email_compose_message(osv.osv_memory):
|
||||
_inherit = 'email.compose.message'
|
||||
_inherit = 'mail.compose.message'
|
||||
|
||||
def get_value(self, cr, uid, model, resource_id, context=None):
|
||||
'''
|
||||
To get values of the resource_id for the model
|
||||
@param model: Object
|
||||
@param resource_id: id of a record for which values to be read
|
||||
"""Returns a defaults-like dict with initial values for the composition
|
||||
wizard when sending an email related to the document record identified
|
||||
by ``model`` and ``res_id``.
|
||||
|
||||
@return: Returns a dictionary
|
||||
Overrides the default implementation to provide more default field values
|
||||
related to the corresponding CRM case.
|
||||
|
||||
:param str model: model name of the document record this mail is related to.
|
||||
:param int res_id: id of the document record this mail is related to.
|
||||
:param dict context: several context values will modify the behavior
|
||||
of the wizard, cfr. the class description.
|
||||
'''
|
||||
if context is None:
|
||||
context = {}
|
||||
|
||||
@@ -281,7 +281,7 @@ class event_registration(osv.osv):
|
||||
"""Event Registration"""
|
||||
_name= 'event.registration'
|
||||
_description = __doc__
|
||||
_inherit = 'email.thread'
|
||||
_inherit = 'mail.thread'
|
||||
|
||||
def _amount_line(self, cr, uid, ids, field_name, arg, context=None):
|
||||
cur_obj = self.pool.get('res.currency')
|
||||
@@ -314,8 +314,8 @@ class event_registration(osv.osv):
|
||||
'create_date': fields.datetime('Creation Date', readonly=True),
|
||||
'write_date': fields.datetime('Write Date', readonly=True),
|
||||
'description': fields.text('Description', states={'done': [('readonly', True)]}),
|
||||
'message_ids': fields.one2many('email.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
|
||||
'log_ids': fields.one2many('email.message', 'res_id', 'Logs', domain=[('history', '=', False),('model','=',_name)]),
|
||||
'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
|
||||
'log_ids': fields.one2many('mail.message', 'res_id', 'Logs', domain=[('email_from', '=', False),('model','=',_name)]),
|
||||
'date_deadline': fields.related('event_id','date_end', type='datetime', string="End Date", readonly=True),
|
||||
'date': fields.related('event_id', 'date_begin', type='datetime', string="Start Date", readonly=True),
|
||||
'user_id': fields.many2one('res.users', 'Responsible', states={'done': [('readonly', True)]}),
|
||||
@@ -522,7 +522,7 @@ class event_registration(osv.osv):
|
||||
"""
|
||||
Send email to user
|
||||
"""
|
||||
email_message_obj = self.pool.get('email.message')
|
||||
mail_message = self.pool.get('mail.message')
|
||||
for regestration in self.browse(cr, uid, ids, context=context):
|
||||
src = regestration.event_id.reply_to or False
|
||||
email_to = []
|
||||
@@ -546,7 +546,7 @@ class event_registration(osv.osv):
|
||||
subject = _('Auto Confirmation: [%s] %s') %(regestration.id, regestration.name)
|
||||
body = regestration.event_id.mail_confirm
|
||||
if subject or body:
|
||||
email_message_obj.schedule_with_attach(cr, uid, src, email_to, subject, body, model='event.registration', email_cc=email_cc, openobject_id=regestration.id)
|
||||
mail_message.schedule_with_attach(cr, uid, src, email_to, subject, body, model='event.registration', email_cc=email_cc, res_id=regestration.id)
|
||||
|
||||
return True
|
||||
|
||||
|
||||
@@ -391,9 +391,8 @@
|
||||
<field name="message_ids" colspan="4" nolabel="1" mode="tree,form">
|
||||
<tree string="History">
|
||||
<field name="display_text" string="History Information"/>
|
||||
<field name="history" invisible="1"/>
|
||||
<button
|
||||
string="Reply" attrs="{'invisible': [('history', '!=', True)]}"
|
||||
string="Reply" attrs="{'invisible': [('email_from', '=', False)]}"
|
||||
name="%(mail.action_email_compose_message_wizard)d"
|
||||
context="{'mail':'reply', 'message_id':active_id}"
|
||||
icon="terp-mail-replied" type="action" />
|
||||
@@ -405,18 +404,17 @@
|
||||
<field name="email_to" widget="char" size="512"/>
|
||||
<field name="email_cc" widget="char" size="512"/>
|
||||
<field name="subject" colspan="4" widget="char" size="512"/>
|
||||
<field name="history" invisible="1"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Details">
|
||||
<group attrs="{'invisible': [('history', '!=', True)]}">
|
||||
<field name="body" colspan="4" nolabel="1" height="250"/>
|
||||
<group attrs="{'invisible': [('email_from', '=', False)]}">
|
||||
<field name="body_text" colspan="4" nolabel="1" height="250"/>
|
||||
<button colspan="4" string="Reply"
|
||||
name="%(mail.action_email_compose_message_wizard)d"
|
||||
context="{'mail':'reply', 'message_id':active_id}"
|
||||
icon="terp-mail-replied" type="action"/>
|
||||
</group>
|
||||
<group attrs="{'invisible': [('history', '=', True)]}">
|
||||
<group attrs="{'invisible': [('email_from', '!=', False)]}">
|
||||
<field name="display_text" colspan="4" nolabel="1" height="250"/>
|
||||
</group>
|
||||
</page>
|
||||
|
||||
@@ -24,7 +24,7 @@ from osv import fields
|
||||
import tools
|
||||
|
||||
class email_compose_message(osv.osv_memory):
|
||||
_inherit = 'email.compose.message'
|
||||
_inherit = 'mail.compose.message'
|
||||
|
||||
def get_value(self, cr, uid, model, resource_id, context=None):
|
||||
'''
|
||||
@@ -44,13 +44,11 @@ class email_compose_message(osv.osv_memory):
|
||||
'subject' : data.event_id.name or False,
|
||||
'email_to' : data.email_from or False,
|
||||
'email_from' : data.user_id and data.user_id.address_id and data.user_id.address_id.email or False,
|
||||
'body' : '\n' + (tools.ustr(data.user_id.signature or '')),
|
||||
'body_text' : '\n' + (tools.ustr(data.user_id.signature or '')),
|
||||
'email_cc' : tools.ustr(data.email_cc or ''),
|
||||
'model': model,
|
||||
'res_id': resource_id,
|
||||
})
|
||||
return result
|
||||
|
||||
email_compose_message()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -149,7 +149,7 @@ class email_server(osv.osv):
|
||||
def fetch_mail(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
thread_pool = self.pool.get('email.thread')
|
||||
thread_pool = self.pool.get('mail.thread')
|
||||
action_pool = self.pool.get('ir.actions.server')
|
||||
context.update({'get_server': True})
|
||||
for server in self.browse(cr, uid, ids, context=context):
|
||||
@@ -201,9 +201,9 @@ class email_server(osv.osv):
|
||||
|
||||
email_server()
|
||||
|
||||
class email_message(osv.osv):
|
||||
class mail_message(osv.osv):
|
||||
|
||||
_inherit = "email.message"
|
||||
_inherit = "mail.message"
|
||||
|
||||
_columns = {
|
||||
'server_id': fields.many2one('email.server', "Mail Server", readonly=True, select=True),
|
||||
@@ -215,7 +215,7 @@ class email_message(osv.osv):
|
||||
server_id = context.get('server_id',False)
|
||||
if server_id:
|
||||
values['server_id'] = server_id
|
||||
res = super(email_message,self).create(cr, uid, values, context=context)
|
||||
res = super(mail_message,self).create(cr, uid, values, context=context)
|
||||
return res
|
||||
|
||||
def write(self, cr, uid, ids, values, context=None):
|
||||
@@ -224,9 +224,8 @@ class email_message(osv.osv):
|
||||
server_id = context.get('server_id',False)
|
||||
if server_id:
|
||||
values['server_id'] = server_id
|
||||
res = super(email_message,self).write(cr, uid, ids, values, context=context)
|
||||
res = super(mail_message,self).write(cr, uid, ids, values, context=context)
|
||||
return res
|
||||
|
||||
email_message()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -109,8 +109,8 @@
|
||||
/>
|
||||
|
||||
<record model="ir.ui.view" id="email_message_tree_view">
|
||||
<field name="name">email.message.tree</field>
|
||||
<field name="model">email.message</field>
|
||||
<field name="name">mail.message.tree</field>
|
||||
<field name="model">mail.message</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="inherit_id" ref="mail.view_email_message_tree"/>
|
||||
<field name="arch" type="xml">
|
||||
@@ -121,8 +121,8 @@
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="email_message_search_view">
|
||||
<field name="name">email.message.inherit.search</field>
|
||||
<field name="model">email.message</field>
|
||||
<field name="name">mail.message.inherit.search</field>
|
||||
<field name="model">mail.message</field>
|
||||
<field name="type">search</field>
|
||||
<field name="inherit_id" ref="mail.view_email_message_search"/>
|
||||
<field name="arch" type="xml">
|
||||
@@ -134,7 +134,7 @@
|
||||
|
||||
<record id="action_view_mail_message_emails" model="ir.actions.act_window">
|
||||
<field name="name">Messages</field>
|
||||
<field name="res_model">email.message</field>
|
||||
<field name="res_model">mail.message</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="context">{'search_default_emails': 1}</field>
|
||||
@@ -143,8 +143,8 @@
|
||||
|
||||
<act_window
|
||||
context="{'search_default_server_id': [active_id], 'default_server_id': active_id}"
|
||||
id="act_server_history" name="Messages" domain="[('history', '=', True), ('server_id', '=', active_id)]"
|
||||
res_model="email.message" src_model="email.server"/>
|
||||
id="act_server_history" name="Messages" domain="[('email_from', '!=', False), ('server_id', '=', active_id)]"
|
||||
res_model="mail.message" src_model="email.server"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -192,7 +192,7 @@ class hr_evaluation(osv.osv):
|
||||
return {'value': {'plan_id':evaluation_plan_id}}
|
||||
|
||||
def button_plan_in_progress(self, cr, uid, ids, context=None):
|
||||
email_message_obj = self.pool.get('email.message')
|
||||
mail_message = self.pool.get('mail.message')
|
||||
hr_eval_inter_obj = self.pool.get('hr.evaluation.interview')
|
||||
if context is None:
|
||||
context = {}
|
||||
@@ -229,7 +229,7 @@ class hr_evaluation(osv.osv):
|
||||
sub = phase.email_subject
|
||||
dest = [child.work_email]
|
||||
if dest:
|
||||
email_message_obj.schedule_with_attach(cr, uid, evaluation.employee_id.work_email, dest, sub, body, model='hr_evaluation.evaluation')
|
||||
mail_message.schedule_with_attach(cr, uid, evaluation.employee_id.work_email, dest, sub, body, context=context)
|
||||
|
||||
self.write(cr, uid, ids, {'state':'wait'}, context=context)
|
||||
return True
|
||||
|
||||
@@ -412,7 +412,7 @@
|
||||
<!-- Email Compose message Action-->
|
||||
<act_window
|
||||
id="evaluation_reminders" name="Evaluation Reminders"
|
||||
res_model="email.compose.message"
|
||||
res_model="mail.compose.message"
|
||||
src_model="hr.evaluation.interview"
|
||||
view_type="form" view_mode="form"
|
||||
target="new" multi="True"
|
||||
|
||||
@@ -24,8 +24,8 @@ from osv import fields
|
||||
import tools
|
||||
from tools.translate import _
|
||||
|
||||
class email_compose_message(osv.osv_memory):
|
||||
_inherit = 'email.compose.message'
|
||||
class mail_compose_message(osv.osv_memory):
|
||||
_inherit = 'mail.compose.message'
|
||||
|
||||
def get_value(self, cr, uid, model, resource_id, context=None):
|
||||
'''
|
||||
@@ -37,7 +37,7 @@ class email_compose_message(osv.osv_memory):
|
||||
'''
|
||||
if context is None:
|
||||
context = {}
|
||||
result = super(email_compose_message, self).get_value(cr, uid, model, resource_id, context=context)
|
||||
result = super(mail_compose_message, self).get_value(cr, uid, model, resource_id, context=context)
|
||||
if model == 'hr.evaluation.interview' and resource_id:
|
||||
model_pool = self.pool.get(model)
|
||||
record_data = model_pool.browse(cr, uid, resource_id, context)
|
||||
@@ -47,7 +47,7 @@ class email_compose_message(osv.osv_memory):
|
||||
'email_from': tools.config.get('email_from',''),
|
||||
'email_to': record_data.user_to_review_id.work_email or False,
|
||||
'subject': _("Reminder to fill up Survey"),
|
||||
'body': msg,
|
||||
'body_text': msg,
|
||||
'res_id': resource_id,
|
||||
'model': model,
|
||||
'email_cc': False,
|
||||
@@ -56,6 +56,5 @@ class email_compose_message(osv.osv_memory):
|
||||
})
|
||||
return result
|
||||
|
||||
email_compose_message()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -23,22 +23,20 @@ import tools
|
||||
|
||||
class hr_evaluation_reminder(osv.osv_memory):
|
||||
_name = "hr.evaluation.reminder"
|
||||
_description = "Sends Reminders to employess to fill the evaluations"
|
||||
_description = "Sends Reminders to employees to fill the evaluations"
|
||||
_columns = {
|
||||
'evaluation_id': fields.many2one('hr.evaluation.interview', 'Interview', required=True)
|
||||
}
|
||||
|
||||
def send_mail(self, cr, uid, ids, context=None):
|
||||
email_message_obj = self.pool.get('email.message')
|
||||
mail_message = self.pool.get('mail.message')
|
||||
hr_evaluation_interview_obj = self.pool.get('hr.evaluation.interview')
|
||||
evaluation_data = self.read(cr, uid, ids, context=context)[0]
|
||||
current_interview = hr_evaluation_interview_obj.browse(cr, uid, evaluation_data.get('evaluation_id'))
|
||||
if current_interview.state == "waiting_answer" and current_interview.user_to_review_id.work_email :
|
||||
msg = " Hello %s, \n\n Kindly post your response for '%s' survey interview. \n\n Thanks," %(current_interview.user_to_review_id.name, current_interview.survey_id.title)
|
||||
email_message_obj.schedule_with_attach(cr, uid, tools.config['email_from'], [current_interview.user_to_review_id.work_email],\
|
||||
'Reminder to fill up Survey', msg, model='hr.evaluation.reminder')
|
||||
mail_message.schedule_with_attach(cr, uid, tools.config['email_from'], [current_interview.user_to_review_id.work_email],\
|
||||
'Reminder to fill up Survey', msg, context=context)
|
||||
return {'type': 'ir.actions.act_window_close'}
|
||||
|
||||
hr_evaluation_reminder()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -80,7 +80,7 @@ class hr_applicant(crm.crm_case, osv.osv):
|
||||
_name = "hr.applicant"
|
||||
_description = "Applicant"
|
||||
_order = "id desc"
|
||||
_inherit = ['email.thread']
|
||||
_inherit = ['mail.thread']
|
||||
|
||||
def _compute_day(self, cr, uid, ids, fields, args, context=None):
|
||||
"""
|
||||
@@ -118,7 +118,7 @@ class hr_applicant(crm.crm_case, osv.osv):
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Name', size=128, required=True),
|
||||
'message_ids': fields.one2many('email.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
|
||||
'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
|
||||
'active': fields.boolean('Active', help="If the active field is set to false, it will allow you to hide the case without removing it."),
|
||||
'description': fields.text('Description'),
|
||||
'email_from': fields.char('Email', size=128, help="These people will receive email."),
|
||||
@@ -298,11 +298,11 @@ class hr_applicant(crm.crm_case, osv.osv):
|
||||
value = self.pool.get("survey").action_print_survey(cr, uid, ids, context=context)
|
||||
return value
|
||||
|
||||
def message_new(self, cr, uid, msg, context=None):
|
||||
"""Automatically calls when new email message arrives"""
|
||||
def message_new(self, cr, uid, msg, custom_values=None, context=None):
|
||||
"""Automatically called when new email message arrives"""
|
||||
thread_pool = self.pool.get('mail.thread')
|
||||
subject = msg.get('subject') or _("No Subject")
|
||||
body = msg.get('body')
|
||||
body = msg.get('body_text')
|
||||
msg_from = msg.get('from')
|
||||
priority = msg.get('priority')
|
||||
|
||||
@@ -313,47 +313,23 @@ class hr_applicant(crm.crm_case, osv.osv):
|
||||
'description': body,
|
||||
'user_id': False,
|
||||
}
|
||||
if msg.get('priority', False):
|
||||
if priority:
|
||||
vals['priority'] = priority
|
||||
|
||||
res = thread_pool.get_partner(cr, uid, msg.get('from'))
|
||||
if res:
|
||||
vals.update(res)
|
||||
res_id = self.create(cr, uid, vals, context)
|
||||
|
||||
attachments = msg.get('attachments', {})
|
||||
self.history(cr, uid, [res_id], _('receive'), history=True,
|
||||
subject = msg.get('subject'),
|
||||
email = msg.get('to'),
|
||||
details = msg.get('body'),
|
||||
email_from = msg.get('from'),
|
||||
email_cc = msg.get('cc'),
|
||||
message_id = msg.get('message-id'),
|
||||
references = msg.get('references', False) or msg.get('in-reply-to', False),
|
||||
attach = attachments,
|
||||
email_date = msg.get('date'),
|
||||
body_html= msg.get('body_html'),
|
||||
sub_type = msg.get('sub_type'),
|
||||
headers = msg.get('headers'),
|
||||
priority = msg.get('priority'),
|
||||
context = context)
|
||||
|
||||
self.append_mail(cr, uid, ids, msg, context=context)
|
||||
return res_id
|
||||
|
||||
def message_update(self, cr, uid, ids, msg, vals={}, default_act='pending', context=None):
|
||||
"""
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of update mail’s IDs
|
||||
"""
|
||||
|
||||
if isinstance(ids, (str, int, long)):
|
||||
ids = [ids]
|
||||
|
||||
msg_from = msg['from']
|
||||
vals.update({
|
||||
'description': msg['body']
|
||||
'description': msg['body_text']
|
||||
})
|
||||
if msg.get('priority', False):
|
||||
vals['priority'] = msg.get('priority')
|
||||
@@ -364,7 +340,7 @@ class hr_applicant(crm.crm_case, osv.osv):
|
||||
'probability':'probability'
|
||||
}
|
||||
vls = { }
|
||||
for line in msg['body'].split('\n'):
|
||||
for line in msg['body_text'].split('\n'):
|
||||
line = line.strip()
|
||||
res = tools.misc.command_re.match(line)
|
||||
if res and maps.get(res.group(1).lower(), False):
|
||||
@@ -373,23 +349,7 @@ class hr_applicant(crm.crm_case, osv.osv):
|
||||
|
||||
vals.update(vls)
|
||||
res = self.write(cr, uid, ids, vals, context=context)
|
||||
|
||||
attachments = msg.get('attachments', {})
|
||||
self.history(cr, uid, ids, _('receive'), history=True,
|
||||
subject = msg.get('subject'),
|
||||
email = msg.get('to'),
|
||||
details = msg.get('body'),
|
||||
email_from = msg.get('from'),
|
||||
email_cc = msg.get('cc'),
|
||||
message_id = msg.get('message-id'),
|
||||
references = msg.get('references', False) or msg.get('in-reply-to', False),
|
||||
attach = attachments,
|
||||
email_date = msg.get('date'),
|
||||
body_html= msg.get('body_html'),
|
||||
sub_type = msg.get('sub_type'),
|
||||
headers = msg.get('headers'),
|
||||
priority = msg.get('priority'),
|
||||
context = context)
|
||||
self.append_mail(cr, uid, ids, msg, context=context)
|
||||
return res
|
||||
|
||||
def case_open(self, cr, uid, ids, *args):
|
||||
|
||||
@@ -144,9 +144,8 @@
|
||||
<field name="message_ids" colspan="4" nolabel="1" mode="tree,form">
|
||||
<tree string="History">
|
||||
<field name="display_text" string="History Information"/>
|
||||
<field name="history" invisible="1"/>
|
||||
<button
|
||||
string="Reply" attrs="{'invisible': [('history', '!=', True)]}"
|
||||
string="Reply" attrs="{'invisible': [('email_from', '=', False)]}"
|
||||
name="%(mail.action_email_compose_message_wizard)d"
|
||||
context="{'mail':'reply', 'message_id':active_id}"
|
||||
icon="terp-mail-replied" type="action" />
|
||||
@@ -158,18 +157,17 @@
|
||||
<field name="email_to" widget="char" size="512"/>
|
||||
<field name="email_cc" widget="char" size="512"/>
|
||||
<field name="subject" colspan="4" widget="char" size="512"/>
|
||||
<field name="history" invisible="1"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Details">
|
||||
<group attrs="{'invisible': [('history', '!=', True)]}">
|
||||
<group attrs="{'invisible': [('email_from', '=', False)]}">
|
||||
<field name="body" colspan="4" nolabel="1" height="250"/>
|
||||
<button colspan="4" string="Reply"
|
||||
name="%(mail.action_email_compose_message_wizard)d"
|
||||
context="{'mail':'reply', 'message_id':active_id}"
|
||||
icon="terp-mail-replied" type="action"/>
|
||||
</group>
|
||||
<group attrs="{'invisible': [('history', '=', True)]}">
|
||||
<group attrs="{'invisible': [('email_from', '!=', False)]}">
|
||||
<field name="display_text" colspan="4" nolabel="1" height="250"/>
|
||||
</group>
|
||||
</page>
|
||||
|
||||
@@ -25,7 +25,7 @@ import tools
|
||||
|
||||
|
||||
class email_compose_message(osv.osv_memory):
|
||||
_inherit = 'email.compose.message'
|
||||
_inherit = 'mail.compose.message'
|
||||
|
||||
def get_value(self, cr, uid, model, resource_id, context=None):
|
||||
'''
|
||||
@@ -45,13 +45,12 @@ class email_compose_message(osv.osv_memory):
|
||||
'subject' : data.name or False,
|
||||
'email_to' : data.email_from or False,
|
||||
'email_from' : data.user_id and data.user_id.address_id and data.user_id.address_id.email or False,
|
||||
'body' : '\n' + (tools.ustr(data.user_id.signature or '')),
|
||||
'body_text' : '\n' + (tools.ustr(data.user_id.signature or '')),
|
||||
'email_cc' : tools.ustr(data.email_cc or ''),
|
||||
'model': model,
|
||||
'res_id': resource_id,
|
||||
})
|
||||
return result
|
||||
|
||||
email_compose_message()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -50,7 +50,7 @@ class job2phonecall(osv.osv_memory):
|
||||
return categ_id and categ_id[0] or case.categ_id and case.categ_id.id or False
|
||||
|
||||
def _get_note(self, cr, uid, context=None):
|
||||
msg_obj = self.pool.get('email.message')
|
||||
mail_message = self.pool.get('mail.message')
|
||||
if context is None:
|
||||
context = {}
|
||||
if context.get('active_id'):
|
||||
@@ -58,9 +58,9 @@ class job2phonecall(osv.osv_memory):
|
||||
if case.description:
|
||||
return case.description
|
||||
else:
|
||||
msg_ids = msg_obj.search(cr, uid, [('model', '=', 'hr.applicant'), ('res_id', '=', case.id), ('email_from', '!=', ''), ('email_to', '!=', '')], limit=1)
|
||||
msg_ids = mail_message.search(cr, uid, [('model', '=', 'hr.applicant'), ('res_id', '=', case.id), ('email_from', '!=', ''), ('email_to', '!=', '')], limit=1)
|
||||
if msg_ids:
|
||||
return msg_obj.browse(cr, uid, msg_ids[0], context=context).description
|
||||
return mail_message.browse(cr, uid, msg_ids[0], context=context).body_text
|
||||
return False
|
||||
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ class mail_message_common(osv.osv_memory):
|
||||
'email_to': fields.char('To', size=256, help='Message recipients'),
|
||||
'email_cc': fields.char('Cc', size=256, help='Carbon copy message recipients'),
|
||||
'email_bcc': fields.char('Bcc', size=256, help='Blind carbon copy message recipients'),
|
||||
'reply_to':fields.char('Reply-To', size=256, help='Response address for the message'),
|
||||
'reply_to':fields.char('Reply-To', size=256, help='Preferred response address for the message'),
|
||||
'headers': fields.text('Message headers', help="Full message headers, e.g. SMTP session headers", readonly=1),
|
||||
'message_id': fields.char('Message-Id', size=256, help='Message unique identifier', select=1, readonly=1),
|
||||
'references': fields.text('References', help='Message references, such as identifiers of previous messages', readonly=1),
|
||||
@@ -205,7 +205,7 @@ class mail_message(osv.osv):
|
||||
:param string subtype: optional mime subtype for the text body (usually 'plain' or 'html'),
|
||||
must match the format of the ``body`` parameter. Default is 'plain',
|
||||
making the content part of the mail "text/plain".
|
||||
:param list attachments: list of (filename, filecontents) pairs, where filecontents is a string
|
||||
:param dict attachments: map of filename to filecontents, where filecontents is a string
|
||||
containing the bytes of the attachment
|
||||
:param dict headers: optional map of headers to set on the outgoing mail (may override the
|
||||
other headers, including Subject, Reply-To, Message-Id, etc.)
|
||||
@@ -245,7 +245,7 @@ class mail_message(osv.osv):
|
||||
}
|
||||
email_msg_id = self.create(cr, uid, msg_vals, context)
|
||||
attachment_ids = []
|
||||
for fname, fcontent in attachments.items():
|
||||
for fname, fcontent in attachments.iteritems():
|
||||
attachment_data = {
|
||||
'name': fname,
|
||||
'datas_fname': fname,
|
||||
@@ -381,6 +381,7 @@ class mail_message(osv.osv):
|
||||
msg['in-reply-to'] = msg_txt.get('In-Reply-To')
|
||||
|
||||
msg['headers'] = {}
|
||||
msg['subtype'] = 'plain'
|
||||
for item in msg_txt.items():
|
||||
if item[0].startswith('X-'):
|
||||
msg['headers'].update({item[0]: item[1]})
|
||||
@@ -391,8 +392,6 @@ class mail_message(osv.osv):
|
||||
msg['body_html'] = body
|
||||
msg['subtype'] = 'html'
|
||||
body = tools.html2plaintext(body)
|
||||
else:
|
||||
msg['subtype'] = 'plain'
|
||||
msg['body_text'] = tools.ustr(body, encoding)
|
||||
|
||||
attachments = {}
|
||||
@@ -415,6 +414,7 @@ class mail_message(osv.osv):
|
||||
content = tools.ustr(content, encoding)
|
||||
if part.get_content_subtype() == 'html':
|
||||
msg['body_html'] = content
|
||||
msg['subtype'] = 'html' # html version prevails
|
||||
body = tools.ustr(tools.html2plaintext(content))
|
||||
elif part.get_content_subtype() == 'plain':
|
||||
body = content
|
||||
@@ -426,7 +426,11 @@ class mail_message(osv.osv):
|
||||
body += tools.ustr(res, encoding)
|
||||
|
||||
msg['body_text'] = body
|
||||
msg['attachments'] = attachments
|
||||
msg['attachments'] = attachments
|
||||
|
||||
# for backwards compatibility:
|
||||
msg['body'] = msg['body_text']
|
||||
msg['sub_type'] = msg['subtype'] or 'plain'
|
||||
return msg
|
||||
|
||||
def send(self, cr, uid, ids, auto_commit=False, context=None):
|
||||
|
||||
@@ -111,7 +111,7 @@ class mail_thread(osv.osv):
|
||||
if custom_values and isinstance(custom_values, dict):
|
||||
data.update(custom_values)
|
||||
res_id = model_pool.create(cr, uid, data, context=context)
|
||||
self.append_mail(cr, uid, ids, msg_dict, context=context)
|
||||
self.append_mail(cr, uid, [res_id], msg_dict, context=context)
|
||||
return res_id
|
||||
|
||||
def message_update(self, cr, uid, ids, msg_dict, vals={}, default_act=None, context=None):
|
||||
|
||||
@@ -218,8 +218,8 @@ class mail_compose_message(osv.osv_memory):
|
||||
|
||||
def render_template(self, cr, uid, template, model, res_id, context=None):
|
||||
"""Render the given template text, replace mako-like expressions ``${expr}``
|
||||
with the result of passing these expressions ``through safe_eval()`` with
|
||||
an evaluation context containing:
|
||||
with the result of evaluating these expressions with an evaluation context
|
||||
containing:
|
||||
|
||||
* ``user``: browse_record of the current user
|
||||
* ``object``: browse_record of the document record this mail is
|
||||
|
||||
@@ -181,14 +181,14 @@ class XMLRpcConn(object):
|
||||
model = rec[0]
|
||||
res_id = rec[1]
|
||||
#Check if mail installed
|
||||
object_id = execute ( conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','search',[('model','=','email.message')])
|
||||
object_id = execute ( conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','search',[('model','=','mail.message')])
|
||||
if not object_id:
|
||||
win32ui.MessageBox("Mail is not installed on your configured database '%s' !!\n\nPlease install it to archive the mail."%(self._dbname),"Mail not installed",win32con.MB_ICONERROR)
|
||||
return
|
||||
object_ids = execute ( conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','search',[('model','=',model)])
|
||||
object_name = execute( conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','read',object_ids,['name'])[0]['name']
|
||||
#Reading the Object ir.model Name
|
||||
ext_ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'email.message','search',[('message_id','=',message_id),('model','=',model),('res_id','=',res_id)])
|
||||
ext_ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'mail.message','search',[('message_id','=',message_id),('model','=',model),('res_id','=',res_id)])
|
||||
if ext_ids:
|
||||
name = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,model,'read',res_id,['name'])['name']
|
||||
ext_msg += """This mail is already archived to {0} '{1}'.\n""".format(object_name,name)
|
||||
@@ -208,14 +208,25 @@ class XMLRpcConn(object):
|
||||
context['thread_model'] = model
|
||||
if attachments:
|
||||
result = self.MakeAttachment([rec], mail)
|
||||
execute(conn,'execute',self._dbname,int(self._uid),self._pwd, \
|
||||
'email.thread','history', [res_id], 'receive', \
|
||||
True, msg.get('subject',False),\
|
||||
msg.get('to'), msg.get('body', False),\
|
||||
msg.get('from'), msg.get('message-id'),\
|
||||
msg.get('references', False), result,\
|
||||
msg.get('cc'), False,\
|
||||
msg.get('date'), context)
|
||||
execute(conn, 'execute', self. _dbname, int(self._uid), self._pwd,
|
||||
'mail.thread','history',[res_id],
|
||||
msg.get('subject', False),
|
||||
msg.get('body', False),
|
||||
msg.get('to', False),
|
||||
msg.get('from', False),
|
||||
msg.get('cc', False),
|
||||
False, # BCC
|
||||
False, #reply-to
|
||||
msg.get('date', False),
|
||||
msg.get('message-id'),\
|
||||
msg.get('references', False),
|
||||
result, #attachments
|
||||
#FIXME: properly handle plaintext/html body variants?
|
||||
False, #body_html
|
||||
False, #subtype
|
||||
False, #headers
|
||||
False, #original
|
||||
context)
|
||||
|
||||
new_msg += """- {0} : {1}\n""".format(object_name,str(rec[2]))
|
||||
flag = True
|
||||
@@ -306,7 +317,7 @@ class XMLRpcConn(object):
|
||||
endCut = message_id.find(">")
|
||||
message_id = message_id[startCut:endCut+1]
|
||||
email.replace_header('Message-Id',message_id)
|
||||
id = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'email.thread','process_email',section, str(email))
|
||||
id = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'mail.thread','process_email',section, str(email))
|
||||
if id > 0:
|
||||
flag = True
|
||||
return flag
|
||||
@@ -453,17 +464,17 @@ class XMLRpcConn(object):
|
||||
import win32ui
|
||||
conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object')
|
||||
res_vals = []
|
||||
mail_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'email.message', 'search', [('message_id','=',message_id)])
|
||||
mail_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'mail.message', 'search', [('message_id','=',message_id)])
|
||||
ref_mail_id = None
|
||||
if not mail_id:
|
||||
ref_mail_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'email.message', 'search', [('references','=',message_id)])
|
||||
ref_mail_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'mail.message', 'search', [('references','like','%'+message_id+'%')])
|
||||
if ref_mail_id:
|
||||
address = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'email.message','read',ref_mail_id[0],['model','res_id'])
|
||||
address = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'mail.message','read',ref_mail_id[0],['model','res_id'])
|
||||
for key, vals in address.items():
|
||||
res_vals.append([key,vals])
|
||||
return res_vals
|
||||
return None
|
||||
address = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'email.message','read',mail_id[0],['model','res_id'])
|
||||
address = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'mail.message','read',mail_id[0],['model','res_id'])
|
||||
for key, vals in address.items():
|
||||
res_vals.append([key,vals])
|
||||
return res_vals
|
||||
|
||||
@@ -24,7 +24,7 @@ from osv import fields
|
||||
from tools.translate import _
|
||||
|
||||
class email_compose_message(osv.osv_memory):
|
||||
_inherit = 'email.compose.message'
|
||||
_inherit = 'mail.compose.message'
|
||||
|
||||
def get_value(self, cr, uid, model, resource_id, context=None):
|
||||
'''
|
||||
@@ -34,8 +34,6 @@ class email_compose_message(osv.osv_memory):
|
||||
|
||||
@return: Returns a dictionary
|
||||
'''
|
||||
if context is None:
|
||||
context = {}
|
||||
result = super(email_compose_message, self).get_value(cr, uid, model, resource_id, context=context)
|
||||
if model == 'project.task' and resource_id:
|
||||
task_pool = self.pool.get('project.task')
|
||||
@@ -61,7 +59,7 @@ class email_compose_message(osv.osv_memory):
|
||||
if partner and len(partner.address):
|
||||
result.update({'email_to': result.get('email_to',False) and result.get('email_to') + ',' + partner.address[0].email})
|
||||
result.update({
|
||||
'body': description or False,
|
||||
'body_text': description or False,
|
||||
'email_to': task_data.project_id.user_id and task_data.project_id.user_id.user_email or False,
|
||||
'subject': _("Task '%s' Closed") % task_data.name,
|
||||
'model': model,
|
||||
@@ -70,6 +68,5 @@ class email_compose_message(osv.osv_memory):
|
||||
|
||||
return result
|
||||
|
||||
email_compose_message()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -68,7 +68,7 @@ class project_task_close(osv.osv_memory):
|
||||
if context is None:
|
||||
context = {}
|
||||
|
||||
email_message_obj = self.pool.get('email.message')
|
||||
mail_message = self.pool.get('mail.message')
|
||||
task_pool = self.pool.get('project.task')
|
||||
task_id = context.get('active_id', False)
|
||||
if not task_id:
|
||||
@@ -113,7 +113,7 @@ class project_task_close(osv.osv_memory):
|
||||
to_adr.append(data.manager_email)
|
||||
if data.partner_warn and data.partner_email:
|
||||
to_adr.append(data.partner_email)
|
||||
mail_id = email_message_obj.schedule_with_attach(cr, uid, from_adr, to_adr, subject, tools.ustr(body), model='project.task.close', email_bcc=[from_adr])
|
||||
mail_id = mail_message.schedule_with_attach(cr, uid, from_adr, to_adr, subject, tools.ustr(body), email_bcc=[from_adr], context=context)
|
||||
if not mail_id:
|
||||
raise osv.except_osv(_('Error'), _("Couldn't send mail! Check the email ids and smtp configuration settings"))
|
||||
return {'type': 'ir.actions.act_window_close'}
|
||||
|
||||
@@ -44,7 +44,7 @@ class project_issue(crm.crm_case, osv.osv):
|
||||
_name = "project.issue"
|
||||
_description = "Project Issue"
|
||||
_order = "priority, create_date desc"
|
||||
_inherit = ['email.thread']
|
||||
_inherit = ['mail.thread']
|
||||
|
||||
def case_open(self, cr, uid, ids, *args):
|
||||
"""
|
||||
@@ -383,20 +383,14 @@ class project_issue(crm.crm_case, osv.osv):
|
||||
self.history(cr, uid, cases, _('Escalate'))
|
||||
return True
|
||||
|
||||
def message_new(self, cr, uid, msg, context=None):
|
||||
"""
|
||||
Automatically calls when new email message arrives
|
||||
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks
|
||||
"""
|
||||
def message_new(self, cr, uid, msg, custom_values=None, context=None):
|
||||
"""Automatically called when new email message arrives"""
|
||||
if context is None:
|
||||
context = {}
|
||||
thread_pool = self.pool.get('email.thread')
|
||||
thread_pool = self.pool.get('mail.thread')
|
||||
|
||||
subject = msg.get('subject') or _('No Title')
|
||||
body = msg.get('body')
|
||||
body = msg.get('body_text')
|
||||
msg_from = msg.get('from')
|
||||
priority = msg.get('priority')
|
||||
|
||||
@@ -407,7 +401,7 @@ class project_issue(crm.crm_case, osv.osv):
|
||||
'description': body,
|
||||
'user_id': False,
|
||||
}
|
||||
if msg.get('priority', False):
|
||||
if priority:
|
||||
vals['priority'] = priority
|
||||
|
||||
res = thread_pool.get_partner(cr, uid, msg.get('from'))
|
||||
@@ -415,34 +409,15 @@ class project_issue(crm.crm_case, osv.osv):
|
||||
vals.update(res)
|
||||
context.update({'state_to' : 'draft'})
|
||||
|
||||
res_id = self.create(cr, uid, vals, context)
|
||||
if custom_values and isinstance(custom_values, dict):
|
||||
vals.update(custom_values)
|
||||
|
||||
attachments = msg.get('attachments', {})
|
||||
self.history(cr, uid, [res_id], _('receive'), history=True,
|
||||
subject = msg.get('subject'),
|
||||
email = msg.get('to'),
|
||||
details = msg.get('body'),
|
||||
email_from = msg.get('from'),
|
||||
email_cc = msg.get('cc'),
|
||||
message_id = msg.get('message-id'),
|
||||
references = msg.get('references', False) or msg.get('in-reply-to', False),
|
||||
attach = attachments,
|
||||
email_date = msg.get('date'),
|
||||
body_html= msg.get('body_html'),
|
||||
sub_type = msg.get('sub_type'),
|
||||
headers = msg.get('headers'),
|
||||
priority = msg.get('priority'),
|
||||
context = context)
|
||||
res_id = self.create(cr, uid, vals, context)
|
||||
self.append_mail(cr, uid, [res_id], msg, context=context)
|
||||
self.convert_to_bug(cr, uid, [res_id], context=context)
|
||||
return res_id
|
||||
|
||||
def message_update(self, cr, uid, ids, msg, vals=None, default_act='pending', context=None):
|
||||
"""
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of update mail’s IDs
|
||||
"""
|
||||
|
||||
if vals is None:
|
||||
vals = {}
|
||||
@@ -451,7 +426,7 @@ class project_issue(crm.crm_case, osv.osv):
|
||||
ids = [ids]
|
||||
|
||||
vals.update({
|
||||
'description': msg['body']
|
||||
'description': msg['body_text']
|
||||
})
|
||||
if msg.get('priority', False):
|
||||
vals['priority'] = msg.get('priority')
|
||||
@@ -468,7 +443,7 @@ class project_issue(crm.crm_case, osv.osv):
|
||||
record.write({'state' : 'open'})
|
||||
|
||||
vls = { }
|
||||
for line in msg['body'].split('\n'):
|
||||
for line in msg['body_text'].split('\n'):
|
||||
line = line.strip()
|
||||
res = tools.misc.command_re.match(line)
|
||||
if res and maps.get(res.group(1).lower(), False):
|
||||
@@ -477,23 +452,7 @@ class project_issue(crm.crm_case, osv.osv):
|
||||
|
||||
vals.update(vls)
|
||||
res = self.write(cr, uid, ids, vals)
|
||||
|
||||
attachments = msg.get('attachments', {})
|
||||
self.history(cr, uid, ids, _('receive'), history=True,
|
||||
subject = msg.get('subject'),
|
||||
email = msg.get('to'),
|
||||
details = msg.get('body'),
|
||||
email_from = msg.get('from'),
|
||||
email_cc = msg.get('cc'),
|
||||
message_id = msg.get('message-id'),
|
||||
references = msg.get('references', False) or msg.get('in-reply-to', False),
|
||||
attach = attachments,
|
||||
email_date = msg.get('date'),
|
||||
body_html= msg.get('body_html'),
|
||||
sub_type = msg.get('sub_type'),
|
||||
headers = msg.get('headers'),
|
||||
priority = msg.get('priority'),
|
||||
context = context)
|
||||
self.append_mail(cr, uid, [res_id], msg, context=context)
|
||||
return res
|
||||
|
||||
def copy(self, cr, uid, id, default=None, context=None):
|
||||
|
||||
@@ -100,9 +100,8 @@
|
||||
<field name="message_ids" colspan="4" nolabel="1" mode="tree,form">
|
||||
<tree string="History">
|
||||
<field name="display_text" string="History Information"/>
|
||||
<field name="history" invisible="1"/>
|
||||
<button
|
||||
string="Reply" attrs="{'invisible': [('history', '!=', True)]}"
|
||||
string="Reply" attrs="{'invisible': [('email_from', '=', False)]}"
|
||||
name="%(mail.action_email_compose_message_wizard)d"
|
||||
context="{'mail':'reply', 'message_id':active_id}"
|
||||
icon="terp-mail-replied" type="action" />
|
||||
@@ -114,18 +113,17 @@
|
||||
<field name="email_to" widget="char" size="512"/>
|
||||
<field name="email_cc" widget="char" size="512"/>
|
||||
<field name="subject" colspan="4" widget="char" size="512"/>
|
||||
<field name="history" invisible="1"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Details">
|
||||
<group attrs="{'invisible': [('history', '!=', True)]}">
|
||||
<field name="body" colspan="4" nolabel="1" height="250"/>
|
||||
<group attrs="{'invisible': [('email_from', '=', False)]}">
|
||||
<field name="body_text" colspan="4" nolabel="1" height="250"/>
|
||||
<button colspan="4" string="Reply"
|
||||
name="%(mail.action_email_compose_message_wizard)d"
|
||||
context="{'mail':'reply', 'message_id':active_id}"
|
||||
icon="terp-mail-replied" type="action"/>
|
||||
</group>
|
||||
<group attrs="{'invisible': [('history', '=', True)]}">
|
||||
<group attrs="{'invisible': [('email_from', '!=', False)]}">
|
||||
<field name="display_text" colspan="4" nolabel="1" height="250"/>
|
||||
</group>
|
||||
</page>
|
||||
|
||||
@@ -102,7 +102,7 @@ class project_issue_report(osv.osv):
|
||||
date_trunc('day',c.create_date) as create_date,
|
||||
extract('epoch' from (c.date_open-c.create_date))/(3600*24) as delay_open,
|
||||
extract('epoch' from (c.date_closed-c.date_open))/(3600*24) as delay_close,
|
||||
(SELECT count(id) FROM email_message WHERE model='project.issue' AND res_id=c.id) AS email
|
||||
(SELECT count(id) FROM mail_message WHERE model='project.issue' AND res_id=c.id) AS email
|
||||
|
||||
FROM
|
||||
project_issue c
|
||||
|
||||
@@ -24,7 +24,7 @@ from osv import fields
|
||||
import tools
|
||||
|
||||
class email_compose_message(osv.osv_memory):
|
||||
_inherit = 'email.compose.message'
|
||||
_inherit = 'mail.compose.message'
|
||||
|
||||
def get_value(self, cr, uid, model, resource_id, context=None):
|
||||
'''
|
||||
@@ -44,13 +44,12 @@ class email_compose_message(osv.osv_memory):
|
||||
'subject' : data.name or False,
|
||||
'email_to' : data.email_from or False,
|
||||
'email_from' : data.user_id and data.user_id.address_id and data.user_id.address_id.email or False,
|
||||
'body' : '\n' + (tools.ustr(data.user_id.signature or '')),
|
||||
'body_text' : '\n' + (tools.ustr(data.user_id.signature or '')),
|
||||
'email_cc' : tools.ustr(data.email_cc or ''),
|
||||
'model': model,
|
||||
'res_id': resource_id,
|
||||
})
|
||||
return result
|
||||
|
||||
email_compose_message()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -33,20 +33,11 @@ class project_tasks(osv.osv):
|
||||
'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)], readonly=True),
|
||||
}
|
||||
|
||||
def message_new(self, cr, uid, msg, context=None):
|
||||
# """
|
||||
# Automatically calls when new email message arrives
|
||||
#
|
||||
# @param self: The object pointer
|
||||
# @param cr: the current row, from the database cursor,
|
||||
# @param uid: the current user’s ID for security checks
|
||||
# """
|
||||
thread_obj = self.pool.get('email.thread')
|
||||
def message_new(self, cr, uid, msg, custom_values=None, context=None):
|
||||
thread_obj = self.pool.get('mail.thread')
|
||||
subject = msg.get('subject')
|
||||
body = msg.get('body')
|
||||
body = msg.get('body_text')
|
||||
msg_from = msg.get('from')
|
||||
#TODO map email priority with openerp task priority
|
||||
priority = msg.get('priority')
|
||||
|
||||
data = {
|
||||
'name': subject,
|
||||
@@ -56,34 +47,11 @@ class project_tasks(osv.osv):
|
||||
res = thread_obj.get_partner(cr, uid, msg_from)
|
||||
if res:
|
||||
data.update(res)
|
||||
res_id = self.create(cr, uid, data, context)
|
||||
|
||||
attachments = msg.get('attachments', {})
|
||||
for attachment in attachments:
|
||||
data_attach = {
|
||||
'name': attachment,
|
||||
'datas': binascii.b2a_base64(str(attachments.get(attachment))),
|
||||
'datas_fname': attachment,
|
||||
'description': 'Mail attachment',
|
||||
'res_model': self._name,
|
||||
'res_id': res,
|
||||
}
|
||||
self.pool.get('ir.attachment').create(cr, uid, data_attach, context)
|
||||
self.history(cr, uid, [res_id], _('receive'), history=True,
|
||||
subject = msg.get('subject'),
|
||||
email = msg.get('to'),
|
||||
details = msg.get('body'),
|
||||
email_from = msg.get('from'),
|
||||
email_cc = msg.get('cc'),
|
||||
message_id = msg.get('message-id'),
|
||||
references = msg.get('references', False) or msg.get('in-reply-to', False),
|
||||
attach = attachments,
|
||||
email_date = msg.get('date'),
|
||||
body_html= msg.get('body_html'),
|
||||
sub_type = msg.get('sub_type'),
|
||||
headers = msg.get('headers'),
|
||||
priority = msg.get('priority'),
|
||||
context = context)
|
||||
if custom_values and isinstance(custom_values, dict):
|
||||
data.update(custom_values)
|
||||
res_id = self.create(cr, uid, data, context)
|
||||
self.append_mail(cr, uid, [res_id], msg, context=context)
|
||||
return res_id
|
||||
|
||||
def message_update(self, cr, uid, ids, msg, data={}, default_act='pending'):
|
||||
@@ -95,7 +63,7 @@ class project_tasks(osv.osv):
|
||||
maps = {
|
||||
'cost':'planned_hours',
|
||||
}
|
||||
for line in msg['body'].split('\n'):
|
||||
for line in msg['body_text'].split('\n'):
|
||||
line = line.strip()
|
||||
res = tools.misc.command_re.match(line)
|
||||
if res:
|
||||
@@ -112,23 +80,7 @@ class project_tasks(osv.osv):
|
||||
|
||||
self.write(cr, uid, ids, data, context=context)
|
||||
getattr(self,act)(cr, uid, ids, context=context)
|
||||
|
||||
attachments = msg.get('attachments', {})
|
||||
self.history(cr, uid, ids, _('receive'), history=True,
|
||||
subject = msg.get('subject'),
|
||||
email = msg.get('to'),
|
||||
details = msg.get('body'),
|
||||
email_from = msg.get('from'),
|
||||
email_cc = msg.get('cc'),
|
||||
message_id = msg.get('message-id'),
|
||||
references = msg.get('references', False) or msg.get('in-reply-to', False),
|
||||
attach = attachments,
|
||||
email_date = msg.get('date'),
|
||||
body_html= msg.get('body_html'),
|
||||
sub_type = msg.get('sub_type'),
|
||||
headers = msg.get('headers'),
|
||||
priority = msg.get('priority'),
|
||||
context = context)
|
||||
self.append_mail(cr, uid, [res_id], msg, context=context)
|
||||
return True
|
||||
|
||||
def thread_followers(self, cr, uid, ids, context=None):
|
||||
|
||||
@@ -19,15 +19,14 @@
|
||||
<field name="date"/>
|
||||
<field name="email_to" widget="char" size="512"/>
|
||||
<field name="email_cc" widget="char" size="512"/>
|
||||
<field name="name" colspan="4" widget="char" size="512"/>
|
||||
<field name="history" invisible="1"/>
|
||||
<field name="subject" colspan="4" widget="char" size="512"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Details">
|
||||
<group attrs="{'invisible': [('history', '!=', True)]}">
|
||||
<field name="description" colspan="4" nolabel="1" height="250"/>
|
||||
<group attrs="{'invisible': [('email_from', '=', False)]}">
|
||||
<field name="body_text" colspan="4" nolabel="1" height="250"/>
|
||||
</group>
|
||||
<group attrs="{'invisible': [('history', '=', True)]}">
|
||||
<group attrs="{'invisible': [('email_from', '!=', False)]}">
|
||||
<field name="display_text" colspan="4" nolabel="1" height="250"/>
|
||||
</group>
|
||||
</page>
|
||||
|
||||
@@ -24,7 +24,7 @@ from osv import fields
|
||||
import tools
|
||||
|
||||
class email_compose_message(osv.osv_memory):
|
||||
_inherit = 'email.compose.message'
|
||||
_inherit = 'mail.compose.message'
|
||||
|
||||
def get_value(self, cr, uid, model, resource_id, context=None):
|
||||
'''
|
||||
@@ -44,12 +44,11 @@ class email_compose_message(osv.osv_memory):
|
||||
'subject' : data.name or False,
|
||||
'email_to' : data.user_id.user_email or False,
|
||||
'email_from' : data.user_id and data.user_id.address_id and data.user_id.address_id.email or False,
|
||||
'body' : '\n' + (tools.ustr(data.user_id.signature or '')),
|
||||
'body_text' : '\n' + (tools.ustr(data.user_id.signature or '')),
|
||||
'model': model,
|
||||
'res_id': resource_id,
|
||||
})
|
||||
return result
|
||||
|
||||
email_compose_message()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -317,7 +317,7 @@ class project_scrum_meeting(osv.osv):
|
||||
return True
|
||||
|
||||
def email_send(self, cr, uid, ids, email, context=None):
|
||||
email_message_obj = self.pool.get('email.message')
|
||||
mail_message_obj = self.pool.get('mail.message')
|
||||
meeting_id = self.browse(cr, uid, ids, context=context)[0]
|
||||
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
|
||||
user_email = user.user_email or tools.config.get('email_from', False)
|
||||
@@ -325,7 +325,7 @@ class project_scrum_meeting(osv.osv):
|
||||
body += _('\n* Tasks since yesterday:\n_______________________\n%s\n\n* Task for Today:\n_______________________ \n%s\n\n* Blocks encountered:\n_______________________ \n\n%s') %(meeting_id.question_yesterday,meeting_id.question_today, meeting_id.question_blocks or _('No Blocks'))
|
||||
body += _("\n\nThank you,\n%s") % user.name
|
||||
sub_name = meeting_id.name or _('Scrum Meeting of %s') % meeting_id.date
|
||||
flag = email_message_obj.schedule_with_attach(cr, uid, user_email , [email], sub_name, body, model='project.scrum.meeting', reply_to=None, openobject_id=str(meeting_id.id))
|
||||
flag = mail_message_obj.schedule_with_attach(cr, uid, user_email , [email], sub_name, body, model='project.scrum.meeting', res_id=meeting_id.id, context=context)
|
||||
if not flag:
|
||||
return False
|
||||
return True
|
||||
|
||||
@@ -24,7 +24,7 @@ from osv import fields
|
||||
from tools.translate import _
|
||||
|
||||
class email_compose_message(osv.osv_memory):
|
||||
_inherit = 'email.compose.message'
|
||||
_inherit = 'mail.compose.message'
|
||||
|
||||
def get_value(self, cr, uid, model, resource_id, context=None):
|
||||
'''
|
||||
@@ -55,12 +55,11 @@ class email_compose_message(osv.osv_memory):
|
||||
message = _("Hello , \nI am sending you Scrum Meeting : %s for the Sprint '%s' of Project '%s'") %(meeting.date, sprint.name, sprint.project_id.name)
|
||||
result.update({
|
||||
'subject': subject,
|
||||
'body': message,
|
||||
'body_text': message,
|
||||
'model': model,
|
||||
'res_id': resource_id
|
||||
})
|
||||
return result
|
||||
|
||||
email_compose_message()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -69,7 +69,7 @@ class project_scrum_email(osv.osv_memory):
|
||||
if context is None:
|
||||
context = {}
|
||||
|
||||
email_message_obj = self.pool.get('email.message')
|
||||
mail_message = self.pool.get('mail.message')
|
||||
active_id = context.get('active_id', False)
|
||||
scrum_meeting_pool = self.pool.get('project.scrum.meeting')
|
||||
user_pool = self.pool.get('res.users')
|
||||
@@ -101,8 +101,7 @@ class project_scrum_email(osv.osv_memory):
|
||||
if data.scrum_master_email == data.product_owner_email:
|
||||
data.product_owner_email = False
|
||||
if data.scrum_master_email:
|
||||
email_message_obj.schedule_with_attach(cr, uid, user_email, [data.scrum_master_email], data.subject, body, model='project.scrum.email', reply_to=user_email)
|
||||
mail_message.schedule_with_attach(cr, uid, user_email, [data.scrum_master_email], data.subject, body, reply_to=user_email, context=context)
|
||||
if data.product_owner_email:
|
||||
email_message_obj.schedule_with_attach(cr, uid, user_email, [data.product_owner_email], data.subject, body, model='project.scrum.email', reply_to=user_email)
|
||||
mail_message.schedule_with_attach(cr, uid, user_email, [data.product_owner_email], data.subject, body, reply_to=user_email, context=context)
|
||||
return {'type': 'ir.actions.act_window_close'}
|
||||
project_scrum_email()
|
||||
|
||||
@@ -61,7 +61,7 @@ class survey_question_wiz(osv.osv_memory):
|
||||
sur_response_obj = self.pool.get('survey.response')
|
||||
que_col_head = self.pool.get('survey.question.column.heading')
|
||||
user_obj = self.pool.get('res.users')
|
||||
email_message_obj = self.pool.get('email.message')
|
||||
mail_message = self.pool.get('mail.message')
|
||||
if context is None:
|
||||
context = {}
|
||||
if view_type in ['form']:
|
||||
@@ -429,7 +429,7 @@ class survey_question_wiz(osv.osv_memory):
|
||||
if user_email and resp_email:
|
||||
user_name = user_obj.browse(cr, uid, uid, context=context).name
|
||||
mail = "Hello " + survey_data.responsible_id.name + ",\n\n " + str(user_name) + " Give Response Of " + survey_data.title + " Survey.\n\n Thanks,"
|
||||
email_message_obj.schedule_with_attach(cr, uid, user_email, [resp_email], "Survey Answer Of " + str(user_name) , mail, model='survey.question.wiz', attach = attachments)
|
||||
mail_message.schedule_with_attach(cr, uid, user_email, [resp_email], "Survey Answer Of " + str(user_name) , mail, attachments=attachments, context=context)
|
||||
|
||||
xml_form = etree.Element('form', {'string': _('Complete Survey Answer')})
|
||||
etree.SubElement(xml_form, 'separator', {'string': 'Complete Survey', 'colspan': "4"})
|
||||
|
||||
@@ -102,7 +102,7 @@ class survey_send_invitation(osv.osv_memory):
|
||||
partner_ids = record['partner_ids']
|
||||
user_ref= self.pool.get('res.users')
|
||||
survey_ref= self.pool.get('survey')
|
||||
email_message_obj = self.pool.get('email.message')
|
||||
mail_message = self.pool.get('mail.message')
|
||||
|
||||
model_data_obj = self.pool.get('ir.model.data')
|
||||
group_id = model_data_obj._get_id(cr, uid, 'base', 'group_survey_user')
|
||||
@@ -152,8 +152,8 @@ class survey_send_invitation(osv.osv_memory):
|
||||
mail = record['mail']%{'login':addr.email, 'passwd':user.password, \
|
||||
'name' : addr.name}
|
||||
if record['send_mail_existing']:
|
||||
email_message_obj.schedule_with_attach(cr, uid, record['mail_from'], [addr.email] , \
|
||||
record['mail_subject_existing'] , mail, model='survey.send.invitation')
|
||||
mail_message.schedule_with_attach(cr, uid, record['mail_from'], [addr.email] , \
|
||||
record['mail_subject_existing'] , mail, context=context)
|
||||
existing+= "- %s (Login: %s, Password: %s)\n" % (user.name, addr.email, \
|
||||
user.password)
|
||||
continue
|
||||
@@ -163,8 +163,8 @@ class survey_send_invitation(osv.osv_memory):
|
||||
mail = record['mail']%{'login': user_email.login, \
|
||||
'passwd': user_email.password, 'name': addr.name}
|
||||
if record['send_mail_existing']:
|
||||
email_message_obj.schedule_with_attach(cr, uid, record['mail_from'], [addr.email],\
|
||||
record['mail_subject_existing'], mail, model='survey.send.invitation')
|
||||
mail_message.schedule_with_attach(cr, uid, record['mail_from'], [addr.email],\
|
||||
record['mail_subject_existing'], mail, context=context)
|
||||
res_user+= "- %s (Login: %s, Password: %s)\n" % \
|
||||
(user_email.name, user_email.login, user_email.password)
|
||||
continue
|
||||
@@ -176,8 +176,8 @@ class survey_send_invitation(osv.osv_memory):
|
||||
out+= addr.email + ',' + passwd + '\n'
|
||||
mail= record['mail'] % {'login' : addr.email, 'passwd' : passwd, 'name' : addr.name}
|
||||
if record['send_mail']:
|
||||
ans = email_message_obj.schedule_with_attach(cr, uid, record['mail_from'], [addr.email], \
|
||||
record['mail_subject'], mail, model='survey.send.invitation', attach = attachments)
|
||||
ans = mail_message.schedule_with_attach(cr, uid, record['mail_from'], [addr.email], \
|
||||
record['mail_subject'], mail, attachments=attachments, context=context)
|
||||
|
||||
if ans:
|
||||
res_data = {'name': addr.name or 'Unknown',
|
||||
|
||||
@@ -45,11 +45,11 @@ class thunderbird_partner(osv.osv_memory):
|
||||
ref_ids = str(dictcreate.get('ref_ids')).split(';')
|
||||
msg = dictcreate.get('message')
|
||||
mail = msg
|
||||
msg = self.pool.get('email.message').parse_message(msg)
|
||||
mail_message = self.pool.get('mail.message')
|
||||
msg = mail_message.parse_message(msg)
|
||||
subject = msg.get('Subject', False)
|
||||
thread_pool = self.pool.get('email.thread')
|
||||
thread_pool = self.pool.get('mail.thread')
|
||||
message_id = msg.get('message-id', False)
|
||||
msg_pool = self.pool.get('email.message')
|
||||
msg_ids = []
|
||||
res = {}
|
||||
res_ids = []
|
||||
@@ -59,7 +59,7 @@ class thunderbird_partner(osv.osv_memory):
|
||||
model = ref[0]
|
||||
res_id = int(ref[1])
|
||||
if message_id:
|
||||
msg_ids = msg_pool.search(cr, uid, [('message_id','=',message_id),('res_id','=',res_id),('model','=',model)])
|
||||
msg_ids = mail_message.search(cr, uid, [('message_id','=',message_id),('res_id','=',res_id),('model','=',model)])
|
||||
if msg_ids and len(msg_ids):
|
||||
continue
|
||||
if model not in obj_list:
|
||||
@@ -88,21 +88,22 @@ class thunderbird_partner(osv.osv_memory):
|
||||
res['res_id'] = res_id
|
||||
obj_attch.create(cr, uid, res)
|
||||
threads = self.pool.get(model).browse(cr, uid, res_id)
|
||||
thread_pool.history(cr, uid, [threads], _('receive'), history=True,
|
||||
|
||||
thread_pool.history(cr, uid,
|
||||
[threads],
|
||||
subject = msg.get('subject'),
|
||||
email = msg.get('to'),
|
||||
details = msg.get('body'),
|
||||
details = msg.get('body_text'),
|
||||
email_to = msg.get('to'),
|
||||
email_from = msg.get('from'),
|
||||
email_cc = msg.get('cc'),
|
||||
message_id = msg.get('message-id'),
|
||||
references = msg.get('references', False) or msg.get('in-reply-to', False),
|
||||
attach = msg.get('attachments', {}),
|
||||
attachments = msg.get('attachments', {}),
|
||||
email_date = msg.get('date'),
|
||||
body_html= msg.get('body_html'),
|
||||
sub_type = msg.get('sub_type'),
|
||||
subtype = msg.get('subtype'),
|
||||
headers = msg.get('headers'),
|
||||
reply = msg.get('reply'),
|
||||
priority = msg.get('priority'),)
|
||||
reply_to = msg.get('reply'))
|
||||
res_ids.append(res_id)
|
||||
return len(res_ids)
|
||||
|
||||
@@ -110,7 +111,7 @@ class thunderbird_partner(osv.osv_memory):
|
||||
dictcreate = dict(vals)
|
||||
model = str(dictcreate.get('model'))
|
||||
message = dictcreate.get('message')
|
||||
return self.pool.get('email.thread').process_email(cr, uid, model, message, attach=True, context=None)
|
||||
return self.pool.get('mail.thread').process_email(cr, uid, model, message, attach=True, context=None)
|
||||
|
||||
def search_message(self, cr, uid, message, context=None):
|
||||
#@param message: string of mail which is read from EML File
|
||||
@@ -118,26 +119,26 @@ class thunderbird_partner(osv.osv_memory):
|
||||
references = []
|
||||
dictcreate = dict(message)
|
||||
msg = dictcreate.get('message')
|
||||
msg = self.pool.get('email.message').parse_message(msg)
|
||||
msg = self.pool.get('mail.message').parse_message(msg)
|
||||
message_id = msg.get('message-id')
|
||||
refs = msg.get('references',False)
|
||||
references = False
|
||||
if refs:
|
||||
references = refs.split()
|
||||
msg_pool = self.pool.get('email.message')
|
||||
mail_message = self.pool.get('mail.message')
|
||||
model = ''
|
||||
res_id = 0
|
||||
if message_id:
|
||||
msg_ids = msg_pool.search(cr, uid, [('message_id','=',message_id)])
|
||||
msg_ids = mail_message.search(cr, uid, [('message_id','=',message_id)])
|
||||
if msg_ids and len(msg_ids):
|
||||
msg = msg_pool.browse(cr, uid, msg_ids[0])
|
||||
msg = mail_message.browse(cr, uid, msg_ids[0])
|
||||
model = msg.model
|
||||
res_id = msg.res_id
|
||||
else:
|
||||
if references :
|
||||
msg_ids = msg_pool.search(cr, uid, [('message_id','in',references)])
|
||||
msg_ids = mail_message.search(cr, uid, [('message_id','in',references)])
|
||||
if msg_ids and len(msg_ids):
|
||||
msg = msg_pool.browse(cr, uid, msg_ids[0])
|
||||
msg = mail_message.browse(cr, uid, msg_ids[0])
|
||||
model = msg.model
|
||||
res_id = msg.res_id
|
||||
return (model,res_id)
|
||||
|
||||
Reference in New Issue
Block a user