\nThe status is \'Approved\', when holiday request is approved by manager.'),
'payslip_status': fields.boolean(string='Payslip Status',
help='Check this field when the leave has been taken into account in the payslip.'),
- 'report_note': fields.text('Comment by Manager'),
+ 'report_note': fields.text('HR Comments'),
'user_id':fields.related('employee_id', 'user_id', type='many2one', relation='res.users', string='User', store=True),
'date_from': fields.datetime('Start Date', readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}, select=True, copy=False),
'date_to': fields.datetime('End Date', readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}, copy=False),
return True
def set_payslip_status(self, cr, uid, ids, context=None):
- return self.write(cr, uid, ids, {'payslip_status': True}, context=context)
-
- def unset_payslip_status(self, cr, uid, ids, context=None):
- return self.write(cr, uid, ids, {'payslip_status': False}, context=context)
-
+ holidays_obj = self.browse(cr, uid, ids, context=context)[0]
+ status = False if holidays_obj['payslip_status'] else True
+ return self.write(cr, uid, ids, {'payslip_status': status}, context=context)
class resource_calendar_leaves(osv.osv):
_inherit = "resource.calendar.leaves"
<separator/>
<filter string="My Requests" name="my_leaves" domain="[('employee_id.user_id','=', uid)]" help="My Leave Requests"/>
<separator/>
+ <filter string="To Do" name="todo" domain="[('payslip_status', '=', False), ('holiday_status_id.active', '=', True)]"/>
+ <separator/>
<filter string="My Department Leaves" help="My Department Leaves" domain="[('department_id.manager_id','=',uid)]"/>
<field name="employee_id"/>
<field name="department_id"/>
<field name="date_to" required="1" on_change="onchange_date_to(date_to, date_from)"/>
<field name="number_of_days_temp" string="Allocated Days" sum="Remaining Days"/>
<field name="state"/>
+ <button name="set_payslip_status" field_name="payslip_status" type="object"
+ widget="toggle_button" options='{"active": "Reported in last payslips", "inactive": "To Report in Payslip"}' groups="base.group_hr_manager"/>
<field name="report_note" groups="base.group_hr_manager"/>
<field name="payslip_status" invisible="1"/>
- <button string="To Report in Payslip" name="set_payslip_status"
- type="object" class="oe_link oe_right" icon="gtk-normal"
- attrs="{'invisible': [('payslip_status', '=', True)]}" groups="base.group_hr_manager"/>
- <button string="Reported in last payslips" name="unset_payslip_status"
- type="object" class="oe_link oe_right" icon="gtk-yes"
- attrs="{'invisible': [('payslip_status', '=', False)]}" groups="base.group_hr_manager"/>
</tree>
</field>
</record>
<field name="date_to"/>
<field name="holiday_status_id"/>
<field name="state"/>
+ <button name="set_payslip_status" field_name="payslip_status" type="object"
+ widget="toggle_button" options='{"active": "Reported in last payslips", "inactive": "To Report in Payslip"}' groups="base.group_hr_manager"/>
<field name="report_note"/>
<field name="payslip_status" invisible="1"/>
- <button string="To Report in Payslip" name="set_payslip_status"
- type="object" class="oe_link oe_right"
- attrs="{'invisible': [('payslip_status', '=', True)]}" groups="base.group_hr_manager"/>
- <button string="Reported in last payslips" name="unset_payslip_status"
- type="object" class="oe_link oe_right"
- attrs="{'invisible': [('payslip_status', '=', False)]}" groups="base.group_hr_manager"/>
</tree>
</field>
</record>
<field name="number_of_days" string="Number of Days" sum="Remaining Days"/>
<field name="state"/>
<field name="payslip_status" invisible="1"/>
- <button string="To Report in Payslip" name="set_payslip_status"
- type="object" class="oe_link oe_right"
- attrs="{'invisible': [('payslip_status', '=', True)]}" groups="base.group_hr_manager"/>
- <button string="Reported in last payslips" name="unset_payslip_status"
- type="object" class="oe_link oe_right"
- attrs="{'invisible': [('payslip_status', '=', False)]}" groups="base.group_hr_manager"/>
+ <button name="set_payslip_status" field_name="payslip_status" type="object"
+ widget="toggle_button" options='{"active": "Reported in last payslips", "inactive": "To Report in Payslip"}' groups="base.group_hr_manager"/>
<field name="category_id" invisible="1"/>
<field name="department_id" invisible="not context.get('set_visible',False)"/>
<field name="manager_id" invisible="1"/>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" eval="view_holiday_employee"/>
- <field name="context">{'default_type': 'remove', 'search_default_gray': 1, 'search_default_year': 1, 'search_default_group_employee': 1}</field>
+ <field name="context">{'default_type': 'remove', 'search_default_todo': 1}</field>
<field name="domain">[('type','=','remove')]</field>
<field name="search_view_id" ref="view_hr_holidays_filter"/>
</record>
'button': 'instance.web.list.Button',
'field.many2onebutton': 'instance.web.list.Many2OneButton',
'field.reference': 'instance.web.list.Reference',
- 'field.many2many': 'instance.web.list.Many2Many'
+ 'field.many2many': 'instance.web.list.Many2Many',
+ 'button.toggle_button': 'instance.web.list.toggle_button',
});
instance.web.list.columns.for_ = function (id, field, node) {
var description = _.extend({tag: node.tag}, field, node.attrs);
return this._super(row_data, options);
}
});
+instance.web.list.toggle_button = instance.web.list.Column.extend({
+ format: function (row_data, options) {
+ this._super(row_data, options);
+ var button_tips = JSON.parse(this.options);
+ var fieldname = this.field_name;
+ var has_value = row_data[fieldname] && !!row_data[fieldname].value;
+ this.icon = has_value ? 'gtk-yes' : 'gtk-normal';
+ this.string = has_value ? _t(button_tips ? button_tips['active']: ''): _t(button_tips ? button_tips['inactive']: '');
+ return QWeb.render('toggle_button', {
+ widget: this,
+ prefix: instance.session.prefix,
+ });
+ },
+});
})();
-// vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax:
<a href="javascript:void(0)"><t t-esc="text"/></a>
</t>
<t t-name="StatInfo">
- <strong><t t-esc="value"/></strong><br/><t t-esc="text"/></t>
+ <strong><t t-esc="value"/></strong><br/><t t-esc="text"/>
+</t>
+<button t-name="toggle_button" type="button"
+ t-att-title="widget.string"
+ style="box-shadow: none; white-space:nowrap;">
+ <img t-attf-src="#{prefix}/web/static/src/img/icons/#{widget.icon}.png"
+ t-att-alt="widget.string"/>
+</button>
</templates>