diff options
| author | rpa (Open ERP) <rpa@openerp.co.in> | 2010-02-05 19:19:43 +0530 |
|---|---|---|
| committer | rpa (Open ERP) <rpa@openerp.co.in> | 2010-02-05 19:19:43 +0530 |
| commit | 9e80ee72bdc3aab68a89eb3ba3473f1a70168069 (patch) | |
| tree | 9bb1e7ef69529b24301ae5c75f402f4cb9109518 | |
| parent | eeb73f2b4d39ba0ad0845bdb07b97511d989ae67 (diff) | |
[IMP]: mail_gateway: Improvement for duplication checking and history view
bzr revid: rpa@openerp.co.in-20100205134943-7unz7lwpzyykppa8
| -rw-r--r-- | addons/mail_gateway/mail_gateway.py | 38 | ||||
| -rw-r--r-- | addons/mail_gateway/mail_gateway_view.xml | 53 |
2 files changed, 57 insertions, 34 deletions
diff --git a/addons/mail_gateway/mail_gateway.py b/addons/mail_gateway/mail_gateway.py index a10605212d0..314168c4b03 100644 --- a/addons/mail_gateway/mail_gateway.py +++ b/addons/mail_gateway/mail_gateway.py @@ -54,6 +54,22 @@ class mail_gateway_server(osv.osv): 'server_type':lambda * a:'pop', 'active':lambda * a:True, } + + def check_duplicate(self, cr, uid, ids): + vals = self.read(cr, uid, ids, ['name', 'login'])[0] + cr.execute("select count(id) from mail_gateway_server \ + where name='%s' and login='%s'" % \ + (vals['name'], vals['login'])) + res = cr.fetchone() + if res: + if res[0] > 1: + return False + return True + + _constraints = [ + (check_duplicate, 'Warning! Can\'t have duplicate server configuration!', ['name', 'login']) + ] + def onchange_server_type(self, cr, uid, ids, server_type=False, ssl=False): port = 0 if server_type == 'pop': @@ -62,28 +78,6 @@ class mail_gateway_server(osv.osv): port = ssl and 993 or 143 return {'value':{'port':port}} - def check_duplicate(self, cr, uid, vals, limit): - cr.execute("select count(id) from mail_gateway_server \ - where name='%s' and server_type='%s' and login='%s'" % \ - (vals['name'], vals['server_type'], vals['login'])) - res = cr.fetchone() - if res: - if res[0] > limit: - raise osv.except_osv(_('Warning !'), _('Can\'t have duplicate server configuration!')) - - def create(self, cr, uid, vals, context={}): - self.check_duplicate(cr, uid, vals, 0) - return super(mail_gateway_server, self).create(cr, uid, vals, context=context) - - def write(self, cr, uid, ids, vals, context=None): - if not vals: - return - res = super(mail_gateway_server, self).write(cr, uid, ids, vals, context) - for id in ids: - vals = self.read(cr, uid, id, ['name', 'server_type', 'login'], context=context) - self.check_duplicate(cr, uid, vals, 1) - return res - mail_gateway_server() diff --git a/addons/mail_gateway/mail_gateway_view.xml b/addons/mail_gateway/mail_gateway_view.xml index 3640d778ab0..465eea92b44 100644 --- a/addons/mail_gateway/mail_gateway_view.xml +++ b/addons/mail_gateway/mail_gateway_view.xml @@ -1,6 +1,47 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> <data> + <record id="mail_gateway_history_form" model="ir.ui.view"> + <field name="name">mail.gateway.history.form</field> + <field name="model">mail.gateway.history</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Gateway History"> + <field name="name"/> + <field name="res_id"/> + <separator string="Note" colspan="4"/> + <field name="note" nolabel="1" colspan="4"/> + </form> + </field> + </record> + + <record id="mail_gateway_history_tree" model="ir.ui.view"> + <field name="name">mail.gateway.history.tree</field> + <field name="model">mail.gateway.history</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Gateway History"> + <field name="name" select="1"/> + <field name="res_id"/> + <field name="gateway_id"/> + </tree> + </field> + </record> + + + <record id="mail_gateway_act" model="ir.actions.act_window"> + <field name="name">Gateway History</field> + <field name="res_model">mail.gateway.history</field> + <field name="view_type">form</field> + <field name="view_mode">tree,form</field> + <field name="view_id" ref="mail_gateway_history_tree"/> + </record> + + <act_window context="{'gateway_id': active_id}" + domain="[('gateway_id', '=', active_id)]" + id="act_gateway_history" name="Email History" + res_model="mail.gateway.history" src_model="mail.gateway" /> + <record id="mail_gateway_form" model="ir.ui.view"> <field name="name">mail.gateway.form</field> <field name="model">mail.gateway</field> @@ -12,18 +53,6 @@ <field name="server_id" /> <field name="reply_to"/> <field name="email_default" /> - <field name="mail_history" widget="one2many_list" nolabel="1" colspan="4"> - <tree string="Email History"> - <field name="name"/> - <field name="res_id"/> - </tree> - <form string="Email History"> - <field name="name"/> - <field name="res_id"/> - <separator colspan="4" string="Notes"/> - <field name="note" nolabel="1" colspan="4"/> - </form> - </field> </form> </field> </record> |
