Как я могу открыть форму всегда в режиме редактирования, для конкретной модели - PullRequest
1 голос
/ 29 мая 2019

У меня есть модель «my.attendance», также есть форма для этого, которая содержит некоторые данные о посещаемости. Что мне нужно, так это то, что когда я открываю эту форму, она всегда должна открываться в режиме редактирования. Так что я могу напрямую войти посещаемость без нажатия кнопки «Редактировать» каждый раз.

1 Ответ

2 голосов
/ 29 мая 2019

Вы должны расширить ViewManager для достижения этой цели.

odoo.define('my_module.view_manager', function (require) {
"use strict";

var ViewManager = require('web.ViewManager');

ViewManager.include({

    custom_events: {

        execute_action: function(event) {
            var data = event.data;
            this.do_execute_action(data.action_data, data.env, data.on_closed)
                .then(data.on_success, data.on_fail);
        },
        search: function(event) {
            var d = event.data;
            _.extend(this.env, this._process_search_data(d.domains, d.contexts, d.groupbys));
            this.active_view.controller.reload(_.extend({offset: 0}, this.env));
        },
        switch_view: function(event) {
            if ('res_id' in event.data) {
                this.env.currentId = event.data.res_id;
            }
            var options = {};
            console.log(event.data)
            if (event.data.view_type === 'form' && !this.env.currentId) {
                options.mode = 'edit';
            } else if (event.data.mode) {
                options.mode = event.data.mode;
            }

            // Extra added code
            if (event.data.model){    
                if (event.data.model == 'my.model'){  // Checking the particular model.
                    options.mode = 'edit';
                }
            }


            this.switch_mode(event.data.view_type, options);
        },
        env_updated: function(event) {
            _.extend(this.env, event.data);
        },
        push_state: function(event) {
            this.do_push_state(event.data);
        },
        get_controller_context: '_onGetControllerContext',
        switch_to_previous_view: '_onSwitchToPreviousView',
    },

 });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...