Не открывайте вид формы в режиме редактирования. - PullRequest
0 голосов
/ 14 мая 2019

Мне нужно открыть представление формы, которое будет отображать сгенерированные на лету данные, состоящие из нескольких полей, которые составляют сумму нескольких записей (т. Е. Если я нахожусь на клиенте, он покажет сумму задолженность всех клиентов одного и того же района) и нужно сделать это в одном окне.

Я пытаюсь сделать это с помощью мастера, так как он не будет сохранен в базе данных, но он продолжает открывать представление в режиме редактирования (с save и discard кнопки).

Как можно не открывать представление в режиме редактирования, а также не допускать использования хлебных крошек в представлении клиента.

Я попытался установить ключ 'target' в действии на текущий, новый и т. Д., Но не могу заставить его работать, также пробовал с флагами, но не смог управлять им ...

Это действие, которое я использую:

    <act_window
        id="my_wizard_action"
        name="Consolidación"
        src_model="clientes.one.rate"
        res_model="my.wizard"
        view_mode="form"
        view_type="form"
        target="inline" />

И это вид:

    <record id="my_wizard_view" model="ir.ui.view">
        <field name="name">my.wizard</field>
        <field name="model">my.wizard</field>
        <field name="arch" type="xml">
            <form>
                <group>
                    <field name="area"/>
                    <field name="sum"/>
                </group>              
                <footer>
                    <button string="Close" class="oe_link" special="cancel"/>
                </footer>
            </form>
        </field>    
    </record>

Я ожидаю, что открою представление не в режиме редактирования (избегая кнопок сохранения и отмены), а также сохраняя те же хлебные крошки.

1 Ответ

0 голосов
/ 15 мая 2019

возможно вы можете использовать поле отображения и метод onchange.

class YourModel(models.Model):

display_field = fields.Integer("sum",store=False)
@api.onchange("trigger_field")
    def _check(self):
        sum = 0
        self.env.cr.execute("select field from my_module")
        for row in self._cr.fetchall():
            sum += row[0]
        self.display_field = sum

...