Siirry sisältöön
Menu
Sinun on rekisteröidyttävä, jotta voit olla vuorovaikutuksessa yhteisön kanssa.
Tämä kysymys on merkitty
6 Vastaukset
11979 Näkymät

I want to refresh the tree view of attendance when some record is deleted.

I'm trying unlink() function to refresh.

The .py code is 

  @api.multi

def unlink(self):

res = super(hr_attendance, self).unlink()

return {'type': 'ir.actions.client', 'tag': 'auto_refresh',}


I don't know how to call this in xml

I have tried 

My xml code is


         </record>

<record id="your_object_auto_refresh_dashboard" model="ir.actions.client">

<field name="name">refresh</field>

<field name="res_model">hr.attendance</field>

<field name="view_type">tree</field>

<field name="view_mode">tree</field>

<field name="tag">10</field>

<field name="usage">menu</field>

<field name="view_id" ref="view_attendance_who"/>

</record>


But its is not working.

How can I achieve this?

Is this is possible in odoo( refresh when record is deleted)?

Provide me some examples for this.


Avatar
Hylkää
Tekijä

The python program I have changed

@api.multi

def unlink(self):

res = super(hr_attendance, self).unlink()

return {'type': 'ir.actions.client', 'tag': 'reload',}

When I delete some record from tree view This unlink() method is called but it is not refreshing the tree view.

I have called this function as button in the form view

<header>

<button name="unlink" string="Refresh" type="object" />

</header>

When I press this button in the form view it refresh the form view and delete the current record in the form view.

But what I want is when I delete the record in tree view the tree view should be refreshed.

How it can be achieved?

Paras vastaus

Hello Uppili,


Try below code :-


@api.multi

def unlink(self):

    res = super(hr_attendance, self).unlink()

    return self.return_action_hr_attendance()


def return_action_hr_attendance(self):

     model_obj = self.env['ir.model.data']

     data_id = model_obj._get_id('module_name', 'hr_attendance_tree_id')

     view_id = model_obj.browse(data_id).res_id

     return {

          'type': 'ir.actions.client',

          'tag': 'reload',

          'name': _('Attendance'),

          'res_model': 'hr.attendance',

          'view_type': 'tree',

         'view_mode': 'tree',

         'view_id': view_id,

         'target': 'current',

         'nodestroy': True,

     }


Hope it works for you.

Thanks,

Avatar
Hylkää
Tekijä

Thanks for your reply.

Your code deletes the record but the page is not refreshing.

data_id = model_obj._get_id('hr_attendance', 'view_attendance_who')

Tekijä

When I give this method in return_action_hr_attendance in button. While I pressing that button the page is getting refreshed but while deleting the page is not refreshing.

Tekijä

The same is happening in both of our codes. While passing through unlink() the page refresh is not happening.

Paras vastaus

You need an auto_refresh solution like:

https://github.com/aek/odoo_public/tree/8.0/addons/solt_autorefresh

because the unlink will not trigger any reload and even if it does, it will be for the current user, not for others users

Avatar
Hylkää
Aiheeseen liittyviä artikkeleita Vastaukset Näkymät Toimenpide
1
kesäk. 16
5742
0
elok. 20
2543
1
marrask. 16
14643
0
maalisk. 16
3022
0
elok. 17
4121