From 3694786630287043ee3aa6e5d0d3443743f19ee3 Mon Sep 17 00:00:00 2001 From: Abdurrahman Saber Date: Mon, 14 Apr 2025 13:12:04 +0200 Subject: [PATCH] [MIG][IMP][ADD] payment_applepay, p_donation_theme, ensan_sale_management: migrate applypay to v14 and encapsulate shared logic into a new model to fix dependency cycles --- .../ensan_sale_management/__init__.py | 1 + .../ensan_sale_management/__manifest__.py | 17 ++ .../data/sms_data.xml | 3 +- .../ensan_sale_management/models/__init__.py | 2 + .../models/product.py | 0 .../models/sale_order.py} | 8 +- .../security/ir.model.access.csv | 2 + .../views/product_views.xml | 42 +++ .../views/sale_order_views.xml | 29 ++ odex25_donation/p_donation_theme/__init__.py | 3 +- .../p_donation_theme/__manifest__.py | 10 +- .../p_donation_theme/controllers/main.py | 4 +- .../p_donation_theme/models/__init__.py | 3 - .../security/ir.model.access.csv | 2 - .../p_donation_theme/views/views.xml | 64 ----- .../payment_applepay/__manifest__.py | 3 +- .../payment_applepay/controllers/main.py | 249 ++++++++++++------ .../data/payment_acquirer_data.xml | 18 +- .../payment_applepay/models/__init__.py | 1 - .../models/account_payment_method.py | 14 - .../payment_applepay/models/payment copy.py | 126 --------- .../payment_applepay/models/payment.py | 248 ++++++++--------- .../models/payment_before_email_patch.py | 138 ---------- .../models/payment_transaction.py | 109 +++----- .../static/src/js/applepay_iframe.js | 131 +++++++++ .../src/scss/applepay_iframe_content.scss | 27 ++ .../views/applepay_iframe.xml | 19 ++ .../views/payment_applepay_templates.xml | 2 +- .../views/payment_popup_template.xml | 2 +- .../payment_applepay/views/payment_views.xml | 11 +- .../payment_hyperpay/__manifest__.py | 3 +- 31 files changed, 624 insertions(+), 667 deletions(-) create mode 100644 odex25_donation/ensan_sale_management/__init__.py create mode 100644 odex25_donation/ensan_sale_management/__manifest__.py rename odex25_donation/{p_donation_theme => ensan_sale_management}/data/sms_data.xml (61%) create mode 100644 odex25_donation/ensan_sale_management/models/__init__.py rename odex25_donation/{p_donation_theme => ensan_sale_management}/models/product.py (100%) rename odex25_donation/{p_donation_theme/models/sale.py => ensan_sale_management/models/sale_order.py} (93%) create mode 100644 odex25_donation/ensan_sale_management/security/ir.model.access.csv create mode 100644 odex25_donation/ensan_sale_management/views/product_views.xml create mode 100644 odex25_donation/ensan_sale_management/views/sale_order_views.xml delete mode 100644 odex25_donation/p_donation_theme/models/__init__.py delete mode 100644 odex25_donation/p_donation_theme/security/ir.model.access.csv delete mode 100644 odex25_donation/payment_applepay/models/account_payment_method.py delete mode 100644 odex25_donation/payment_applepay/models/payment copy.py delete mode 100644 odex25_donation/payment_applepay/models/payment_before_email_patch.py create mode 100644 odex25_donation/payment_applepay/static/src/js/applepay_iframe.js create mode 100644 odex25_donation/payment_applepay/static/src/scss/applepay_iframe_content.scss create mode 100644 odex25_donation/payment_applepay/views/applepay_iframe.xml diff --git a/odex25_donation/ensan_sale_management/__init__.py b/odex25_donation/ensan_sale_management/__init__.py new file mode 100644 index 000000000..9a7e03ede --- /dev/null +++ b/odex25_donation/ensan_sale_management/__init__.py @@ -0,0 +1 @@ +from . import models \ No newline at end of file diff --git a/odex25_donation/ensan_sale_management/__manifest__.py b/odex25_donation/ensan_sale_management/__manifest__.py new file mode 100644 index 000000000..5044c11d1 --- /dev/null +++ b/odex25_donation/ensan_sale_management/__manifest__.py @@ -0,0 +1,17 @@ +{ + 'name': 'Ensan Sale Management', + 'version': '14.0', + 'description': '', + 'summary': '', + 'author': 'Ensan', + 'website': 'https://ensan.com', + 'license': 'LGPL-3', + 'category': 'Sales', + 'depends': ['base', 'website_sale'], + 'data': [ + 'security/ir.model.access.csv', + 'data/sms_data.xml', + 'views/sale_order_views.xml', + 'views/product_views.xml' + ], +} diff --git a/odex25_donation/p_donation_theme/data/sms_data.xml b/odex25_donation/ensan_sale_management/data/sms_data.xml similarity index 61% rename from odex25_donation/p_donation_theme/data/sms_data.xml rename to odex25_donation/ensan_sale_management/data/sms_data.xml index b176d1849..e585f45ca 100644 --- a/odex25_donation/p_donation_theme/data/sms_data.xml +++ b/odex25_donation/ensan_sale_management/data/sms_data.xml @@ -9,10 +9,9 @@ Donation on Behalf Confirmed - + ar بكل الود أهديك تبرع عبر منصة إنسان لمشروع: {{object.product_id.name}} من : {{object.sale_id.order_name}} - \ No newline at end of file diff --git a/odex25_donation/ensan_sale_management/models/__init__.py b/odex25_donation/ensan_sale_management/models/__init__.py new file mode 100644 index 000000000..bd901bd44 --- /dev/null +++ b/odex25_donation/ensan_sale_management/models/__init__.py @@ -0,0 +1,2 @@ +from . import sale_order +from . import product diff --git a/odex25_donation/p_donation_theme/models/product.py b/odex25_donation/ensan_sale_management/models/product.py similarity index 100% rename from odex25_donation/p_donation_theme/models/product.py rename to odex25_donation/ensan_sale_management/models/product.py diff --git a/odex25_donation/p_donation_theme/models/sale.py b/odex25_donation/ensan_sale_management/models/sale_order.py similarity index 93% rename from odex25_donation/p_donation_theme/models/sale.py rename to odex25_donation/ensan_sale_management/models/sale_order.py index f84577588..bd52ab54f 100644 --- a/odex25_donation/p_donation_theme/models/sale.py +++ b/odex25_donation/ensan_sale_management/models/sale_order.py @@ -4,6 +4,7 @@ from odoo.tools.json import scriptsafe as json_scriptsafe class SaleOrder_Inherit(models.Model): _inherit = 'sale.order' + done_with_quick_donation = fields.Boolean(default=False) order_mobile_number = fields.Char("Donor Number") order_name = fields.Char("Donor Name") @@ -12,8 +13,7 @@ class SaleOrder_Inherit(models.Model): def get_sale_order_portal_url(self): for sale in self: - sale.sale_order_portal_url = self.env['ir.config_parameter'].sudo().get_param( - 'web.base.url') + sale.get_portal_url() + sale.sale_order_portal_url = self.env['ir.config_parameter'].sudo().get_param('web.base.url') + sale.get_portal_url() def _cart_update(self, *args, **kwargs): res = super(SaleOrder_Inherit, self)._cart_update(*args, **kwargs) @@ -48,13 +48,13 @@ class SaleOrder_Inherit(models.Model): if call_super == True: for rec in self: if rec.order_mobile_number: - sms_template_id = self.env.ref('p_donation_theme.sms_template_data_donation') + sms_template_id = self.env.ref('ensan_sale_management.sms_template_data_donation') rec._message_sms_with_template( template=sms_template_id, put_in_queue=False, sms_numbers=[rec.order_mobile_number] ) - donar_sms_template_id = self.env.ref('p_donation_theme.sms_template_donors_data_donation') + donar_sms_template_id = self.env.ref('ensan_sale_management.sms_template_donors_data_donation') for donator in rec.donators_ids: donator._message_sms_with_template( template=donar_sms_template_id, diff --git a/odex25_donation/ensan_sale_management/security/ir.model.access.csv b/odex25_donation/ensan_sale_management/security/ir.model.access.csv new file mode 100644 index 000000000..c092a283f --- /dev/null +++ b/odex25_donation/ensan_sale_management/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_sale_order_extra_donators,access.sale.order.extra_donators,model_sale_order_extra_donators,,1,1,1,1 \ No newline at end of file diff --git a/odex25_donation/ensan_sale_management/views/product_views.xml b/odex25_donation/ensan_sale_management/views/product_views.xml new file mode 100644 index 000000000..3ca172efd --- /dev/null +++ b/odex25_donation/ensan_sale_management/views/product_views.xml @@ -0,0 +1,42 @@ + + + + + product.template.form.inherit + product.template + + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
diff --git a/odex25_donation/ensan_sale_management/views/sale_order_views.xml b/odex25_donation/ensan_sale_management/views/sale_order_views.xml new file mode 100644 index 000000000..74e4eee97 --- /dev/null +++ b/odex25_donation/ensan_sale_management/views/sale_order_views.xml @@ -0,0 +1,29 @@ + + + + + extrafield.sale.order.form.view + sale.order + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odex25_donation/p_donation_theme/__init__.py b/odex25_donation/p_donation_theme/__init__.py index 511a0ca3a..457bae27e 100644 --- a/odex25_donation/p_donation_theme/__init__.py +++ b/odex25_donation/p_donation_theme/__init__.py @@ -1,4 +1,3 @@ # -*- coding: utf-8 -*- -from . import controllers -from . import models \ No newline at end of file +from . import controllers \ No newline at end of file diff --git a/odex25_donation/p_donation_theme/__manifest__.py b/odex25_donation/p_donation_theme/__manifest__.py index bf52f559f..75bd517ce 100644 --- a/odex25_donation/p_donation_theme/__manifest__.py +++ b/odex25_donation/p_donation_theme/__manifest__.py @@ -12,13 +12,17 @@ 'license': 'LGPL-3', 'category': 'Uncategorized', 'version': '14.0.1', - 'depends': ['base', 'website_sale', 'theme_prime', 'droggol_theme_common', 'payment_hyperpay', 'payment_applepay'], + 'depends': ['base', + 'website_sale', + 'theme_prime', + 'droggol_theme_common', + 'payment_hyperpay', + 'payment_applepay', + 'ensan_sale_management'], 'data': [ - 'security/ir.model.access.csv', 'views/templates.xml', 'views/views.xml', - 'data/sms_data.xml' ], 'images': ['static/description/banner.png'], } diff --git a/odex25_donation/p_donation_theme/controllers/main.py b/odex25_donation/p_donation_theme/controllers/main.py index 4b37cd21d..00dacdb7e 100644 --- a/odex25_donation/p_donation_theme/controllers/main.py +++ b/odex25_donation/p_donation_theme/controllers/main.py @@ -122,10 +122,10 @@ class WebsiteSaleExtended(WebsiteSale): try: if acquire_id: payment_acquire_id = request.env['payment.acquirer'].sudo().search( - [('code', 'in', ['hyperpay', 'applepay']), ('company_id', 'in', (False, order.company_id.id)), ('id', '=', int(acquire_id))], limit=1) + [('provider', '=', 'hyperpay'), ('company_id', 'in', (False, order.company_id.id)), ('id', '=', int(acquire_id))], limit=1) else: payment_acquire_id = request.env['payment.acquirer'].sudo().search( - [('code', '=', 'hyperpay'), ('company_id', 'in', (False, order.company_id.id))], limit=1) + [('provider', '=', 'hyperpay'), ('company_id', 'in', (False, order.company_id.id))], limit=1) # Create transaction vals = {'acquirer_id': payment_acquire_id, diff --git a/odex25_donation/p_donation_theme/models/__init__.py b/odex25_donation/p_donation_theme/models/__init__.py deleted file mode 100644 index 114b41426..000000000 --- a/odex25_donation/p_donation_theme/models/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# -*- coding: utf-8 -*- - -from . import sale, product \ No newline at end of file diff --git a/odex25_donation/p_donation_theme/security/ir.model.access.csv b/odex25_donation/p_donation_theme/security/ir.model.access.csv deleted file mode 100644 index f382e04fe..000000000 --- a/odex25_donation/p_donation_theme/security/ir.model.access.csv +++ /dev/null @@ -1,2 +0,0 @@ -id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink -access_sale_order_extra_donators,access.sale.order.extra_donators,model_sale_order_extra_donators,,1,1,1,1 \ No newline at end of file diff --git a/odex25_donation/p_donation_theme/views/views.xml b/odex25_donation/p_donation_theme/views/views.xml index 6aedd93a5..17cc0da35 100644 --- a/odex25_donation/p_donation_theme/views/views.xml +++ b/odex25_donation/p_donation_theme/views/views.xml @@ -1,70 +1,6 @@ - - product.template.form.inherit - product.template - - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- - extrafield.sale.order.form.view - sale.order - - - - - - - - - - - - - - - - - - - - - -