Vidhin Mehta (OpenERP) has proposed merging
lp:~openerp-dev/openerp-web/trunk-monetary-widget-float-vme into
lp:~openerp-dev/openerp-web/trunk-monetary-widget-float.
Requested reviews:
OpenERP R&D Team (openerp-dev)
For more details, see:
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-monetary-widget-float-vme/+merge/121130
Made monetary widget for currency value(float field).
<field name="amount" widget="monetary"
widget_option="{'monetary_currency':'currency_id'}"/>
-> currency_id is many2one field of res.currency model.
-> if widget_option not specifed warning display.
-> Before/After position of currency symbol is determine from res.currency
model.
-> currency symbol not displayed on create mode.
--
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-monetary-widget-float-vme/+merge/121130
Your team OpenERP R&D Team is requested to review the proposed merge of
lp:~openerp-dev/openerp-web/trunk-monetary-widget-float-vme into
lp:~openerp-dev/openerp-web/trunk-monetary-widget-float.
=== modified file 'addons/web/static/src/js/formats.js'
--- addons/web/static/src/js/formats.js 2012-08-08 10:34:04 +0000
+++ addons/web/static/src/js/formats.js 2012-08-24 08:13:22 +0000
@@ -111,6 +111,7 @@
return value_if_empty === undefined ? '' : value_if_empty;
}
var l10n = _t.database.parameters;
+ //console.log(descriptor.widget , descriptor.type , descriptor.field , descriptor.field.type);
switch (descriptor.widget || descriptor.type || (descriptor.field && descriptor.field.type)) {
case 'id':
return value.toString();
@@ -118,6 +119,7 @@
return instance.web.insert_thousand_seps(
_.str.sprintf('%d', value));
case 'float':
+ case 'monetory':
var digits = descriptor.digits ? descriptor.digits : [69,2];
digits = typeof digits === "string" ? py.eval(digits) : digits;
var precision = digits[1];
@@ -164,6 +166,7 @@
if (result) { return result[1]; }
return;
default:
+
return value;
}
};
=== modified file 'addons/web/static/src/js/view_form.js'
--- addons/web/static/src/js/view_form.js 2012-08-23 15:37:10 +0000
+++ addons/web/static/src/js/view_form.js 2012-08-24 08:13:22 +0000
@@ -2167,7 +2167,63 @@
this.$('input:first').select();
}
});
-
+instance.web.form.Monetary = instance.web.form.FieldFloat.extend({
+ template: 'FieldMonetary',
+ init: function (field_manager, node) {
+ console.log('iniit');
+ this._super(field_manager, node);
+ this.monetary_disable = false;
+ if(!_.has(node.attrs,"widget_option")){
+ this.monetary_disable = true;
+ this.do_warn(_t('widget_option not specifed'));
+ return;
+ }
+ var temp = py.eval(node.attrs["widget_option"]);
+ this.currency_field_name = temp["monetary_currency"];
+ this.currency_value;
+ this.currency_position;
+ this.data_loaded = $.Deferred();
+ },
+ render_value: function(){
+ var self = this;
+ if(this.is_valid())return this._super.apply(this, arguments);
+ var show_value = instance.web.format_value(this.get('value'), this, '');
+ if (!this.get("effective_readonly")) {
+ this.$element.find('input').val(show_value);
+ } else {
+ this.$element.filter(".oe_form_field_float").text(show_value);
+ }
+ this.data_loaded.done(function(){
+ self.$element.filter(".monetary").text(self.currency_value[1]);
+ });
+ },
+ is_valid:function(){
+ return this.monetary_disable || (!this.monetary_disable && _.isNull(this.view.dataset.index));
+ },
+ renderElement:function(){
+ var self = this;
+ this._super.apply(this, arguments);
+ if(this.is_valid())return;
+ if(this.data_loaded.state() == "pending")this.get_currency_detail();
+ this.$element.addClass('oe_inline');
+ this.data_loaded.done(function(){
+ if(self.currency_position == "after")
+ self.$element.filter(".oe_form_field_float").after(self.$element.filter(".monetary"));
+ });
+ },
+ get_currency_detail: function(){
+ var self = this;
+ var id = this.view.dataset.ids[this.view.dataset.index];
+ this.view.dataset.read_ids([id],[self.currency_field_name]).done(function(res){
+ self.currency_value = res[0][self.currency_field_name];
+ var res_currency = new instance.web.Model('res.currency',{},[['id','=',res[0]["id"]]]).query(['position'])
+ res_currency._execute().done(function(position){
+ self.currency_position = position[0]['position'];
+ self.data_loaded.resolve();
+ });
+ });
+ }
+});
instance.web.DateTimeWidget = instance.web.Widget.extend({
template: "web.datepicker",
jqueryui_object: 'datetimepicker',
@@ -4803,7 +4859,8 @@
'progressbar': 'instance.web.form.FieldProgressBar',
'image': 'instance.web.form.FieldBinaryImage',
'binary': 'instance.web.form.FieldBinaryFile',
- 'statusbar': 'instance.web.form.FieldStatus'
+ 'statusbar': 'instance.web.form.FieldStatus',
+ 'monetary':'instance.web.form.Monetary'
});
/**
=== modified file 'addons/web/static/src/xml/base.xml'
--- addons/web/static/src/xml/base.xml 2012-08-21 09:30:00 +0000
+++ addons/web/static/src/xml/base.xml 2012-08-24 08:13:22 +0000
@@ -941,6 +941,11 @@
</t>
</span>
</t>
+<t t-name="FieldMonetary" t-extend="FieldChar">
+ <t t-jquery="span" t-operation="before">
+ <span t-if = "!widget.monetary_disable" class="monetary"></span>
+ </t>
+</t>
<t t-name="FieldEmail">
<span class="oe_form_field oe_form_field_email" t-att-style="widget.node.attrs.style">
<a t-if="widget.get('effective_readonly')" href="#" class="oe_form_uri" target="_blank"/>
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp