[IMP] crm: improvement in mailgate
authorHarry (Open ERP) <hmo@tinyerp.com>
Mon, 7 Dec 2009 10:23:00 +0000 (15:53 +0530)
committerHarry (Open ERP) <hmo@tinyerp.com>
Mon, 7 Dec 2009 10:23:00 +0000 (15:53 +0530)
bzr revid: hmo@tinyerp.com-20091207102300-rbxkto5q8igwupkb

addons/crm/crm_view.xml
addons/crm/crm_wizard.xml
addons/crm/wizard/wizard_fetch_mail.py

index aa60c28..3bab7da 100755 (executable)
         <act_window domain="[('user_id', '=', active_id),('state','&lt;&gt;','done'),('state','&lt;&gt;','cancel'),('state','&lt;&gt;','pending')]" id="act_res_users_2_crm_case_opened" name="Open cases" res_model="crm.case" src_model="res.users" view_mode="tree,form,calendar" view_type="form"/>
 
 
+        <record id="crm_email_gateway_form" model="ir.ui.view">
+            <field name="name">crm.email.gateway.form</field>
+            <field name="model">crm.email.gateway</field>
+            <field name="type">form</field>
+            <field name="arch" type="xml">
+                <form string="Email Gateway">
+                    <field name="name"/>
+                    <field name="section_id" />
+                    <field name="server_id" />
+                    <field name="to_email_id"/>
+                    <field name="cc_email_id" />
+                    <field name="mail_history" widget="one2many_list" nolabel="1" colspan="4">
+                        <tree string="Email History">
+                            <field name="name"/>
+                            <field name="case_id"/>
+                            <field name="note"/>
+                        </tree>
+                       <form string="Email History">
+                            <field name="name"/>
+                            <field name="case_id"/>
+                            <separator colspan="4" string="Notes"/>
+                            <field name="note" nolabel="1" colspan="4"/>
+                       </form>
+                    </field>
+                </form>
+            </field>
+        </record>
+
+        <record id="crm_email_gateway_tree" model="ir.ui.view">
+            <field name="name">crm.email.gateway.tree</field>
+            <field name="model">crm.email.gateway</field>
+            <field name="type">tree</field>
+            <field name="arch" type="xml">
+                <tree string="Email Gateway">
+                    <field name="name"/>
+                    <field name="section_id" />
+                    <field name="server_id" />                    
+                </tree>
+            </field>
+        </record>
+
         <record id="crm_email_gateway_server_form" model="ir.ui.view">
             <field name="name">crm.email.gateway.server.form</field>
             <field name="model">crm.email.gateway.server</field>
             <field name="type">form</field>
             <field name="arch" type="xml">
-                <form string="Email Gateway Server">
-                     <field name="server_type"/>
-                     <notebook colspan="4">
-                        <page string="Server Info">
-                           <field name="name"/>
-                           <field name="port" />
-                           <field name="login" />
-                           <field name="password" password="True"/>
-                           <field name="ssl" />
-                           <field name="active" />
-                        </page>
-                    </notebook>
+                <form string="Email Gateway Server">                    
+                    <field name="server_type" colspan="4"/>
+                    <field name="name"/>
+                    <field name="port" />
+                    <field name="login" />
+                    <field name="password" password="True"/>
+                    <field name="ssl" />
+                    <field name="active" />
+
                 </form>
             </field>
         </record>
                     <field name="name"/>
                     <field name="port" />
                     <field name="server_type"/>
-                    <field name="ssl" />
+                    <field name="ssl" />            
                 </tree>
             </field>
         </record>
 
 
-        <record id="crm_email_gateway_server_act" model="ir.actions.act_window">
-            <field name="name">Email Gateway Server</field>
-            <field name="res_model">crm.email.gateway.server</field>
+        <record id="crm_email_gateway_act" model="ir.actions.act_window">
+            <field name="name">Email Gateway</field>
+            <field name="res_model">crm.email.gateway</field>
             <field name="view_type">form</field>
             <field name="view_mode">tree,form</field>
-            <field name="view_id" ref="crm_email_gateway_server_tree"/>
+            <field name="view_id" ref="crm_email_gateway_tree"/>
         </record>
-        <menuitem id="crm_email_gateway_server_menu" name="Email Gateway Server" parent="next_id_51" action="crm_email_gateway_server_act" />
+        <menuitem id="crm_email_gateway_menu" name="Email Gateway" parent="next_id_51" action="crm_email_gateway_act" />
 
         <!-- Caldav configartion view -->
 
index 1227f27..7950d74 100644 (file)
@@ -7,6 +7,11 @@
            model="crm.case.section"
            name="crm.case.section.fetchmail"
            id="wizard_crm_case_section_fetchmail"/> 
+
+        <wizard string="Fetch mail"
+           model="crm.email.gateway"
+           name="crm.case.mailgate.fetchmail"
+           id="wizard_crm_case_mailgateway_fetchmail"/>
         
         
     </data>
index 2e41dcb..d06c98f 100644 (file)
@@ -26,7 +26,7 @@ import tools
 import os
 _email_form = '''<?xml version="1.0"?>
 <form string="Email Gateway">
-    <separator string="Fetching Emails from" />
+    <separator string="Fetching Emails : " />
     <field name="server" colspan="4" nolabel="1" />
  </form>'''
  
@@ -57,21 +57,44 @@ def _default(self , cr, uid, data, context):
     data['form']['server'] = '\n'.join(server)    
     return data['form']
     
-def fetch_mail(self , cr, uid, data, context):
+def section_fetch_mail(self , cr, uid, data, context):
     pool = pooler.get_pool(cr.dbname)
     gateway_pool=pool.get('crm.email.gateway')    
     messages = gateway_pool.fetch_mails(cr, uid, ids=[], section_ids=data['ids'], context=context)
     data['form']['message'] = '\n'.join(messages)    
     return data['form']
 
-class wiz_fetch_mail(wizard.interface):
+def mailgate_fetch_mail(self , cr, uid, data, context):
+    pool = pooler.get_pool(cr.dbname)
+    gateway_pool=pool.get('crm.email.gateway')    
+    messages = gateway_pool.fetch_mails(cr, uid, ids=data['ids'], context=context)
+    data['form']['message'] = '\n'.join(messages)    
+    return data['form']
+
+class wiz_section_fetch_mail(wizard.interface):
     states = {
         'init': {
             'actions': [_default],
             'result': {'type': 'form', 'arch':_email_form, 'fields':_email_fields, 'state':[('end','Cancel','gtk-cancel'), ('fetch','Fetch','gtk-execute')]}
                 },        
         'fetch': {
-            'actions': [fetch_mail],
+            'actions': [section_fetch_mail],
+            'result': {'type': 'form', 'arch': _email_done_form,
+                'fields': _email_done_fields,
+                'state': (
+                    ('end', 'Close'),
+                )
+            },
+        },
+    }
+class wiz_mailgateway_fetch_mail(wizard.interface):
+    states = {
+        'init': {
+            'actions': [],
+            'result': {'type': 'form', 'arch':_email_form, 'fields':_email_fields, 'state':[('end','Cancel','gtk-cancel'), ('fetch','Fetch','gtk-execute')]}
+                },        
+        'fetch': {
+            'actions': [mailgate_fetch_mail],
             'result': {'type': 'form', 'arch': _email_done_form,
                 'fields': _email_done_fields,
                 'state': (
@@ -80,5 +103,6 @@ class wiz_fetch_mail(wizard.interface):
             },
         },
     }
-wiz_fetch_mail('crm.case.section.fetchmail')
+wiz_section_fetch_mail('crm.case.section.fetchmail')
+wiz_mailgateway_fetch_mail('crm.case.mailgate.fetchmail')
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: