diff --git a/website_subscription_package/__manifest__.py b/website_subscription_package/__manifest__.py index 5bf2e8b23..e09aa15a3 100644 --- a/website_subscription_package/__manifest__.py +++ b/website_subscription_package/__manifest__.py @@ -43,6 +43,7 @@ 'assets': { 'web.assets_frontend': [ 'website_subscription_package/static/src/js/website_sale.js', + 'website_subscription_package/static/src/js/subscription.js' ], }, 'images': ['static/description/banner.jpg'], diff --git a/website_subscription_package/controllers/portal.py b/website_subscription_package/controllers/portal.py index 74ceeecd1..2a14c390b 100644 --- a/website_subscription_package/controllers/portal.py +++ b/website_subscription_package/controllers/portal.py @@ -86,6 +86,9 @@ class SubscriptionCustomerPortal(portal.CustomerPortal): """Render subscription page.""" subscription = request.env['subscription.package'].sudo().browse( subscription) + cancel_reason = request.env['subscription.package.stop'].sudo().search( + []) + users = request.env['res.users'].sudo().search([]) if state == 'Draft': subscription.button_start_date() try: @@ -95,4 +98,29 @@ class SubscriptionCustomerPortal(portal.CustomerPortal): return request.website.render("website.403") return request.render( "website_subscription_package.subscription_page", { - 'subscription': subscription.sudo()}) + 'subscription': subscription.sudo(), + 'users': users, + 'close_reasons': cancel_reason}) + + @http.route( + ['/my/subscription_order/cancel'], + type='http', auth="user", website=True) + def subscription_cancel(self, **post): + """Render subscription page.""" + subscription = request.env['subscription.package'].sudo().browse( + int(post.get('subscription_id'))) + subscription.is_closed = True + subscription.close_reason_id = int(post.get('reason')) + subscription.closed_by = int(post.get('user')) + subscription.close_date = post.get('date_closed') + stage = (request.env['subscription.package.stage'].search([ + ('category', '=', 'closed')]).id) + values = {'stage_id': stage, 'is_to_renew': False} + subscription.write(values) + for lines in subscription.sale_order_id.order_line.filtered( + lambda x: x.product_template_id.is_subscription == True): + lines.qty_invoiced = lines.product_uom_qty + lines.qty_to_invoice = 0 + return request.render( + "website_subscription_package.subscription_page", + {'subscription': subscription.sudo()}) diff --git a/website_subscription_package/static/img/image01.png b/website_subscription_package/static/img/image01.png new file mode 100644 index 000000000..51addf3ea Binary files /dev/null and b/website_subscription_package/static/img/image01.png differ diff --git a/website_subscription_package/static/src/js/subscription.js b/website_subscription_package/static/src/js/subscription.js new file mode 100644 index 000000000..898d6e8de --- /dev/null +++ b/website_subscription_package/static/src/js/subscription.js @@ -0,0 +1,27 @@ +/* @odoo-module */ +import publicWidget from "@web/legacy/js/public/public_widget"; +import { jsonrpc } from "@web/core/network/rpc_service"; +import { sprintf } from "@web/core/utils/strings"; +import { _t } from "@web/core/l10n/translation"; +import { loadWysiwygFromTextarea } from "@web_editor/js/frontend/loadWysiwygFromTextarea"; +console.log('LLLLLLLLLLLLLLLLL') +publicWidget.registry.subscriptionDetail = publicWidget.Widget.extend({ + selector: '.subscription_detail_temp', + events: { + 'click .btnShowCloseSubscriptionModal': '_onClickShowModal', + 'click .close_modal': '_onClickCloseModal', + }, + /** + *open modal to apply close reason + */ + _onClickShowModal: function () { + this.el.querySelector('#subscription_close_modal').style.display = 'block'; + }, + /** + *close the document modal + */ + _onClickCloseModal: function () { + this.el.querySelector('#subscription_close_modal').style.display = 'none'; + }, + + }); \ No newline at end of file diff --git a/website_subscription_package/static/src/xml/subscription_close_modal.xml b/website_subscription_package/static/src/xml/subscription_close_modal.xml new file mode 100644 index 000000000..bf8a7bbc4 --- /dev/null +++ b/website_subscription_package/static/src/xml/subscription_close_modal.xml @@ -0,0 +1,67 @@ + \ No newline at end of file diff --git a/website_subscription_package/views/portal_templates.xml b/website_subscription_package/views/portal_templates.xml index bf5f3414b..b427443b4 100644 --- a/website_subscription_package/views/portal_templates.xml +++ b/website_subscription_package/views/portal_templates.xml @@ -27,7 +27,10 @@ priority="30"> + Subscription + Subscription to review @@ -80,7 +83,7 @@