noble_man
noble_man

Reputation: 342

openerp v7 save and new button to keep and show previously (old) fields value in view form

I have a form with a lot of fields and with two button (Save and Close and Save and New) when Save and New button is clicked I want those previously entered fields value to be displayed.

Thank You!

Upvotes: 1

Views: 726

Answers (1)

CZoellner
CZoellner

Reputation: 14768

OK, my first solution (using context) didn't work out :-( but i tried another way, i dont like it very much, but it could help you out.

following my example .py:

from openerp.osv import orm, fields

class object_one(orm.Model):
    _name = "object.one"

    _columns = {
                'name':fields.char('Name', size=128, required=True),
                'many_ids':fields.many2many('object.many',string="Many Objects")
                }

class object_many(orm.Model):
    _name = "object.many"

    _columns = {
                'name':fields.char('Name', size=128, required=True),
                'sel':fields.selection([('1','One'),
                                        ('2','Two'),
                                        ('3','Three')],
                                       string="Selection", required=True),
                }

    def _get_sel(self, cr, uid, context={}):
        many_id = self.search(cr, uid, [('create_uid','=',uid)], context=context, order="create_date desc", limit=1)
        if many_id:
            many = self.browse(cr, uid, many_id[0], context)
            return many.sel
        return False

    _defaults = {
                 'sel':_get_sel
                 }

following my example .xml:

<?xml version="1.0" encoding="UTF-8"?>
<openerp>
    <data>
        <record id="one_form" model="ir.ui.view">
            <field name="name">one form view</field>
            <field name="model">object.one</field>
            <field name="arch" type="xml">
                <form version="7.0" string="">
                    <group>
                        <field name="name" />
                        <field name="many_ids" />
                    </group>
                </form>
            </field>
        </record>
        <record id="one_tree" model="ir.ui.view">
            <field name="name">one tree view</field>
            <field name="model">object.one</field>
            <field name="arch" type="xml">
                <tree version="7.0" string="">
                    <field name="name" />
                </tree>
            </field>
        </record>
        <record id="many_form" model="ir.ui.view">
            <field name="name">many form view</field>
            <field name="model">object.many</field>
            <field name="arch" type="xml">
                <form version="7.0" string="">
                    <group>
                        <field name="name" />
                        <field name="sel" />
                    </group>
                </form>
            </field>
        </record>
        <record id="many_tree" model="ir.ui.view">
            <field name="name">many tree view</field>
            <field name="model">object.many</field>
            <field name="arch" type="xml">
                <tree version="7.0" string="">
                    <field name="name" />
                    <field name="sel" />
                </tree>
            </field>
        </record>
        <record model="ir.actions.act_window" id="one_tree_action">
            <field name="name">One Objects</field>
            <field name="type">ir.actions.act_window</field>
            <field name="res_model">object.one</field>
            <field name="view_type">form</field>
            <field name="view_mode">form,tree</field>
            <field name="view_id" ref="one_tree" />
        </record>
        <record model="ir.actions.act_window" id="many_tree_action">
            <field name="name">Many Objects</field>
            <field name="type">ir.actions.act_window</field>
            <field name="res_model">object.many</field>
            <field name="view_type">form</field>
            <field name="view_mode">form,tree</field>
            <field name="view_id" ref="many_tree" />
        </record>
        <menuitem name="Testing Menu" id="testing_menu" />
        <menuitem name="Sub Menu" parent="testing_menu" id="sub_menu" />
        <menuitem action="one_tree_action" name="One Menu" parent="sub_menu" id="one_menu" />
        <menuitem action="many_tree_action" name="Many Menu" parent="sub_menu" id="many_menu" />
    </data>
</openerp>

you will see, every many-object created by an user, will have the last selection (sel) get from db. so its more of a workaround for your problem.

hope this will help you.

Upvotes: 1

Related Questions