From 0caadf07e7ed2601ef41fb3687a7ab566f00fd01 Mon Sep 17 00:00:00 2001 From: RisvanaCybro Date: Thu, 18 Jul 2024 17:27:24 +0530 Subject: [PATCH] July 18: [FIX] Bug Fixed 'sales_contract_and_recurring_invoices' --- .../sales_contract_and_recurring_invoices.py | 32 +++++++++++++++---- .../models/subscription_contracts.py | 4 +++ .../security/ir.model.access.csv | 5 +++ .../subscription_contracts_templates.xml | 2 +- 4 files changed, 35 insertions(+), 8 deletions(-) diff --git a/sales_contract_and_recurring_invoices/controllers/sales_contract_and_recurring_invoices.py b/sales_contract_and_recurring_invoices/controllers/sales_contract_and_recurring_invoices.py index 31216a1b5..c0cd947c1 100644 --- a/sales_contract_and_recurring_invoices/controllers/sales_contract_and_recurring_invoices.py +++ b/sales_contract_and_recurring_invoices/controllers/sales_contract_and_recurring_invoices.py @@ -26,29 +26,47 @@ from odoo.addons.portal.controllers.portal import CustomerPortal class PortalAccount(CustomerPortal): """ Super customer portal and get count of contracts """ + def _prepare_home_portal_values(self, counters): """ Prepares values for the home portal """ values = super()._prepare_home_portal_values(counters) - partner = request.env.user.partner_id.id - contract_count = request.env['subscription.contracts'].search([ - ('partner_id', '=', partner)]) + + user = request.env.user + contract_model = request.env['subscription.contracts'] + is_admin = user.has_group('base.group_system') + domain = [] + if not is_admin: + partner_id = user.partner_id.id + domain = [('partner_id', '=', partner_id)] + + contract_count = contract_model.search(domain) values['contract_count'] = len(contract_count) return values class ContractsController(http.Controller): """ Sale contract in customer portal controller """ + @http.route(['/my/contracts'], type='http', auth='user', csrf=False, website=True) def portal_my_quotes(self): """ Displays Contracts in portal """ - partner = request.env.user.partner_id.id + user = request.env.user + partner_id = user.partner_id.id + is_admin = user.has_group('base.group_system') + + domain = [] + if not is_admin: + domain = [('partner_id', '=', partner_id)] + + records = request.env['subscription.contracts'].search(domain) + values = { - 'records': request.env['subscription.contracts'].search( - [('partner_id', '=', partner)]), + 'records': records, } return request.render( - 'sales_contract_and_recurring_invoices.tmp_contract_details', values) + 'sales_contract_and_recurring_invoices.tmp_contract_details', + values) @http.route(['/contracts//'], type='http', auth='user', csrf=False, website=True) diff --git a/sales_contract_and_recurring_invoices/models/subscription_contracts.py b/sales_contract_and_recurring_invoices/models/subscription_contracts.py index dc62e4394..5e46d1123 100644 --- a/sales_contract_and_recurring_invoices/models/subscription_contracts.py +++ b/sales_contract_and_recurring_invoices/models/subscription_contracts.py @@ -238,11 +238,15 @@ class SubscriptionContracts(models.Model): @api.depends('current_reference') def _compute_sale_order_lines(self): """ Get sale order line of contract lines """ + print("sale order line compute",self.current_reference) self.current_reference = self.id + product_id = self.contract_line_ids.mapped('product_id') sale_order_line = self.env['sale.order.line'].search([ ('order_partner_id', '=', self.partner_id.id) ]) + print(sale_order_line) + print("products",product_id) for rec in sale_order_line: if self.date_start <= datetime.datetime.date( rec.create_date) <= self.date_end: diff --git a/sales_contract_and_recurring_invoices/security/ir.model.access.csv b/sales_contract_and_recurring_invoices/security/ir.model.access.csv index 6a6ebdd80..2cb24e7e7 100644 --- a/sales_contract_and_recurring_invoices/security/ir.model.access.csv +++ b/sales_contract_and_recurring_invoices/security/ir.model.access.csv @@ -1,3 +1,8 @@ id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink access_subscription_contracts_user,access.subscription.contracts.user,model_subscription_contracts,base.group_user,1,1,1,1 +access_subscription_contracts_portal,access.subscription.contracts.portal,model_subscription_contracts,base.group_portal,1,1,0,0 access_subscription_contracts_line_user,access.subscription.contracts.user.line,model_subscription_contracts_line,base.group_user,1,1,1,1 +access_subscription_contracts_line_portal,access.subscription.contracts.line.portal,model_subscription_contracts_line,base.group_portal,1,1,0,0 +access_product_product_portal,access.product.product.portal,product.model_product_product,base.group_portal,1,1,0,0 +access_product_template_portal,access.product.template.portal,product.model_product_template,base.group_portal,1,1,0,0 +access_uom_uom_portal,access.uom.uom.portal,product.model_uom_uom,base.group_portal,1,1,0,0 diff --git a/sales_contract_and_recurring_invoices/views/subscription_contracts_templates.xml b/sales_contract_and_recurring_invoices/views/subscription_contracts_templates.xml index 7dfe68b20..2f9b5bb87 100644 --- a/sales_contract_and_recurring_invoices/views/subscription_contracts_templates.xml +++ b/sales_contract_and_recurring_invoices/views/subscription_contracts_templates.xml @@ -76,7 +76,7 @@