('2','High'),
('1','Highest')
]
-
-icon_lst = {
- 'form':'STOCK_NEW',
- 'tree':'STOCK_JUSTIFY_FILL',
- 'calendar':'STOCK_SELECT_COLOR'
-}
-
class crm_case_section(osv.osv):
_name = "crm.case.section"
_description = "Sales Teams"
s[section] = dict([(v, k) for (k, v) in s[section].iteritems()])
if st in s[section]:
self.write(cr, uid, [case.id], {'stage_id': s[section][st]})
- return True
-
- def onchange_case_id(self, cr, uid, ids, case_id, name, partner_id, context={}):
- if not case_id:
- return {}
- case = self.browse(cr, uid, case_id, context=context)
- value = {}
- if not name:
- value['name'] = case.name
- if (not partner_id) and case.partner_id:
- value['partner_id'] = case.partner_id.id
- if case.partner_address_id:
- value['partner_address_id'] = case.partner_address_id.id
- if case.email_from:
- value['email_from'] = case.email_from
- return {'value': value}
+ return True
def history(self, cr, uid, ids, keyword, history=False, email=False, details=None, context={}):
cases = self.browse(cr, uid, ids, context=context)
history=history, email=email, details=details,\
context=context)
- def __history(self, cr, uid, cases, keyword, history=False, email=False, details=None, context={}):
+ def __history(self, cr, uid, cases, keyword, history=False, email=False, details=None, email_from=False, context={}):
model_obj = self.pool.get('ir.model')
for case in cases:
model_ids = model_obj.search(cr, uid, [('model','=',case._name)])
if history:
obj = self.pool.get('crm.case.history')
data['description'] = details or case.description
- data['email'] = email or \
+ data['email_to'] = email or \
+ (case.user_id and case.user_id.address_id and \
+ case.user_id.address_id.email) or False
+ data['email_from'] = email_from or \
(case.user_id and case.user_id.address_id and \
case.user_id.address_id.email) or False
- data['email_from'] = (case.user_id and case.user_id.address_id and \
- case.user_id.address_id.email) or tools.config.get('email_from',False)
res = obj.create(cr, uid, data, context)
return True
_history = __history
if not case.description:
raise osv.except_osv(_('Error!'),
_('Can not send mail with empty body,you should have description in the body'))
- self.__history(cr, uid, cases, _('Send'), history=True, email=False)
+
for case in cases:
self.write(cr, uid, [case.id], {
- 'description': False,
- 'som': False,
- 'canal_id': False,
+ 'description': False,
})
emails = [case.email_from] + (case.email_cc or '').split(',')
emails = filter(None, emails)
reply_to=case.section_id.reply_to,
openobject_id=str(case.id)
)
+ self.__history(cr, uid, [case], _('Send'), history=True, email=emails, details=body, email_from=emailfrom)
return True
def onchange_partner_id(self, cr, uid, ids, part, email=False):
_order = "id desc"
_columns = {
'name': fields.char('Status', size=64),
- 'som': fields.many2one('res.partner.som', 'State of Mind'),
- 'date': fields.datetime('Date'),
- 'canal_id': fields.many2one('res.partner.canal', 'Channel'),
+ 'date': fields.datetime('Date'),
'section_id': fields.many2one('crm.case.section', 'Section'),
'user_id': fields.many2one('res.users', 'User Responsible', readonly=True),
'model_id': fields.many2one('ir.model', "Model"),
_columns = {
'description': fields.text('Description'),
'note': fields.function(_note_get, method=True, string="Description", type="text"),
- 'email': fields.char('Email', size=84),
- 'email_from' : fields.char('From Email', size=84),
+ 'email_to': fields.char('Email TO', size=84),
+ 'email_from' : fields.char('Email From', size=84),
'log_id': fields.many2one('crm.case.log','Log',ondelete='cascade'),
}
crm_case_history()
case = model_pool.browse(cr, uid, history_line.log_id.res_id)
body = history_line.description.replace('\n','\n> ')
flag = tools.email_send(
- case.user_id.address_id.email,
- [case.email_from],
+ email,
+ [case.user_id.address_id.email],
subject or '['+str(case.id)+'] '+case.name,
- model_pool.format_body(body),
- email_cc = [email],
+ model_pool.format_body(body),
openobject_id=str(case.id),
subtype="html"
)
if flag:
model_pool.write(cr, uid, case.id, {'email_cc' : case.email_cc and case.email_cc +','+ email or email})
+ self.__history(cr, uid, [case], _('Send'), history=True, email=email, details=body, email_from=case.user_id.address_id.email)
else:
raise osv.except_osv(_('Email Fail!'),("Lastest Email is not sent successfully"))
return {}
<separator string="Action Information" colspan="4"/>
<field name="name" colspan="4"/>
<field name="date"/>
- <field name="user_id"/>
- <field name="som"/>
- <field name="canal_id"/>
+ <field name="user_id"/>
</form>
</field>
</page>
<form string="Communication history">
<group col="7" colspan="4">
<field name="date"/>
- <field name="email"/>
- <field name="canal_id"/>
+ <field name="email_to"/>
+ <field name="email_from"/>
<button
string="Add a CC"
name="%(crm.action_view_crm_email_add_cc_wizard)d"
</form>
<tree string="Communication history">
<field name="description"/>
- <field name="email"/>
+ <field name="email_to"/>
<field name="date"/>
</tree>
</field>
<separator string="Action Information" colspan="4"/>
<field name="name" colspan="4"/>
<field name="date"/>
- <field name="user_id"/>
- <field name="som"/>
- <field name="canal_id"/>
+ <field name="user_id"/>
</form>
</field>
</page>
<form string="Communication history">
<group col="7" colspan="4">
<field name="date"/>
- <field name="email"/>
- <field name="canal_id"/>
+ <field name="email_to"/>
+ <field name="email_from"/>
<button
string="Add a CC"
name="%(crm.action_view_crm_email_add_cc_wizard)d"
</form>
<tree string="Communication history">
<field name="description"/>
- <field name="email"/>
+ <field name="email_to"/>
<field name="date"/>
</tree>
</field>
<separator colspan="4" string="Action Information"/>
<field colspan="4" name="name"/>
<field name="date" select="2"/>
- <field name="user_id" select="2"/>
- <field name="som" select="2"/>
- <field name="canal_id"/>
+ <field name="user_id" select="2"/>
</form>
</field>
</page>
<form string="Communication history">
<group col="7" colspan="4">
<field name="date"/>
- <field name="email"/>
- <field name="canal_id"/>
+ <field name="email_to"/>
+ <field name="email_from"/>
<button
string="Add a CC"
name="%(crm.action_view_crm_email_add_cc_wizard)d"
</form>
<tree string="Communication history">
<field name="description"/>
- <field name="email"/>
+ <field name="email_to"/>
<field name="date"/>
</tree>
</field>
<form string="Communication history">
<group col="7" colspan="4">
<field name="date"/>
- <field name="email"/>
- <field name="canal_id"/>
+ <field name="email_to"/>
+ <field name="email_from"/>
<button
string="Add a CC"
name="%(crm.action_view_crm_email_add_cc_wizard)d"
</form>
<tree string="Communication history">
<field name="description"/>
- <field name="email"/>
+ <field name="email_to"/>
<field name="date"/>
</tree>
</field>
<separator string="Action Information" colspan="4"/>
<field name="name" colspan="4"/>
<field name="date"/>
- <field name="user_id"/>
- <field name="som"/>
- <field name="canal_id"/>
+ <field name="user_id"/>
</form>
</field>
</page>
<form string="Communication history">
<group col="7" colspan="4">
<field name="date"/>
- <field name="email"/>
- <field name="canal_id"/>
+ <field name="email_to"/>
+ <field name="email_from"/>
<button
string="Add a CC"
name="%(crm.action_view_crm_email_add_cc_wizard)d"
</form>
<tree string="Communication history">
<field name="description"/>
- <field name="email"/>
+ <field name="email_to"/>
<field name="date"/>
</tree>
</field>
<separator colspan="4" string="Action Information"/>
<field colspan="4" name="name"/>
<field name="date" select="2"/>
- <field name="user_id" select="2"/>
- <field name="som" select="2"/>
- <field name="canal_id"/>
+ <field name="user_id" select="2"/>
</form>
</field>
</page>
<form string="Communication history">
<group col="7" colspan="4">
<field name="date"/>
- <field name="email"/>
- <field name="canal_id"/>
+ <field name="email_to"/>
+ <field name="email_from"/>
<button
string="Add a CC"
name="%(crm.action_view_crm_email_add_cc_wizard)d"
</form>
<tree string="Communication history">
<field name="description"/>
- <field name="email"/>
+ <field name="email_to"/>
<field name="date"/>
</tree>
</field>
data = {
'name': self._decode_header(msg['Subject']),
'email_from': self._decode_header(msg['From']),
- 'email_cc': self._decode_header(msg['Cc'] or ''),
- 'canal_id': self.canal_id,
+ 'email_cc': self._decode_header(msg['Cc'] or ''),
'user_id': False,
'description': message['body'],
}
self.rpc(self.model, act, [id])
self.rpc(self.model, 'write', [id], data)
- self.rpc(self.model, 'history', [id], 'Send', True, msg['From'], body['body'])
+ self.rpc(self.model, 'history', [id], 'Receive', True, details=body['body'], email_from=msg['From'])
return id
def msg_send(self, msg, emails, priority=None):
# 'description':body,
#}
#self.rpc(self.model, 'write', [id], data)
- self.rpc(self.model, 'history', [id], 'Send', True, msg['From'], message['body'])
+ self.rpc(self.model, 'history', [id], 'Receive', True, details=message['body'], email_from=msg['From'])
return id
def msg_test(self, msg, case_str):
_description = "Case Send new email"
_columns = {
- 'to' : fields.char('To', size=64, required=True),
- 'cc' : fields.char('CC', size=128),
+ 'email_to' : fields.char('To', size=64, required=True),
+ 'email_from' : fields.char('From', size=64, required=True),
+ 'email_cc' : fields.char('CC', size=128),
'subject': fields.char('Subject', size=128, required=True),
'text': fields.text('Message', required=True),
'state': fields.selection([('done', 'Done'), ('pending', 'Pending'), ('unchanged', 'Unchanged')], string='State', required=True),
model = hist.log_id.model_id.model
model_pool = self.pool.get(model)
case = model_pool.browse(cr, uid, hist.log_id.res_id)
- emails = [data['to']] + (data['cc'] or '').split(',')
+ emails = [data['email_to']] + (data['email_cc'] or '').split(',')
emails = filter(None, emails)
body = data['text']
if case.user_id.signature:
body += '\n\n%s' % (case.user_id.signature)
- case_pool._history(cr, uid, [case], _('Send'), history=True, email=data['to'], details=body)
- email_from = (case.user_id and case.user_id.address_id and \
- case.user_id.address_id.email) or tools.config.get('email_from',False)
+ case_pool._history(cr, uid, [case], _('Send'), history=True, email=data['email_to'], details=body)
+ email_from = data.get('email_from', False)
flag = tools.email_send(
email_from,
emails,
res_id = context and context.get('active_ids', []) or []
for case in mod_obj.browse(cr, uid, res_id):
- if 'to' in fields:
- res.update({'to': case.email_from})
+ if 'email_to' in fields:
+ res.update({'email_to': case.email_from})
+ if 'email_from' in fields:
+ res.update({'email_from': (case.user_id and case.user_id.address_id and \
+ case.user_id.address_id.email) or tools.config.get('email_from',False)})
if 'subject' in fields:
res.update({'subject': '[%s] %s' %(str(case.id), case.name or '')})
- if 'cc' in fields:
- res.update({'cc': case.email_cc or ''})
+ if 'email_cc' in fields:
+ res.update({'email_cc': case.email_cc or ''})
if 'text' in fields:
res.update({'text': case.description or ''})
if 'state' in fields:
model = hist.log_id.model_id.model
model_pool = self.pool.get(model)
case = model_pool.browse(cr, uid, hist.log_id.res_id)
- if 'to' in fields and hist.email:
- res.update({'to': hist.email})
+ if 'email_to' in fields and hist.email_to:
+ res.update({'email_to': hist.email_to})
+ if 'email_from' in fields:
+ res.update({'email_from': (case.user_id and case.user_id.address_id and \
+ case.user_id.address_id.email) or tools.config.get('email_from',False)})
if 'text' in fields:
header = '-------- Original Message --------'
sender = 'From: %s' %(hist.email_from or tools.config.get('email_from',False))
- to = 'To: %s' % (hist.email)
+ to = 'To: %s' % (hist.email_to)
sentdate = 'Sent: %s' % (hist.date)
desc = '\n%s'%(hist.description)
original = [header, sender, to, sentdate, desc]
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Send New Mail" col="2">
- <field name="to" />
- <field name="cc" />
+ <field name="email_from" />
+ <field name="email_to" />
+ <field name="email_cc" />
<field name="subject" />
<field name="doc1" />
<field name="doc2" />
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Reply to last Mail" col="2">
- <field name="to" />
- <field name="cc" />
+ <field name="email_from" />
+ <field name="email_to" />
+ <field name="email_cc" />
<field name="subject" />
<field name="doc1" />
<field name="doc2" />
<form string="Communication history">
<group col="7" colspan="4">
<field name="date"/>
- <field name="email"/>
+ <field name="email_to"/>
+ <field name="email_from"/>
<button
string="Add a CC"
name="%(crm.action_view_crm_email_add_cc_wizard)d"
</form>
<tree string="Communication history">
<field name="description"/>
- <field name="email"/>
+ <field name="email_to"/>
<field name="date"/>
</tree>
</field>
<separator string="Action Information" colspan="4"/>
<field name="name" colspan="4"/>
<field name="date" />
- <field name="user_id" />
- <field name="canal_id"/>
+ <field name="user_id" />
</form>
</field>
</page>
<form string="Communication history">
<group col="7" colspan="4">
<field name="date"/>
- <field name="email"/>
- <field name="canal_id"/>
+ <field name="email_to"/>
+ <field name="email_from"/>
<button
string="Add a CC"
name="%(crm.action_view_crm_email_add_cc_wizard)d"
</form>
<tree string="Communication history">
<field name="description"/>
- <field name="email"/>
+ <field name="email_to"/>
<field name="date"/>
</tree>
</field>