[IMP] base_contact:
authorHarry (OpenERP) <hmo@tinyerp.com>
Mon, 5 Jul 2010 13:18:51 +0000 (18:48 +0530)
committerHarry (OpenERP) <hmo@tinyerp.com>
Mon, 5 Jul 2010 13:18:51 +0000 (18:48 +0530)
* Replace title char field with many2one field of res.partner.title in res.partner.contact model
* Improve form view of res.partner.contact

bzr revid: hmo@tinyerp.com-20100705131851-i8c4otyahwlz5emo

addons/base_contact/base_contact.py
addons/base_contact/base_contact_demo.xml
addons/base_contact/base_contact_view.xml

index 2bedf9d..848bed3 100644 (file)
@@ -26,21 +26,7 @@ class res_partner_contact(osv.osv):
 
     _name = "res.partner.contact"
     _description = "Contact"
-
-    def _title_get(self,cr, user, context={}):
-        """
-            @param self: The object pointer
-            @param cr: the current row, from the database cursor,
-            @param user: the current user,
-            @param context: A standard dictionary for contextual values
-        """
-
-        obj = self.pool.get('res.partner.title')
-        ids = obj.search(cr, user, [])
-        res = obj.read(cr, user, ids, ['shortcut', 'name','domain'], context)
-        res = [(r['shortcut'], r['name']) for r in res if r['domain']=='contact']
-        return res
-
+    
     def _main_job(self, cr, uid, ids, fields, arg, context=None):
         """
             @param self: The object pointer
@@ -62,7 +48,7 @@ class res_partner_contact(osv.osv):
         'name': fields.char('Last Name', size=30, required=True),
         'first_name': fields.char('First Name', size=30),
         'mobile': fields.char('Mobile', size=30),
-        'title': fields.selection(_title_get, 'Title'),
+        'title': fields.many2one('res.partner.title','Title'),
         'website': fields.char('Website', size=120),
         'lang_id': fields.many2one('res.lang', 'Language'),
         'job_ids': fields.one2many('res.partner.job', 'contact_id', 'Functions and Addresses'),
@@ -101,13 +87,15 @@ class res_partner_contact(osv.osv):
         if not len(ids):
             return []
         res = []
-        for r in self.read(cr, user, ids, ['name','first_name','title']):
-            addr = r['title'] and str(r['title'])+" " or ''
-            addr += r.get('name', '')
-            if r['name'] and r['first_name']:
-                addr += ' '
-            addr += (r.get('first_name', '') or '')
-            res.append((r['id'], addr))
+        for contact in self.browse(cr, user, ids, context=context):
+            _contact = ""
+            if contact.title:
+                _contact += "%s "%(contact.title.name)
+            _contact += contact.name or ""
+            if contact.name and contact.first_name:
+                _contact += " "
+            _contact += contact.first_name or ""
+            res.append((contact.id, _contact))
         return res
 
 res_partner_contact()
index 2c76b18..40646d1 100644 (file)
@@ -6,19 +6,19 @@
         <record id="res_partner_contact_mortier0" model="res.partner.contact">
             <field eval="&quot;&quot;&quot;Benoit&quot;&quot;&quot;" name="first_name"/>
             <field eval="&quot;&quot;&quot;Mortier&quot;&quot;&quot;" name="name"/>
-            <field eval="&quot;&quot;&quot;M.&quot;&quot;&quot;" name="title"/>
+            <field name="title" ref="base.res_partner_title_sir"/>
             <field eval="1" name="active"/>
         </record>
         <record id="res_partner_contact_jacot0" model="res.partner.contact">
             <field eval="&quot;&quot;&quot;Laurent&quot;&quot;&quot;" name="first_name"/>
             <field eval="&quot;&quot;&quot;Jacot&quot;&quot;&quot;" name="name"/>
-            <field eval="&quot;&quot;&quot;M.&quot;&quot;&quot;" name="title"/>
+            <field ref="base.res_partner_title_sir" name="title"/>
             <field eval="1" name="active"/>
         </record>
         <record id="res_partner_contact_passot0" model="res.partner.contact">
             <field eval="&quot;&quot;&quot;Thomas&quot;&quot;&quot;" name="first_name"/>
             <field eval="&quot;&quot;&quot;Passot&quot;&quot;&quot;" name="name"/>
-            <field eval="&quot;&quot;&quot;M.&quot;&quot;&quot;" name="title"/>
+            <field ref="base.res_partner_title_sir" name="title"/>
             <field eval="1" name="active"/>
         </record>
         <record id="res_partner_contact_lacarte0" model="res.partner.contact">
         <record id="res_partner_contact_lavente0" model="res.partner.contact">
             <field eval="&quot;&quot;&quot;Jean-Guy&quot;&quot;&quot;" name="first_name"/>
             <field eval="&quot;&quot;&quot;Lavente&quot;&quot;&quot;" name="name"/>
-            <field eval="&quot;&quot;&quot;M.&quot;&quot;&quot;" name="title"/>
+            <field ref="base.res_partner_title_sir" name="title"/>
             <field eval="1" name="active"/>
         </record>
         <record id="res_partner_contact_lelitre0" model="res.partner.contact">
             <field eval="&quot;&quot;&quot;Sylvie&quot;&quot;&quot;" name="first_name"/>
             <field eval="&quot;&quot;&quot;Lelitre&quot;&quot;&quot;" name="name"/>
-            <field eval="&quot;&quot;&quot;Mss&quot;&quot;&quot;" name="title"/>
+            <field ref="base.res_partner_title_sir" name="title"/>
             <field eval="1" name="active"/>
         </record>
         <record id="res_partner_contact_grosbonnet0" model="res.partner.contact">
             <field eval="&quot;&quot;&quot;Arthur&quot;&quot;&quot;" name="first_name"/>
             <field eval="&quot;&quot;&quot;Grosbonnet&quot;&quot;&quot;" name="name"/>
-            <field eval="&quot;&quot;&quot;M.&quot;&quot;&quot;" name="title"/>
+            <field ref="base.res_partner_title_sir" name="title"/>
             <field eval="1" name="active"/>
         </record>
         <record id="res_partner_contact_lesbrouffe0" model="res.partner.contact">
             <field eval="&quot;&quot;&quot;Karine&quot;&quot;&quot;" name="first_name"/>
             <field eval="&quot;&quot;&quot;Lesbrouffe&quot;&quot;&quot;" name="name"/>
-            <field eval="&quot;&quot;&quot;Ms.&quot;&quot;&quot;" name="title"/>
+            <field ref="base.res_partner_title_madam" name="title"/>
             <field eval="1" name="active"/>
         </record>
         <record id="res_partner_contact_zen0" model="res.partner.contact">
             <field eval="&quot;&quot;&quot;http://fptiny.blogspot.com/&quot;&quot;&quot;" name="website"/>
             <field eval="&quot;&quot;&quot;Fabien&quot;&quot;&quot;" name="first_name"/>
             <field eval="&quot;&quot;&quot;Pinckaers&quot;&quot;&quot;" name="name"/>
-            <field eval="&quot;&quot;&quot;M.&quot;&quot;&quot;" name="title"/>
+            <field ref="base.res_partner_title_sir" name="title"/>
             <field eval="1" name="active"/>
         </record>
         <record id="res_partner_contact_debois0" model="res.partner.contact">
             <field eval="&quot;&quot;&quot;Marc&quot;&quot;&quot;" name="first_name"/>
             <field eval="&quot;&quot;&quot;Debois&quot;&quot;&quot;" name="name"/>
-            <field eval="&quot;&quot;&quot;M.&quot;&quot;&quot;" name="title"/>
+            <field ref="base.res_partner_title_sir" name="title"/>
             <field eval="1" name="active"/>
         </record>
         <record id="res_partner_contact_luu0" model="res.partner.contact">
             <field eval="&quot;&quot;&quot;Phuong&quot;&quot;&quot;" name="first_name"/>
             <field eval="&quot;&quot;&quot;Luu&quot;&quot;&quot;" name="name"/>
-            <field eval="&quot;&quot;&quot;Ms.&quot;&quot;&quot;" name="title"/>
+            <field ref="base.res_partner_title_madam" name="title"/>
             <field eval="1" name="active"/>
         </record>
         <record id="res_partner_contact_elkhayat0" model="res.partner.contact">
             <field eval="&quot;&quot;&quot;Najlaa&quot;&quot;&quot;" name="first_name"/>
             <field eval="&quot;&quot;&quot;Khayat&quot;&quot;&quot;" name="name"/>
-            <field eval="&quot;&quot;&quot;Ms.&quot;&quot;&quot;" name="title"/>
+            <field ref="base.res_partner_title_madam" name="title"/>
             <field eval="1" name="active"/>
         </record>
         <record id="res_partner_contact_depaoli0" model="res.partner.contact">
             <field eval="&quot;&quot;&quot;Quentin&quot;&quot;&quot;" name="first_name"/>
             <field eval="&quot;&quot;&quot;Paolino&quot;&quot;&quot;" name="name"/>
-            <field eval="&quot;&quot;&quot;M.&quot;&quot;&quot;" name="title"/>
+            <field ref="base.res_partner_title_sir" name="title"/>
             <field eval="1" name="active"/>
         </record>
         <record id="res_partner_contact_semal0" model="res.partner.contact">
             <field eval="&quot;&quot;&quot;Fabian&quot;&quot;&quot;" name="first_name"/>
             <field eval="&quot;&quot;&quot;W.&quot;&quot;&quot;" name="name"/>
-            <field eval="&quot;&quot;&quot;M.&quot;&quot;&quot;" name="title"/>
+            <field ref="base.res_partner_title_sir" name="title"/>
             <field eval="1" name="active"/>
         </record>
         <record id="res_partner_contact_vandewerve0" model="res.partner.contact">
             <field eval="&quot;&quot;&quot;Yvan&quot;&quot;&quot;" name="first_name"/>
             <field eval="&quot;&quot;&quot;van de Werve&quot;&quot;&quot;" name="name"/>
-            <field eval="&quot;&quot;&quot;M.&quot;&quot;&quot;" name="title"/>
+            <field ref="base.res_partner_title_sir" name="title"/>
             <field eval="1" name="active"/>
         </record>
         <record id="res_partner_contact_lambotte0" model="res.partner.contact">
             <field eval="&quot;&quot;&quot;Henry&quot;&quot;&quot;" name="first_name"/>
             <field eval="&quot;&quot;&quot;Lambotte&quot;&quot;&quot;" name="name"/>
-            <field eval="&quot;&quot;&quot;M.&quot;&quot;&quot;" name="title"/>
+            <field ref="base.res_partner_title_sir" name="title"/>
             <field eval="1" name="active"/>
         </record>
         <record id="res_partner_contact_laurent0" model="res.partner.contact">
             <field eval="&quot;&quot;&quot;Olivier&quot;&quot;&quot;" name="first_name"/>
             <field eval="&quot;&quot;&quot;Laurent&quot;&quot;&quot;" name="name"/>
-            <field eval="&quot;&quot;&quot;M.&quot;&quot;&quot;" name="title"/>
+            <field ref="base.res_partner_title_sir" name="title"/>
             <field eval="1" name="active"/>
         </record>
         <record id="res_partner_contact_simonis0" model="res.partner.contact">
             <field eval="&quot;&quot;&quot;Christophe&quot;&quot;&quot;" name="first_name"/>
             <field eval="&quot;&quot;&quot;Dupont&quot;&quot;&quot;" name="name"/>
-            <field eval="&quot;&quot;&quot;M.&quot;&quot;&quot;" name="title"/>
+            <field ref="base.res_partner_title_sir" name="title"/>
             <field eval="1" name="active"/>
         </record>
         <record id="res_partner_contact_wirtel0" model="res.partner.contact">
             <field eval="&quot;&quot;&quot;Stéphane&quot;&quot;&quot;" name="first_name"/>
             <field eval="&quot;&quot;&quot;Andre&quot;&quot;&quot;" name="name"/>
-            <field eval="&quot;&quot;&quot;M.&quot;&quot;&quot;" name="title"/>
+            <field ref="base.res_partner_title_sir" name="title"/>
             <field eval="1" name="active"/>
         </record>
         <record id="res_partner_contact_mignon0" model="res.partner.contact">
             <field eval="&quot;&quot;&quot;Philippe&quot;&quot;&quot;" name="first_name"/>
             <field eval="&quot;&quot;&quot;Antoine&quot;&quot;&quot;" name="name"/>
-            <field eval="&quot;&quot;&quot;M.&quot;&quot;&quot;" name="title"/>
+            <field ref="base.res_partner_title_sir" name="title"/>
             <field eval="1" name="active"/>
         </record>
 
index 9050f05..c336b3e 100644 (file)
         <field name="type">form</field>
         <field name="arch" type="xml">
             <form string="Partner Contact">
-                <field name="name" select="1"/>
-                <field name="first_name" select="1"/>
+                <group colspan="4" col="6">
+                    <field name="title" select="1" widget="selection" domain="[('domain', '=', 'contact')]" size="0"/>
+                    <field name="name" select="1"/>
+                    <field name="first_name" select="1"/>
+                </group>
                 <notebook colspan="4" >
-                    <page string="General">
-                        <newline/>
-                        <separator string="General Information" colspan="4"/>
-                       <group string="Partner" colspan="2" col="2">
-                           <field name="partner_id" invisible="1" select="1"/>
-                           <field name="title" select="1"/>
-                           <field name="function" invisible="1"/>
-                        <field name="email"/>
-                           <field name="lang_id"/>
-                           <field name="active"/>
-                       </group>
-                       <group string="Communication" colspan="2" col="2">
-                           <field name="mobile"/>
-                           <field name="email"  widget="email"/>
-                           <field name="website"/>
-                       </group>
+                    <page string="General">                        
+                       <group colspan="4" col="4">
+                            <group colspan="2" col="4">
+                                <separator string="Communication" colspan="4"/>
+                                <field name="mobile"/>
+                                <field name="email"  widget="email"/>
+                                <field name="website"/>
+                            </group>
+                            <group colspan="2" col="1">
+                                <separator string="Photo" colspan="4"/>
+                                <field name="photo" widget='image' nolabel="1"/>
+                            </group>
+                       </group> 
                        <field name="job_ids" colspan="4" nolabel="1" mode="tree,form">
                             <form string="Functions and Addresses">
-                               <group string="Partner" colspan="2" col="4">
+                               <group colspan="4" col="4">
+                                   <field name="sequence_contact" />
                                    <field name="function"/>
-                                   <field name="address_id"/>
-                                   <field name="name"/>
+                                   <field name="name"/> 
+                                   <field name="address_id"/>                                   
                                    <field name="date_start" />
                                    <field name="date_stop" />
                                    <field name="state" />
-                                   <field name="sequence_contact" />
+                                   
                                </group>
-                               <group string="Communication" colspan="2" col="2">
+                                <separator string="Communication" colspan="4"/>
+                               <group colspan="4" col="4">
                                    <field name="phone"/>
                                    <field name="fax"/>
                                    <field name="email" widget="email"/>
                             </tree>
                         </field>
                     </page>
-                    <page string="Extra Information">
+                    <page string="Extra Information">                        
+                        <field name="active"/>
+                        <field name="lang_id" widget="selection"/>
+                        <field name="partner_id" invisible="1" select="1"/>                                
+                        <field name="function" invisible="1" />  
                         <field name="country_id"/>
                         <field name="birthdate"/>
                     </page>
                     <page string="Notes">
                         <field name="comment" nolabel="1"/>
                     </page>
-                    <page string="Picture">
-                        <field name="photo" nolabel="1" colspan="2" widget="image"/>
-                    </page>
+                    
                 </notebook>
             </form>
         </field>
                                 <field name="email"/>
                             </tree>
                             <form string="Contacts">
-                            <group string="Partner" colspan="2" col="2">
+                            <group colspan="4" col="4">
                                 <field name="sequence_partner"/>
                                 <field name="name"/>
                                 <field name="contact_id"/>
                                 <field name="function"/>
                             </group>
-                            <group string="Communication" colspan="2" col="2">
+                            <separator string="Communication" colspan="4"/>
+                            <group colspan="4" col="4">
                                 <field name="phone"/>
                                 <field name="fax"/>
                                 <field name="extension"/>