Skip to Content
Menu
This question has been flagged
1 Reply
4804 Views

I have a form A with a tree inside. When I click on "Add an item" I got a form B, where I can enter some information. Some of the fields in B are function and are calculated. 

When I create new item, everything is OK, functional fields are correctly updated.

But when I edit and change some values, when I save, the form B closes and the functional fields aren't updated on the tree in A form. 

If I click on the tree item to edit it, the fields in form B, also have the old values like the tree.

 

<record id="quotation_form" model="ir.ui.view">
            <field name="name">bdt.quotation.form</field>
            <field name="model">bdt.quotation</field>
            <field name="arch" type="xml">
                <form string="Quotation" version="7.0">
                    <header>
                        <div>
                            <button name="action_button_quot_to_customer" states="0" string="Send to Customer" class="oe_highlight" type="object"/>
                            <button name="action_button_quot_to_draft" states="1" string="Review" type="object"/> 
                            <button name="action_button_quot_won" states="1" string="Accepted" class="oe_highlight" type="object"/>
                            <button name="action_button_quot_lost" states="1" string="Rejected" class="oe_highlight" type="object"/> 
                            <field name="state" widget="statusbar"/>
                        </div>  
                    </header>
                    <sheet>
                        <!-- h1>
                            <label string="Customer "/>
                            <field name="cus_id"/>
                        </h1>
                        <h2>
                            <label string="Project "/>
                            <field name="pr_id" class="oe_inline"/>
                        </h2-->
                        <h2>
                            <label string="Quotation Name "/>
                            <field name="name" class="oe_inline"/>
                        </h2>
                        <group>
                            <group>
                                <field name="status_cust_reason"/>
                            </group>
                            <group>
                                <!-- field name="create_date"/-->
                            </group>
                        </group>
                        <notebook>
                            <page string="Forms">
                                <field name="q_form">
                                    <form string="Quotation Forms" version="7.0">
                                        <header>
                                            <div>
                                                <button name="action_button_form_to_review" states="0" string="Send for Revision" class="oe_highlight" type="object"/>
                                                <button name="action_button_form_approve" states="1" string="Approve" class="oe_highlight" type="object"/> 
                                                <button name="action_button_form_reject" states="1" string="Reject" class="oe_highlight" type="object"/>
                                                <button name="action_button_form_to_review" states="3" string="Send for Revision again" class="oe_highlight" type="object"/> 
                                                <button name="action_button_form_cancel" states="3" string="Cancel" class="oe_highlight" type="object"/> 
                                                <field name="state" widget="statusbar" statusbar_colors='{"4":"red","3":"orange","2":"green"}'/>
                                            </div> 
                                        </header>
                                        <h2>
                                            <label string="Quotation Form Name "/>
                                            <field name="name" class="oe_inline"/>
                                        </h2>
                                        <group>
                                            <group>
                                                <field name="amount" on_change="on_change_quot_field_data(amount,speed,hard,setup_price,price_min,profit_rate,sales_com)" />
                                                <field name="speed" on_change="on_change_quot_field_data(amount,speed,hard,setup_price,price_min,profit_rate,sales_com)" />
                                                <field name="hard" on_change="on_change_quot_field_data(amount,speed,hard,setup_price,price_min,profit_rate,sales_com)" />
                                                <field name="setup_price" on_change="on_change_quot_field_data(amount,speed,hard,setup_price,price_min,profit_rate,sales_com)" />
                                                <field name="price_min" on_change="on_change_quot_field_data(amount,speed,hard,setup_price,price_min,profit_rate,sales_com)" />
                                                <field name="profit_rate" on_change="on_change_quot_field_data(amount,speed,hard,setup_price,price_min,profit_rate,sales_com)" />
                                                <field name="sales_com" on_change="on_change_quot_field_data(amount,speed,hard,setup_price,price_min,profit_rate,sales_com)" />                                        
                                            </group>
                                            <group>
                                                <field name="calc_speed"/>
                                                <field name="calc_cost"/>
                                                <field name="calc_profit"/>
                                                <field name="calc_salescom"/>
                                                <field name="calc_price"/>
                                                <field name="calc_revenue"/>
                                            </group>
                                        </group>
                                    </form>
                                    <tree string="Sales Order Lines">
                                        <field name="amount" style="align:left"/>
                                        <field name="calc_speed" style="align:left"/>
                                        <field name="calc_cost"/>
                                        <field name="calc_profit"/>
                                        <field name="calc_salescom"/>
                                        <field name="calc_price"/>
                                        <field name="calc_revenue"/>
                                        <field name="state"/>
                                    </tree>
                                </field>
                            </page>
                        </notebook>
                    </sheet>
                </form>
            </field>
        </record>

Avatar
Discard
Best Answer

Might be very obvious, but did you also save form A? 

And if so: how did you make the tree view in form A? Perhaps you can post some code?

Avatar
Discard
Author

I have copied the view. Sorry, but I don't know how to copy code here in a better way to make it easier to read.

That was my first thought too: You have to save the most outer object (in your case Form A)!

Author

Thanks. Yes, I saved. Still same error.

I can't see anything particularly wrong with that at first glance. Perhaps you can take a working example from an existing object that actually works (invoices come into mind) and base your view on that? Have you checked to see if the data on the database DOES change? What happens when you trigger an on_change on form B?

Author

For me, invoices has the same error. When I update quantity or price, amount and total aren't recalculated until I save.

Author

When I use an on_change function on form B, the information is updated in the form, but when I save, the functional fields aren't updated in the tree of form A. I need to save A, and then I can see the changes, but not before.

What you describe is the normal behaviour, Pau Ubach.

Author

Yes, I know, as it is how it happens in invoices, but being the normal behavior doesn't mean it is right behavior. In order of usability and machine-people interaction, the normal behavior should be as I describe.

Author

Yes, I know, as it is how it happens in invoices, but being the normal behavior doesn't mean it is right behavior. In order of usability and machine-people interaction, the normal behavior should be as I describe.

I'm afraid there is nothing more we can do. If you want to change this you will need to dig pretty deep into the OpenERP core. Good luck with that.

Author

Yes. It will be hard and I don't have time now for it, so we will have to live with it. Thanks very much for your support.

Related Posts Replies Views Activity
3
May 20
7173
3
Apr 24
1490
2
Nov 18
12925
2
Mar 16
7261
1
Apr 15
4629