Skip to Content
Menu
This question has been flagged
4 Replies
6283 Views

Hi,


EDITED

Supposedly  if I have the following window action.

<record model="ir.actions.act_window" id="action_profile">
<field name="name">My Profile</field>
<field name="res_model">res.partner</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>

When a portal user logins, the portal user will only see the res.partner record  that is associate with the user account that was login to.


Now I want to have a Form view only,  so I remove the tree view from view_type..

<record model="ir.actions.act_window" id="action_profile">
<field name="name">My Profile</field>
<field name="res_model">res.partner</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
</record>

Inside of display in the form view, it show a empty record.


To simplify, how do I view 1 selected record of an object in form view only.






Avatar
Discard

Sorry i couldnt get you Gavin Yap

Author

I rephrase my questions and title. In short, how do I view 1 selected record in form view only?

Give me your XML code

Author

Drees Far, what xml code u need?

Best Answer

Try to use server action, to call your desired partner_id record to it.

In XML:

        <record id="ir_actions_server_portal_res_partner" model="ir.actions.server">
            <field name="sequence" eval="5"/>
            <field name="state">code</field>
            <field name="type">ir.actions.server</field>
            <field name="model_id" ref="model_res_partner"/>
            <field name="code">action = self.open_address(cr, uid, None, context)</field>
            <field name="condition">True</field>
            <field name="name">My Addresses</field>
        </record> 
        <menuitem id="addresses_menu" name="Addresses" parent="portal.portal_orders" sequence="0"
			action="ir_actions_server_portal_res_partner"/>


In PY:

 class Partner(orm.Model):
    _inherit = 'res.partner'

    def open_address(self, cr, uid, ids, context=None):
        ir_model_data = self.pool.get('ir.model.data')
        if context is None:
            context = {}

        user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
        partner = user.partner_id
        try:
            view_form_id = ir_model_data.get_object_reference(
                cr, uid, 'base', 'view_partner_form')[1]
        except ValueError:
            view_form_id = False

        return {
            'name': _('Open Addresses'),
            'view_type': 'form',
            'view_mode': 'form',
            'res_model': 'res.partner',
            'view_id': view_form_id,
            'res_id': partner.id,
            'type': 'ir.actions.act_window'
        }


Avatar
Discard
Author

Thanks Atchuthan, although I have not tried the above code yet because am V8 user. Your code is helpful and make sense to me. Cheers.

Author

Thanks again. I confirmed this solution works.

Related Posts Replies Views Activity
1
Jan 24
1290
4
Apr 24
61541
1
Oct 22
2661
2
Apr 22
4600
4
Sep 17
10800