|
|
@ -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/<int:contract_id>/'], type='http', auth='user', |
|
|
|
csrf=False, website=True) |
|
|
|