Browse Source

July 18: [FIX] Bug Fixed 'website_subscription_package'

pull/331/head
RisvanaCybro 9 months ago
parent
commit
ea16050c3a
  1. 1
      website_subscription_package/__manifest__.py
  2. 30
      website_subscription_package/controllers/portal.py
  3. BIN
      website_subscription_package/static/img/image01.png
  4. 27
      website_subscription_package/static/src/js/subscription.js
  5. 67
      website_subscription_package/static/src/xml/subscription_close_modal.xml
  6. 137
      website_subscription_package/views/portal_templates.xml

1
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'],

30
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()})

BIN
website_subscription_package/static/img/image01.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

27
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';
},
});

67
website_subscription_package/static/src/xml/subscription_close_modal.xml

@ -0,0 +1,67 @@
<template id="subscription_close_modal" name="SubscriptionClose">
<t t-call="website.layout">
<div id="subscription_close_temp" style="display:none">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Subscription Close Reason</h4>
</div>
<div class="modal-body">
<label class="col-form-labels_website_form_label">
<span class="s_website_form_label_content">Close
Reason
</span>
<span class="s_website_form_mark">*</span>
</label>
<div class="col-sm">
<select id="close_reason_id" type="text"
class="form-control s_website_form_input"
name="reason"
required="1">
<option t-att-value=""/>
<t t-foreach="close_reasons or []" t-as="reason">
<option t-att-value="reason.id"
t-att-data-state-name="reason.name">
<t t-esc="reason.name"/>
</option>
</t>
</select>
</div>
</div>
<div class="row s_col_no_resize s_col_no_bgcolor">
<label class="col-form-label col-sm-auto s_website_form_label"
for="studio1">
<span class="s_website_form_label_content">Closed By</span>
<span class="s_website_form_mark">*</span>
</label>
<div class="col-sm">
<select id="user_id" type="text"
class="form-control s_website_form_input"
name="user"
required="1">
<option t-att-value=""/>
<t t-foreach="users or []" t-as="user">
<option t-att-value="user.id">
<t t-esc="user.name"/>
</option>
</t>
</select>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default"
id="dismiss" data-dismiss="modal">Close
</button>
</div>
<div class="col-sm" id="col-sm-location">
<input id="close_reason_id" type="text"
class="form-control s_website_form_input"
data-toggle="modal"
data-target="#subscription_close_temp">
</input>
</div>
</div>
</div>
</t>
</template>

137
website_subscription_package/views/portal_templates.xml

@ -27,7 +27,10 @@
priority="30">
<xpath expr="//div[hasclass('o_portal_docs')]" position="inside">
<t t-call="portal.portal_docs_entry">
<t t-set="icon"
t-value="'/website_subscription_package/static/img/image01.png'"/>
<t t-set="title">Subscription</t>
<t t-set="text">Subscription to review</t>
<t t-set="url" t-value="'/my/subscription_order'"/>
<t t-set="placeholder_count" t-value="'subscription_count'"/>
</t>
@ -80,7 +83,7 @@
<template id="subscription_page" name="Subscription Detail Page">
<t t-call="portal.portal_layout">
<t t-set="wrapwrap_classes" t-value="'o_portal_bg_dark'"/>
<div class="row mt16 o_portal_sidebar">
<div class="row mt16 o_portal_sidebar subscription_detail_temp">
<!-- Subscription detail page -->
<div class="col-12 col-lg">
<div class="card">
@ -93,6 +96,7 @@
<span t-esc="subscription.name"/>
</h1>
</div>
<t t-if="subscription.stage_id.name == 'Draft'">
<a t-att-href="'/my/subscription_order/id=%s/state=%s' % (subscription.id,subscription.stage_id.name)">
<button type="button"
@ -104,6 +108,135 @@
</button>
</a>
</t>
<t t-if="subscription.stage_id.name == 'In Progress'">
<div class="btnShowCloseSubscriptionModal">
<div id="btnShowCloseSubscriptionModal"
t-att-id="subscription.id"
class="btn btn-secondary">
Close Subscription
</div>
</div>
</t>
<!--Subscription Close Modal-->
<div id="subscription_close_modal"
class="modal">
<form action="/my/subscription_order/cancel"
method="post"
id="subscription_close_form"
name="subscription_close_form"
enctype="multipart/form-data"
data-mark="*">
<input type="hidden"
name="csrf_token"
t-att-value="request.csrf_token()"/>
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">
Subscription Close
Reason
</h5>
<span class="close_modal">
<i class="fa fa-times-circle"/>
</span>
</div>
<div class="modal-body">
<div class="row s_col_no_resize s_col_no_bgcolor">
<label class="col-form-label col-sm-auto s_website_form_label">
<span class="s_website_form_label_content">
Close
Reason
</span>
<span class="s_website_form_mark">
*
</span>
</label>
<div class="col-sm">
<select id="close_reason_id"
type="text"
class="form-control s_website_form_input"
name="reason"
required="required">
<option t-att-value=""/>
<t t-foreach="close_reasons or []"
t-as="reason">
<option t-att-value="reason.id"
t-att-data-state-name="reason.name">
<t t-esc="reason.name"/>
</option>
</t>
</select>
</div>
</div>
<br/>
<div class="row s_col_no_resize s_col_no_bgcolor">
<label class="col-form-label col-sm-auto s_website_form_label"
for="studio1">
<span class="s_website_form_label_content">
Closed By
</span>
<span class="s_website_form_mark">
*
</span>
</label>
<div class="col-sm">
<select id="user_id"
type="text"
class="form-control s_website_form_input"
name="user"
required="required">
<option t-att-value=""/>
<t t-foreach="users or []"
t-as="user">
<option t-att-value="user.id">
<t t-esc="user.name"/>
</option>
</t>
</select>
</div>
</div>
<br/>
<div class="row s_col_no_resize s_col_no_bgcolor">
<label class="col-form-label col-sm-auto s_website_form_label"
for="studio1">
<span class="s_website_form_label_content">
Closed On
</span>
<span class="s_website_form_mark">
*
</span>
</label>
<div class="col-sm">
<input type="date"
name="date_closed"
required="1"
t-attf-class="form-control"/>
</div>
</div>
<div class="row s_col_no_resize s_col_no_bgcolor">
<div class="d-none col-sm">
<input name="subscription_id"
id="id"
type="number"
t-att-value="subscription.id"
t-attf-class="form-control"/>
</div>
</div>
</div>
<div class="modal-footer document_attach_modal_footer">
<button type="submit"
id="confirm_close_subscription"
t-att-id="subscription.id"
class="btn btn-primary">
<i class="fa fa-check"/>
Submit
</button>
</div>
</div>
</div>
</form>
</div>
<div class="subscription_state">
<span class="badge rounded-pill bg-info text-white float-end fs-6"
t-field="subscription.stage_id.name">
@ -144,7 +277,7 @@
</div>
</div>
</div>
<hr/>
<br/>
<t t-call="website_subscription_package.subscription_lines"/>
</div>
</div>

Loading…
Cancel
Save