2016-11-12 55 views
1

我想繼承網站設置菜單並有兩個視圖。 website.config.settings是一個models.TransientModel繼承TransientModel並有兩個視圖(website.config.settings)

當我繼承了這一點,並用新的menuitem查看它會覆蓋前一個視圖。喜歡 - 現在有兩個視圖,我定義了新的記錄名爲網站事件設置。當我點擊它加載新的修改後的視圖,但當我點擊現有設置菜單時,它什麼也不顯示。

總之,現有的網站設置菜單不工作,新的菜單呢。我需要他們兩個。

的PY代碼,我使用的記錄視圖中以下 -

class cofair_website_design_config(models.TransientModel): 
    _name = 'website.config.settings' 
    _inherit = 'website.config.settings' 

    event_title = fields.Char(related='website_id.event_title', string='Event Title') 

XML:

<record id="view_website_event_config_settings" model="ir.ui.view"> 
     <field name="name">Website Event Settings</field> 
     <field name="model">website.config.settings</field> 
     <field name="arch" type="xml"> 
      <form class="oe_form_configuration"> 
       <header> 
        <button string="Apply" type="object" name="execute" class="oe_highlight"/> 
        <button string="Cancel" type="object" name="cancel" class="oe_link"/> 
       </header> 
       <div> 
        <group string="Event Page Section"> 
         <group> 
          <field name="event_title_color"/> 
         </group> 
        </group> 
       </div> 
      </form> 
     </field> 
</record> 

<record id="action_website_event_configuration" model="ir.actions.act_window"> 
    <field name="name">Website Event Settings</field> 
    <field name="res_model">website.config.settings</field> 
    <field name="view_mode">form</field> 
    <field name="target">inline</field> 
    <field name="view_id" ref="view_website_event_config_settings"/> 
</record> 

<menuitem id="menu_website_event_settings" parent="website.menu_website_configuration" name="Website Event Settings" action="action_website_event_configuration"/> 

回答

2

我沒有重命名模塊(導致關係錯誤),而是找到了解決方法。我繼承了主要設置,並把視圖id存在,並呼籲將其與菜單項 -

<!-- Bring settings menu out --> 
<record id="website.action_website_configuration" model="ir.actions.act_window"> 
    <field name="name">Website Settings</field> 
    <field name="res_model">website.config.settings</field> 
    <field name="view_mode">form</field> 
    <field name="target">inline</field> 
    <field name="view_id" ref="website.view_website_config_settings"/> 
</record> 

<menuitem id="website.menu_website_website_settings" parent="website.menu_website_configuration" name="Website Admin" action="website.action_website_configuration"/> 

然後我打電話給我的記錄動作,並將其加載的觀點和行動。另一個要點是我必須展示website_id來顯示特定網站的價值,否則瞬態模型將一直是空的。

+0

好的,太好了......你應該將你的答案標記爲接受,因爲你已經知道了它,它對你有用 – danidee

1

更改_name屬性,在模型定義到別的東西,也修改XML appropraitely。

class cofair_website_design_config(models.TransientModel): 
    _name = 'something.else' 
    _inherit = 'website.config.settings' 

    event_title = fields.Char(related='website_id.event_title', string='Event Title') 

ir.ui.view

<field name="model">something.else</field> 


ir.actions.act_window

<field name="res_model">something.else</field> 

這應該所有的領域和方法,從website.config.settings複製到新的模式something.else,並保持它從website.config.settings

分離
+0

我試過,但website.config.settings有其他模型的參考,它不會讓新的視圖來保存。我發現了一種解決方法,通過繼承網站記錄動作和菜單時間,我在記錄中放置了一個視圖ID並覆蓋了主菜單項。由此我不必更改型號名稱。 –