2016-05-26 10 views
1

Следующие ниже фрагменты из двух файлов XML. Я хочу создать новое древовидное представление для модели res.partner.Почему мой древовидный вид не загружается в Odoo 9?

<record id="distance_range_search_view_tree"model="ir.ui.view"> 
    <field name="name">distance_range_search_view_tree</field> 
    <field name="model">res.partner</field> 
    <field name="arch" type="xml"> 
     <tree string="Contacts within Distance"> 
      <field name="display_name"/> 
      <field name="country_id"/> 
      <field name="city"/> 
      <field name="state_id"/> 
      <field name="zip"/> 
      <field name="phone"/> 
      <field name="distance"/> 
     </tree> 
    </field> 
</record> 

<record id="distance_range_search_action" model="ir.actions.act_window"> 
    <field name="name">Account Proximity Search</field> 
    <field name="type">ir.actions.act_window</field> 
    <field name="res_model">res.partner</field> 
    <field name='view_mode'>tree</field> 
    <field name="view_id" ref="distance_range_search_view_tree"/> 
    <field name="help" type="html"> 
     <p> 
      Here is the list of customers 
     </p> 
    </field> 
</record> 

И я использую этот метод в моем файле питон, который возвращает древовидный:

@api.multi 
def distance_to_search1(self): 
    #some other code 
    return { 
     'name': _('Contacts in this range'), 
     'type': 'ir.actions.act_window', 
     'res_model': 'res.partner', 
     'view_type': 'tree', 
     'view_mode': 'tree', 
     'view_id': self.env.ref('contact_geolocation.distance_range_search_view_tree').id, 
     'domain': [('id', 'in', filtered_partner_ids)], 
    } 

Почему мой вид дерева не загружается?

ответ

2

Попробуйте это:

<record id="distance_range_search_action" model="ir.actions.act_window"> 
    <field name="name">Account Proximity Search</field> 
    <field name="type">ir.actions.act_window</field> 
    <field name="res_model">res.partner</field> 
    <field name='view_type'>tree,form</field> 
    <field name='view_mode'>tree</field> 
    <field name="view_id" ref="distance_range_search_view_tree"/> 
    <field name="target">current</field> 
    <field name="help" type="html"> 
     <p> 
      Here is the list of customers 
     </p> 
    </field> 
</record> 
@api.multi 
def distance_to_search1(self): 
    #some other code 
    return { 
     'name': _('Contacts in this range'), 
     'type': 'ir.actions.act_window', 
     'res_model': 'res.partner', 
     'view_type': 'form', 
     'view_mode': 'tree', 
     'view_id': self.env.ref('contact_geolocation.distance_range_search_view_tree').id, 
     'domain': [('id', 'in', filtered_partner_ids)], 
    } 

Edit: Я нашел это в исходном коде

По историческим причинам, OpenERP имеет странные отношения по отношению к view_mode и View_Type атрибут (по действиям окна):

  • один из режимов просмотра tree, который стоит как для списка просмотра и древовидного
  • выбора производится проверка view_type, которая либо form для представления или tree списка для фактического дерева.

Этот метод просто складывает View_Type в view_mode путем добавления нового режима просмотра list который является результатом tree view_mode в сочетании с form View_Type.

+0

Спасибо большое, что это так идеально. Но, пожалуйста, вы можете немного объяснить, почему нам нужно изменить форму view_type =? Еще раз спасибо – Paramita

+0

Я не знаю, Оду работает как хаха. Но если вы хотите провести исследование, вы можете изучить базовый модуль, где обрабатываются все представления :) – ChesuCR

+0

И для поля 'view_mode' вы можете написать порядок просмотров, который вы хотите показать (кнопки в правом верхнем углу) , то есть: 'kanban, tree, form', – ChesuCR