[IMP]: * Added a partner_id field on a mailgate.message to be completed according to the partner of the related case

* Added a relate action window on the right toolbar of a partner form to zoom to his emails.

bzr revid: rpa@tinyerp.com-20100524133502-7u7q91twlr6nfjwr
This commit is contained in:
rpa (Open ERP) 2010-05-24 19:05:02 +05:30
parent e3eabf151a
commit c344df25ac
2 changed files with 87 additions and 45 deletions

View File

@ -49,9 +49,9 @@ class mailgate_thread(osv.osv):
_rec_name = 'thread'
_columns = {
'thread': fields.char('Thread', size=32, required=False),
'thread': fields.char('Thread', size=32, required=False),
'message_ids': one2many_domain('mailgate.message', 'thread_id', 'Messages', domain=[('history', '=', True)], required=False),
'log_ids': one2many_domain('mailgate.message', 'thread_id', 'Logs', domain=[('history', '=', False)], required=False),
'log_ids': one2many_domain('mailgate.message', 'thread_id', 'Logs', domain=[('history', '=', False)], required=False),
}
def __history(self, cr, uid, cases, keyword, history=False, email=False, details=None, email_from=False, message_id=False, context={}):
@ -77,23 +77,32 @@ class mailgate_thread(osv.osv):
for case in cases:
model_ids = model_obj.search(cr, uid, [('model', '=', case._name)])
data = {
'name': keyword,
'user_id': uid,
'model_id' : model_ids and model_ids[0] or False,
'date': time.strftime('%Y-%m-%d %H:%M:%S'),
'thread_id': case.thread_id.id,
'message_id': message_id
'name': keyword,
'user_id': uid,
'model_id' : model_ids and model_ids[0] or False,
'date': time.strftime('%Y-%m-%d %H:%M:%S'),
'thread_id': case.thread_id.id,
'message_id': message_id,
}
if history:
data['history'] = True
data['description'] = details or case.description
data['email_to'] = email or \
(case.user_id and case.user_id.address_id and \
case.user_id.address_id.email) or tools.config.get('email_from', False)
data['email_from'] = email_from or \
(case.user_id and case.user_id.address_id and \
case.user_id.address_id.email) or tools.config.get('email_from', False)
data = {
'name': keyword,
'history': True,
'user_id': uid,
'model_id' : model_ids and model_ids[0] or False,
'date': time.strftime('%Y-%m-%d %H:%M:%S'),
'description': details or case.description,
'email_to': email or \
(case.user_id and case.user_id.address_id and \
case.user_id.address_id.email) or tools.config.get('email_from', False),
'email_from': email_from or \
(case.user_id and case.user_id.address_id and \
case.user_id.address_id.email) or tools.config.get('email_from', False),
'partner_id': case.partner_id.id,
'thread_id': case.thread_id.id,
'message_id': message_id,
}
res = obj.create(cr, uid, data, context)
return True
@ -112,20 +121,21 @@ class mailgate_message(osv.osv):
_order = 'date desc'
_columns = {
'name':fields.char('Message', size=64),
'model_id': fields.many2one('ir.model', 'Model'),
'thread_id':fields.many2one('mailgate.thread', 'Thread'),
'date': fields.datetime('Date'),
'name':fields.char('Message', size=64),
'model_id': fields.many2one('ir.model', 'Model'),
'thread_id':fields.many2one('mailgate.thread', 'Thread'),
'date': fields.datetime('Date'),
'history': fields.boolean('Is History?', required=False),
'user_id': fields.many2one('res.users', 'User Responsible', readonly=True),
'message': fields.text('Description'),
'email_from': fields.char('Email From', size=84),
'email_to': fields.char('Email To', size=84),
'email_cc': fields.char('Email From', size=84),
'email_bcc': fields.char('Email From', size=84),
'message_id': fields.char('Message Id', size=1024, readonly=True, help="Message Id on Email Server.", select=True),
'user_id': fields.many2one('res.users', 'User Responsible', readonly=True),
'message': fields.text('Description'),
'email_from': fields.char('Email From', size=84),
'email_to': fields.char('Email To', size=84),
'email_cc': fields.char('Email CC', size=84),
'email_bcc': fields.char('Email BCC', size=84),
'message_id': fields.char('Message Id', size=1024, readonly=True, help="Message Id on Email Server.", select=True),
'description': fields.text('Description'),
'attachment_ids': fields.many2many('ir.attachment', 'message_attachment_rel', 'message_id', 'attachment_id', 'Attachments'),
'partner_id': fields.many2one('res.partner', 'Partner', required=False),
'attachment_ids': fields.many2many('ir.attachment', 'message_attachment_rel', 'message_id', 'attachment_id', 'Attachments'),
}
mailgate_message()

View File

@ -1,28 +1,34 @@
<?xml version="1.0"?>
<openerp>
<data>
<record model="ir.ui.view" id="view_maligate_message_form">
<field name="name">maligate.message.form</field>
<field name="model">maligate.message</field>
<record model="ir.ui.view" id="view_mailgate_message_form">
<field name="name">mailgate.message.form</field>
<field name="model">mailgate.message</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="maligate message">
<field name="name" />
<field name="date" />
<field name="user_id" />
<field name="history" />
<field name="message_id" />
<form string="mailgate message">
<group colspan="4" col="6">
<field name="name" required="1" select="1"/>
<field name="date" required="1" select="1"/>
<field name="user_id" string="Responsible" select="1"/>
</group>
<group colspan="4" col="4">
<field name="history" select="1" />
</group>
<notebook colspan="4">
<page>
<page string="Details">
<group col="4" colspan="4">
<separator string="Email Details" colspan="4"/>
<field name="email_from" />
<field name="email_to" />
<field name="email_cc" />
<field name="email_bcc" />
<field name="message_id" />
</group>
<separator string="Description" colspan="4"/>
<field name="description" nolabel="1" colspan="4" />
</page>
<page>
<page string="Attachments">
<separator string="Attachments" colspan="4"/>
<field name="attachment_ids" nolabel="1" colspan="4" />
</page>
@ -32,18 +38,35 @@
</record>
<record model="ir.ui.view" id="view_mailgate_message_tree">
<field name="name">maligate.message.tree</field>
<field name="model">maligate.message</field>
<field name="name">mailgate.message.tree</field>
<field name="model">mailgate.message</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Mailgateway Message">
<field name="name" select="1" />
<field name="date" />
<field name="user_id" />
<field name="history" readonly="1"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_mailgate_message_search">
<field name="name">mailgate.message.search</field>
<field name="model">mailgate.message</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Mailgateway Message Search">
<field name="name" />
<field name="date" />
<field name="user_id" />
<field name="message_id" />
<field name="history" readonly="1"/>
</search>
</field>
</record>
<record model="ir.ui.view" id="view_mailgate_thread_form">
<field name="name">mailgate.thread.form</field>
<field name="model">mailgate.thread</field>
@ -57,12 +80,12 @@
<field name="name" select="1" />
<field name="date" />
</tree>
<form string="Maligate Logs">
<form string="Mailgate Logs">
<field name="name" />
<field name="date" />
<field name="user_id" />
<field name="message_id" />
<field name="history" />
<field name="history" readonly="1"/>
<notebook colspan="4">
<page string="Email Details">
<group col="4" colspan="4">
@ -72,6 +95,8 @@
<field name="email_cc" />
<field name="email_bcc" />
</group>
<separator string="Description" colspan="4"/>
<field name="description" nolabel="1" colspan="4" />
</page>
<page string="Attachments">
<separator string="Attachments" colspan="4"/>
@ -86,7 +111,7 @@
<field name="name" select="1" />
<field name="date" />
</tree>
<form string="Maligate Histories">
<form string="Mailgate Histories">
<field name="name" />
<field name="date" />
<field name="user_id" />
@ -153,6 +178,13 @@
<menuitem id="menu_mailgate_thread" name="Mailgateway Threads" action="action_view_mailgate_thread"
parent="base.menu_crm_configuration" sequence="20"/>
-->
<act_window domain="[('partner_id', '=', active_id), ('history', '=', True)]"
id="act_res_partner_emails" name="Emails"
res_model="mailgate.message"
src_model="res.partner"
view_id="view_mailgate_message_tree"
groups="base.group_extended"
/>
</data>
</openerp>