Vidhin Mehta (OpenERP) has proposed merging
lp:~openerp-dev/openerp-web/trunk-monetary-widget-2-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-2-vme/+merge/122047
--
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-monetary-widget-2-vme/+merge/122047
Your team OpenERP R&D Team is requested to review the proposed merge of
lp:~openerp-dev/openerp-web/trunk-monetary-widget-2-vme into
lp:~openerp-dev/openerp-web/trunk-monetary-widget-float.
=== modified file 'addons/web/static/src/js/view_form.js'
--- addons/web/static/src/js/view_form.js 2012-08-30 12:07:10 +0000
+++ addons/web/static/src/js/view_form.js 2012-08-30 12:10:29 +0000
@@ -2973,7 +2973,63 @@
return instance.web.form.CompletionFieldMixin._search_create_popup.apply(this, arguments);
},
});
-
+instance.web.form.Monetary = instance.web.form.FieldMany2One.extend({
+ init: function(field_manager, node){
+ this._super(field_manager, node);
+ this.currency_value;
+ this.data_loaded = $.Deferred();
+ this.currency_el;
+ this.old_position;
+ var temp = py.eval(node.attrs["widget_option"]);
+ this.amount_field_name = _.isArray(temp["monetary_amount"])?
+ temp["monetary_amount"]:[temp["monetary_amount"]];
+ },
+ set_value: function(value_){
+ var self = this;
+ var value = _.isArray(value_)?value_[0]:value_;
+ var call_rpc = (value != this.get("value"))?true:false;
+ this._super.apply(this,arguments);
+ if(this.get("effective_readonly") && call_rpc){
+ $.when(this.view.has_been_loaded,this.get_currency_detail(value)).then(function(){
+ self.render_monetary();
+ });
+ }
+ },
+ render_monetary:function(){
+ var self = this;
+ var render_mon = function(){
+ self.display_string(self.currency_value['symbol']);
+ var unique = _.uniqueId('monetary_');
+ var clone_span = self.$el.detach();
+ _.each(self.amount_field_name,function(field){
+ var field_float = self.view.fields[field];
+ var clone = clone_span.clone(true).addClass(unique);
+ if (field_float){
+ field_float.$el[self.old_position](clone);
+ }
+ });
+ self.currency_el = self.view.$el.find("."+unique);
+ };
+ if(_.isUndefined(this.currency_el)){
+ this.old_position = this.currency_value['position'];
+ render_mon();
+ }else{
+ if(this.old_position != this.currency_value['position']){
+ this.old_position = this.currency_value['position'];
+ self.currency_el.remove();
+ render_mon();
+ }
+ this.currency_el.find(".oe_form_uri").html(this.currency_value['symbol']);
+ }
+ },
+ get_currency_detail: function(value_){
+ var self = this;
+ var res_currency = new instance.web.Model('res.currency',{},[['id','=',value_]]).query(['position','symbol']);
+ return res_currency._execute().done(function(value){
+ self.currency_value = value[0];
+ });
+ }
+});
/*
# Values: (0, 0, { fields }) create
# (1, ID, { fields }) update
@@ -4801,7 +4857,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'
});
/**
_______________________________________________
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