diff --git a/addons/payment_stripe/controllers/main.py b/addons/payment_stripe/controllers/main.py index ceebb17e500..b4627157a9e 100644 --- a/addons/payment_stripe/controllers/main.py +++ b/addons/payment_stripe/controllers/main.py @@ -32,7 +32,7 @@ class StripeController(http.Controller): tx = request.env['payment.transaction'].sudo().browse( int(request.session.get('sale_transaction_id') or request.session.get('website_payment_tx_id', False)) ) - response = tx._create_stripe_charge(tokenid=post['tokenid']) + response = tx._create_stripe_charge(tokenid=post['tokenid'], email=post['email']) _logger.info('Stripe: entering form_feedback with post data %s', pprint.pformat(response)) if response: request.env['payment.transaction'].sudo().form_feedback(response, 'stripe') diff --git a/addons/payment_stripe/models/payment.py b/addons/payment_stripe/models/payment.py index 2ef4e42061a..edec99e41ab 100644 --- a/addons/payment_stripe/models/payment.py +++ b/addons/payment_stripe/models/payment.py @@ -81,7 +81,7 @@ class PaymentAcquirerStripe(models.Model): class PaymentTransactionStripe(models.Model): _inherit = 'payment.transaction' - def _create_stripe_charge(self, acquirer_ref=None, tokenid=None): + def _create_stripe_charge(self, acquirer_ref=None, tokenid=None, email=None): api_url_charge = 'https://%s/charges' % (self.acquirer_id._get_stripe_api_url()) charge_params = { 'amount': int(self.amount*100), # Stripe takes amount in cents (https://support.stripe.com/questions/which-zero-decimal-currencies-does-stripe-support) @@ -92,6 +92,8 @@ class PaymentTransactionStripe(models.Model): charge_params['customer'] = acquirer_ref if tokenid: charge_params['card'] = str(tokenid) + if email: + charge_params['receipt_email'] = email r = requests.post(api_url_charge, auth=(self.acquirer_id.stripe_secret_key, ''), params=charge_params, diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index d8c9c0d237e..3e6b19adf11 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -1217,7 +1217,7 @@ class Export(http.Controller): info = {} fields = self.fields_get(model) if ".id" in export_fields: - fields['.id'] = fields.pop('id', {'string': 'ID'}) + fields['.id'] = fields.get('id', {'string': 'ID'}) # To make fields retrieval more efficient, fetch all sub-fields of a # given field at the same time. Because the order in the export list is diff --git a/addons/web/static/src/js/views/form_relational_widgets.js b/addons/web/static/src/js/views/form_relational_widgets.js index a15b588a297..46136e21565 100644 --- a/addons/web/static/src/js/views/form_relational_widgets.js +++ b/addons/web/static/src/js/views/form_relational_widgets.js @@ -1062,8 +1062,10 @@ var One2ManyListView = X2ManyListView.extend({ this._dataset_changed = false; }); - this.on('warning', this, function(e) { // In case of a one2many, we do not want any warning which comes from the editor - e.stop_propagation(); + this.on('warning', this, function(e) { // In case of editable list view, we do not want any warning which comes from the editor + if (this.editable()) { + e.stop_propagation(); + } }); }, do_add_record: function () { diff --git a/addons/web/static/src/js/widgets/data_export.js b/addons/web/static/src/js/widgets/data_export.js index 712adfb89e5..af9cceb51c2 100644 --- a/addons/web/static/src/js/widgets/data_export.js +++ b/addons/web/static/src/js/widgets/data_export.js @@ -403,6 +403,7 @@ var DataExport = Dialog.extend({ }, add_field: function(field_id, string) { var $field_list = this.$('.o_fields_list'); + field_id = this.records[field_id].value || field_id; if($field_list.find("option[value='" + field_id + "']").length === 0) { $field_list.append(new Option(string, field_id)); } diff --git a/addons/website_customer/controllers/main.py b/addons/website_customer/controllers/main.py index c05fb904f55..b69ffaf3e29 100644 --- a/addons/website_customer/controllers/main.py +++ b/addons/website_customer/controllers/main.py @@ -42,7 +42,7 @@ class WebsiteCustomer(http.Controller): if tag_id: tag_id = unslug(tag_id)[1] or 0 - domain += [('tag_ids', 'in', tag_id)] + domain += [('website_tag_ids', 'in', tag_id)] # group by country, based on customers found with the search(domain) countries = Partner.sudo().read_group(domain, ["id", "country_id"], groupby="country_id", orderby="country_id") diff --git a/addons/website_sale/static/src/js/website_sale.js b/addons/website_sale/static/src/js/website_sale.js index 1205951b039..1bb49194f37 100644 --- a/addons/website_sale/static/src/js/website_sale.js +++ b/addons/website_sale/static/src/js/website_sale.js @@ -233,7 +233,7 @@ odoo.define('website_sale.website_sale', function (require) { var precision = 2; if ($(".decimal_precision").length) { - precision = parseInt($(".decimal_precision").first().data('precision')); + precision = parseInt($(".decimal_precision").last().data('precision')); } var formatted = _.str.sprintf('%.' + precision + 'f', price).split('.'); formatted[0] = utils.insert_thousand_seps(formatted[0]); diff --git a/addons/website_sale/views/templates.xml b/addons/website_sale/views/templates.xml index 646dd968295..0dbb46899e7 100644 --- a/addons/website_sale/views/templates.xml +++ b/addons/website_sale/views/templates.xml @@ -584,8 +584,7 @@