2016-11-12 3 views
1

Я пытаюсь наследовать меню настроек веб-сайта и иметь два вида. website.config.settings является model.TransientModelInherit TransientModel и имеют два вида (site.config.settings)

Когда я наследую это и просматриваю с помощью нового элемента меню, он перезаписывает предыдущее представление. Например: теперь есть две точки зрения, новая запись, которую я определил как «Настройки веб-сайта». Когда я нажимаю на него, он загружает новое измененное представление, но когда я нажимаю на существующее меню настроек, оно ничего не показывает.

Таким образом, существующее меню настроек веб-сайта не работает и новое меню. Мне нужно обоим.

ПЙ код и вид записи Я Подписчики -

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

Вместо переименования модулей (что вызывает реляционную ошибку), я нашел обходное решение. Я унаследовал основные настройки и поставить вид идентификатор там и назвал его с MenuItem -

<!-- 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

Я пробовал, но сайт.config.settings имеет ссылку на другую модель, и он не позволит новому виду сохранять. Я нашел обходное решение, наследуя действие записи на сайте и menutime, я положил идентификатор вида в запись и перезаписал пункт главного меню. Тем самым мне не пришлось менять название модели. –