You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

217 lines
12 KiB

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <odoo>
  3. <data>
  4. <record id="view_res_partner_filter_contact" model="ir.ui.view">
  5. <field name="name">res.partner.select.contact</field>
  6. <field name="model">res.partner</field>
  7. <field name="inherit_id" ref="base.view_res_partner_filter"/>
  8. <field name="arch" type="xml">
  9. <filter name="type_company" position="after">
  10. <separator/>
  11. <filter string="All positions" name="type_otherpositions"
  12. context="{'search_show_all_positions': {'is_set': True, 'set_value': True}}"
  13. help="All partner positions"/>
  14. </filter>
  15. <xpath expr="/search/group[@name='group_by']" position="inside">
  16. <filter string="Person" name="group_person" context="{'group_by': 'contact_id'}"/>
  17. </xpath>
  18. </field>
  19. </record>
  20. <record id="view_res_partner_tree_contact" model="ir.ui.view">
  21. <field name="name">res.partner.tree.contact</field>
  22. <field name="model">res.partner</field>
  23. <field name="inherit_id" ref="base.view_partner_tree"/>
  24. <field name="arch" type="xml">
  25. <field name="parent_id" position="after">
  26. <field name="contact_id" invisible="1"/>
  27. </field>
  28. </field>
  29. </record>
  30. <record model="ir.ui.view" id="view_partner_form_inherit">
  31. <field name="name">res.partner.form.contact</field>
  32. <field name="model">res.partner</field>
  33. <field name="inherit_id" ref="base.view_partner_form"/>
  34. <field name="type">form</field>
  35. <field name="arch" type="xml">
  36. <field name="is_company" position="after">
  37. <field name="contact_type" invisible="1"/>
  38. </field>
  39. <page name='internal_notes' position="before">
  40. <page string="Other Positions" attrs="{'invisible': ['|',('is_company','=',True),('contact_id','!=',False)]}">
  41. <field name="other_contact_ids" context="{'default_contact_id': active_id, 'default_name': name, 'default_street': street, 'default_street2': street2, 'default_city': city, 'default_state_id': state_id, 'default_zip': zip, 'default_country_id': country_id, 'default_supplier': supplier}}" mode="kanban">
  42. <kanban>
  43. <field name="color"/>
  44. <field name="name"/>
  45. <field name="title"/>
  46. <field name="email"/>
  47. <field name="parent_id"/>
  48. <field name="is_company"/>
  49. <field name="function"/>
  50. <field name="phone"/>
  51. <field name="street"/>
  52. <field name="street2"/>
  53. <field name="zip"/>
  54. <field name="city"/>
  55. <field name="country_id"/>
  56. <field name="mobile"/>
  57. <field name="fax"/>
  58. <field name="state_id"/>
  59. <field name="image"/>
  60. <field name="lang"/>
  61. <field name="contact_id"/>
  62. <templates>
  63. <t t-name="kanban-box">
  64. <t t-set="color" t-value="kanban_color(record.color.raw_value)"/>
  65. <div t-att-class="color + (record.title.raw_value == 1 ? ' oe_kanban_color_alert' : '') + ' oe_kanban_global_click'">
  66. <a t-if="!read_only_mode" type="delete" class="fa fa-times pull-right"/>
  67. <div class="o_kanban_image">
  68. <img t-if="record.image.raw_value" t-att-src="'data:image/png;base64,'+record.image.raw_value"/>
  69. <t t-if="!record.image.raw_value">
  70. <img t-if="record.is_company.raw_value === true" t-att-src='_s + "/base/static/src/img/company_image.png"'/>
  71. <img t-if="record.is_company.raw_value === false" t-att-src='_s + "/base/static/src/img/avatar.png"'/>
  72. </t>
  73. </div>
  74. <div class="oe_kanban_details">
  75. Linked to: <field name="parent_id" />
  76. <br />
  77. <field name="name"/>
  78. <div t-if="record.function.raw_value"><field name="function"/></div>
  79. <div t-if="record.email.raw_value"><field name="email"/></div>
  80. <div t-if="record.phone.raw_value">Phone: <field name="phone"/></div>
  81. <div t-if="record.mobile.raw_value">Mobile: <field name="mobile"/></div>
  82. <div t-if="record.fax.raw_value">Fax: <field name="fax"/></div>
  83. </div>
  84. </div>
  85. </t>
  86. </templates>
  87. </kanban>
  88. <form string="Contact">
  89. <sheet>
  90. <field name="type" required="1" widget="radio" options="{'horizontal': true}"/>
  91. <hr/>
  92. <group>
  93. <group attrs="{'invisible': [('type','=', 'contact')]}">
  94. <label for="street" string="Address"/>
  95. <div>
  96. <div class="o_address_format" name="div_address">
  97. <field name="street" placeholder="Street..." class="o_address_street"/>
  98. <field name="street2" placeholder="Street 2..." class="o_address_street"/>
  99. <field name="city" placeholder="City" class="o_address_city"/>
  100. <field name="state_id" class="o_address_state" placeholder="State" options='{"no_open": True}' on_change="onchange_state(state_id)" context="{'country_id': country_id, 'zip': zip}"/>
  101. <field name="zip" placeholder="ZIP" class="o_address_zip"/>
  102. <field name="country_id" placeholder="Country" class="o_address_country" options='{"no_open": True, "no_create": True}'/>
  103. </div>
  104. </div>
  105. </group>
  106. <group>
  107. <field name="name" string="Contact Name" attrs="{'required' : [('type', '=', 'contact')]}"/>
  108. <field name="parent_id" />
  109. <field name="title" placeholder="e.g. Mr."
  110. attrs="{'invisible': [('type','&lt;&gt;', 'contact')]}"/>
  111. <field name="function" placeholder="e.g. Sales Director"
  112. attrs="{'invisible': [('type','&lt;&gt;', 'contact')]}"/>
  113. <field name="email"/>
  114. <field name="phone" widget="phone"/>
  115. <field name="mobile" widget="phone"/>
  116. <field name="comment" placeholder="internal note..."/>
  117. </group>
  118. <div>
  119. <group col="2">
  120. <field name="image" widget="image" options="{'preview_image': 'image_medium', 'size': [90, 90]}" modifiers="{}"/>
  121. <field name="category_id" widget="many2many_tags" placeholder="Tags..." can_create="true" can_write="true" modifiers="{}"/>
  122. </group>
  123. </div>
  124. </group>
  125. <field name="supplier" invisible="True"/>
  126. <field name="customer" invisible="True"/>
  127. <field name="lang" invisible="True"/>
  128. </sheet>
  129. </form>
  130. </field>
  131. </page>
  132. </page>
  133. <xpath expr="//field[@name='category_id']" position="before">
  134. <group>
  135. <label for="contact_type" class="oe_edit_only"/>
  136. <field name="contact_type" readonly="0" nolabel="1"/>
  137. </group>
  138. </xpath>
  139. <xpath expr="//field[@name='child_ids']/form//field[@name='name']" position="before">
  140. <field name='contact_type' readonly='0'/>
  141. <field name="contact_id" string="Contact"
  142. attrs="{'invisible': [('contact_type','!=','attached')], 'required': [('contact_type','=','attached')]}"/>
  143. </xpath>
  144. <xpath expr="//field[@name='child_ids']/form//field[@name='name']" position="attributes">
  145. <attribute name="attrs">{'invisible': [('contact_type','=','attached')]}</attribute>
  146. </xpath>
  147. </field>
  148. </record>
  149. <record id="personal_contact_information" model="ir.ui.view">
  150. <field name="name">Contacts in several partners: personal info</field>
  151. <field name="model">res.partner</field>
  152. <field name="inherit_id" ref="partner_contact_personal_information_page.personal_information"/>
  153. <field name="arch" type="xml">
  154. <data>
  155. <xpath expr="//page[@name='personal_information_page']/group[@name='personal_information_group']"
  156. position='attributes'>
  157. <attribute name='attrs'>{'invisible': [('contact_id','!=',False)]}</attribute>
  158. </xpath>
  159. <xpath expr="//page[@name='personal_information_page']/group[@name='personal_information_group']"
  160. position='after'>
  161. <p attrs="{'invisible': [('contact_id','=',False)]}">
  162. To see personal information about this contact, please
  163. go to to the this person form:
  164. <field name="contact_id" class="oe_inline"
  165. domain="[('contact_type','!=','attached')]"
  166. context="{'show_address': 1}"
  167. options="{'always_reload': True}"/>
  168. </p>
  169. </xpath>
  170. </data>
  171. </field>
  172. </record>
  173. <record model="ir.ui.view" id="view_res_partner_kanban_contact">
  174. <field name="name">res.partner.kanban.contact</field>
  175. <field name="model">res.partner</field>
  176. <field name="inherit_id" ref="base.res_partner_kanban_view"/>
  177. <field name="arch" type="xml">
  178. <field name="is_company" position="after">
  179. <field name="other_contact_ids">
  180. <tree>
  181. <field name="parent_id"/>
  182. <field name="function"/>
  183. </tree>
  184. </field>
  185. </field>
  186. <xpath expr="//t[@t-name='kanban-box']//div[@class='oe_kanban_details']/ul/li[3]" position="after">
  187. <t t-if="record.other_contact_ids.raw_value.length &gt; 0">
  188. <li>+<t t-esc="record.other_contact_ids.raw_value.length"/>
  189. <t t-if="record.other_contact_ids.raw_value.length == 1">other position</t>
  190. <t t-if="record.other_contact_ids.raw_value.length &gt; 1">other positions</t></li>
  191. </t>
  192. </xpath>
  193. </field>
  194. </record>
  195. <record model="ir.ui.view" id="view_res_partner_contact_with_photo_form">
  196. <field name="name">view.res.partner.contact.with.photo.form</field>
  197. <field name="model">res.partner</field>
  198. <field name="inherit_id" ref="base.view_partner_form"/>
  199. <field name="arch" type="xml">
  200. <xpath expr="//form//form//sheet//group" position="inside">
  201. <div>
  202. <group col="2">
  203. <field name="image" widget="image" options="{'preview_image': 'image_medium', 'size': [90, 90]}" modifiers="{}"/>
  204. <field name="category_id" widget="many2many_tags" placeholder="Tags..." can_create="true" can_write="true" modifiers="{}"/>
  205. </group>
  206. </div>
  207. </xpath>
  208. </field>
  209. </record>
  210. </data>
  211. </odoo>