Невозможно получить доступ к просмотру в Odoo - PullRequest
0 голосов
/ 16 апреля 2019

Я пытаюсь определить пользовательские настройки в Odoo.Я использовал эту ссылку, чтобы помочь мне http://ludwiktrammer.github.io/odoo/custom-settings-odoo.html.

Я заменил

<menuitem id="your_settings_menu" name="Your settings"
    parent="base.menu_config" action="your_settings_action"/>

на

<menuitem id="mattermost_settings_menu" name="Mattermost settings" parent="base.menu_administration"
     action="mattermost_settings_action" />

Поскольку у меня была эта ошибка: Внешний идентификатор не найден в системе: base.menu_config "

Теперь нет ошибки компиляции, и когда я нажимаю на меню, у меня появляется эта ошибка:

Uncaught TypeError: Cannot read property 'settingView' of undefined
http://127.0.0.1:8069/web/content/514-0b4bd55/web.assets_backend.js:5
Traceback:
TypeError: Cannot read property 'settingView' of undefined
    at Class._moveToTab (http://127.0.0.1:8069/web/content/514-0b4bd55/web.assets_backend.js:5:42)
    at Class._renderLeftPanel (http://127.0.0.1:8069/web/content/514-0b4bd55/web.assets_backend.js:8:315)
    at Class._render (http://127.0.0.1:8069/web/content/514-0b4bd55/web.assets_backend.js:7:716)
    at Class.prototype.(anonymous function) [as _render] (http://127.0.0.1:8069/web/content/383-805b1f7/web.assets_common.js:3538:488)
    at Class.start (http://127.0.0.1:8069/web/content/514-0b4bd55/web.assets_backend.js:1275:335)
    at Class.prototype.(anonymous function) [as start] (http://127.0.0.1:8069/web/content/383-805b1f7/web.assets_common.js:3538:488)
    at Class.start (http://127.0.0.1:8069/web/content/514-0b4bd55/web.assets_backend.js:1609:20)
    at Class.prototype.(anonymous function) [as start] (http://127.0.0.1:8069/web/content/383-805b1f7/web.assets_common.js:3538:488)
    at Class.start (http://127.0.0.1:8069/web/content/514-0b4bd55/web.assets_backend.js:3:654)
    at Class.prototype.(anonymous function) [as start] (http://127.0.0.1:8069/web/content/383-805b1f7/web.assets_common.js:3538:488)

Вот мой xml-файл:

<record id="res_config_settings_mm" model="ir.ui.view">
    <field name="name">Mattermost config</field>
    <field name="model">mattermost.settings</field>
    <field name="arch" type="xml">
        <form string="Your configuration" class="oe_form_configuration">
            <header>
                <button string="Save" type="object"
                    name="execute" class="oe_highlight"/>
                or
                <button string="Cancel" type="object"
                    name="cancel" class="oe_link"/>
            </header>
            <group string="Company">
                <label for="id" string="Name &amp; Phone"/>
                <div>
                    <div>
                        <label for="company_name"/>
                        <field name="company_name"/>
                    </div>
                    <div>
                        <label for="company_phone"/>
                        <field name="company_phone"/>
                    </div>
                </div>
            </group>
        </form>
    </field>
</record>

<record id="mattermost_settings_action" model="ir.actions.act_window">
    <field name="name">Mattermost config</field>
    <field name="res_model">mattermost.settings</field>
    <field name="view_id" ref="res_config_settings_mm"/>
    <field name="view_mode">form</field>
    <field name="target">inline</field>
</record>

<menuitem id="mattermost_settings_menu" name="Mattermost settings" parent="base.menu_administration"
     action="mattermost_settings_action" />

Вот мой файл python:

class MattermostConfig(models.TransientModel):
    _inherit = 'res.config.settings'
    _name = 'mattermost.settings'

    company_name = fields.Char()
    company_phone = fields.Char()

    @api.model
    def get_default_company_values(self, fields):
        _logger.critical('\n\nget_default_company_values\n\n')
        company = self.env.user.company_id
        return {
            'company_name': company.name,
            'company_phone': company.phone,
        }

    @api.one
    def set_company_values(self):
        _logger.critical('\n\nset_company_values\n\n')
        company = self.env.user.company_id
        company.name = self.company_name
        company.phone = self.company_phone

Вы знаете, как решить эту проблему?

1 Ответ

0 голосов
/ 17 апреля 2019

Во-первых, base.menu_config - это base_setup.menu_config в новых версиях Odoo.

Во-вторых, в журнале, который вы показываете, проблема заключается в представлении, которое наследуется от бэкэнда ресурсов.Итак, если проблема не устранена и у вас есть оболочка Bash, вы можете попробовать следующее:

cd <your_module's_directory>
find . -type f -exec grep -I -n "settingView"

, иначе вы можете закомментировать все свои XML-файлы в файле __manifest__.py и затем раскомментировать их один за другим.

...