3 changed files with 98 additions and 2 deletions
@ -0,0 +1,87 @@ |
|||||
|
odoo.define('om_account_asset.widget', function(require) { |
||||
|
"use strict"; |
||||
|
|
||||
|
/** |
||||
|
* The purpose of this widget is to shows a toggle button on depreciation and |
||||
|
* installment lines for posted/unposted line. When clicked, it calls the method |
||||
|
* create_move on the object account.asset.depreciation.line. |
||||
|
* Note that this widget can only work on the account.asset.depreciation.line |
||||
|
* model as some of its fields are harcoded. |
||||
|
*/ |
||||
|
|
||||
|
var AbstractField = require('web.AbstractField'); |
||||
|
var core = require('web.core'); |
||||
|
var registry = require('web.field_registry'); |
||||
|
|
||||
|
var _t = core._t; |
||||
|
|
||||
|
var AccountAssetWidget = AbstractField.extend({ |
||||
|
events: _.extend({}, AbstractField.prototype.events, { |
||||
|
'click': '_onClick', |
||||
|
}), |
||||
|
description: "", |
||||
|
|
||||
|
//--------------------------------------------------------------------------
|
||||
|
// Public
|
||||
|
//--------------------------------------------------------------------------
|
||||
|
|
||||
|
/** |
||||
|
* @override |
||||
|
*/ |
||||
|
isSet: function () { |
||||
|
return true; // it should always be displayed, whatever its value
|
||||
|
}, |
||||
|
|
||||
|
//--------------------------------------------------------------------------
|
||||
|
// Private
|
||||
|
//--------------------------------------------------------------------------
|
||||
|
|
||||
|
/** |
||||
|
* @override |
||||
|
* @private |
||||
|
*/ |
||||
|
_render: function () { |
||||
|
var className = ''; |
||||
|
var disabled = true; |
||||
|
var title; |
||||
|
if (this.recordData.move_posted_check) { |
||||
|
className = 'o_is_posted'; |
||||
|
title = _t('Posted'); |
||||
|
} else if (this.recordData.move_check) { |
||||
|
className = 'o_unposted'; |
||||
|
title = _t('Accounting entries waiting for manual verification'); |
||||
|
} else { |
||||
|
disabled = false; |
||||
|
title = _t('Unposted'); |
||||
|
} |
||||
|
var $button = $('<button/>', { |
||||
|
type: 'button', |
||||
|
title: title, |
||||
|
disabled: disabled, |
||||
|
}).addClass('btn btn-link fa fa-circle o_deprec_lines_toggler ' + className); |
||||
|
this.$el.html($button); |
||||
|
}, |
||||
|
|
||||
|
//--------------------------------------------------------------------------
|
||||
|
// Handlers
|
||||
|
//--------------------------------------------------------------------------
|
||||
|
|
||||
|
/** |
||||
|
* @private |
||||
|
* @param {MouseEvent} event |
||||
|
*/ |
||||
|
_onClick: function (event) { |
||||
|
event.stopPropagation(); |
||||
|
this.trigger_up('button_clicked', { |
||||
|
attrs: { |
||||
|
name: 'create_move', |
||||
|
type: 'object', |
||||
|
}, |
||||
|
record: this.record, |
||||
|
}); |
||||
|
}, |
||||
|
}); |
||||
|
|
||||
|
registry.add("deprec_lines_toggler", AccountAssetWidget); |
||||
|
|
||||
|
}); |
@ -0,0 +1,9 @@ |
|||||
|
.o_web_client .o_deprec_lines_toggler { |
||||
|
color: theme-color('danger'); |
||||
|
&.o_is_posted { |
||||
|
color: theme-color('success'); |
||||
|
} |
||||
|
&.o_unposted { |
||||
|
color: theme-color('warning'); |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue