From cca52a0db2b671b93f9bdd70909f7a9517a6fb21 Mon Sep 17 00:00:00 2001 From: braisab Date: Wed, 3 Mar 2021 18:11:33 +0100 Subject: [PATCH] [WIP]pms: Folio user portal --- pms/__init__.py | 1 + pms/__manifest__.py | 1 + pms/controllers/__init__.py | 1 + pms/controllers/pms_portal.py | 34 ++++++++++++++++++++ pms/security/ir.model.access.csv | 1 + pms/security/pms_security.xml | 7 +++++ pms/views/folio_portal_templates.xml | 47 ++++++++++++++++++++++++++++ 7 files changed, 92 insertions(+) create mode 100644 pms/controllers/__init__.py create mode 100644 pms/controllers/pms_portal.py create mode 100644 pms/views/folio_portal_templates.xml diff --git a/pms/__init__.py b/pms/__init__.py index 22280bdac..36176c525 100644 --- a/pms/__init__.py +++ b/pms/__init__.py @@ -2,4 +2,5 @@ from . import models from . import wizards +from . import controllers from .init_hook import post_init_hook diff --git a/pms/__manifest__.py b/pms/__manifest__.py index 5147c917d..d5aefcd77 100644 --- a/pms/__manifest__.py +++ b/pms/__manifest__.py @@ -67,6 +67,7 @@ "views/webclient_templates.xml", "views/ir_sequence_views.xml", "views/account_journal_views.xml", + "views/folio_portal_templates.xml", "wizards/wizard_reservation.xml", "wizards/wizard_massive_changes.xml", "wizards/wizard_advanced_filters.xml", diff --git a/pms/controllers/__init__.py b/pms/controllers/__init__.py new file mode 100644 index 000000000..52d463f19 --- /dev/null +++ b/pms/controllers/__init__.py @@ -0,0 +1 @@ +from . import pms_portal diff --git a/pms/controllers/pms_portal.py b/pms/controllers/pms_portal.py new file mode 100644 index 000000000..bf826d591 --- /dev/null +++ b/pms/controllers/pms_portal.py @@ -0,0 +1,34 @@ +from odoo import http +from odoo.addons.portal.controllers.portal import CustomerPortal +from odoo.exceptions import AccessError, MissingError +from odoo.http import request, route + + +class PortalFolio(CustomerPortal): + + def _prepare_home_portal_values(self, counters): + partner = request.env.user.partner_id + values = super()._prepare_home_portal_values(counters) + Folio = request.env['pms.folio'] + if 'folio_count' in counters: + values['folio_count'] = Folio.search_count([ + # ('partner_id', '=', partner.id), + ]) if Folio.check_access_rights('read', raise_exception=False) else 0 + return values + + @http.route(['/my/folios'], type='http', auth="user", website=True) + def portal_my_folios(self, page=1, date_begin=None, date_end=None, sortby=None, filterby=None, **kw): + values = self._prepare_portal_layout_values() + values['folios'] = request.env['pms.folio'].sudo().search([]) + return request.render("pms.portal_my_folio", values) + + @http.route(['/my/folios/'], type='http', auth="user", website=True) + def portal_my_folio_detail(self, folio_id, access_token=None, report_type=None, download=False, **kw): + try: + folio_sudo = self._document_check_access('pms_folio', folio_id, access_token=access_token) + except (AccessError, MissingError): + return request.redirect('/my') + if report_type in ('html', 'pdf', 'text'): + return self._show_report(model=folio_sudo, report_type=report_type, report_ref='pms.report_folio_document', download=download) + values = self._invoice_get_page_view_values(folio_sudo, access_token, **kw) + return request.render("pms.report_folio_document", values) diff --git a/pms/security/ir.model.access.csv b/pms/security/ir.model.access.csv index 2587b5b9b..c972810bf 100644 --- a/pms/security/ir.model.access.csv +++ b/pms/security/ir.model.access.csv @@ -60,3 +60,4 @@ user_access_folio_make_invoice_advance,user_access_folio_make_invoice_advance,mo user_access_pms_invoice_filter_days,user_access_pms_invoice_filter_days,model_pms_invoice_filter_days,pms.group_pms_user,1,1,1,1 user_access_pms_invoice_filter_days_items,user_access_pms_invoice_filter_days_items,model_pms_invoice_filter_days_items,pms.group_pms_user,1,1,1,1 user_access_wizard_payment_folio,user_access_wizard_payment_folio,model_wizard_payment_folio,pms.group_pms_user,1,1,1,1 +user_access_pms_folio_portal,user_access_pms_folio_portal,model_pms_folio,base.group_portal,1,0,0,0 \ No newline at end of file diff --git a/pms/security/pms_security.xml b/pms/security/pms_security.xml index d9af58fb9..a9705ff48 100644 --- a/pms/security/pms_security.xml +++ b/pms/security/pms_security.xml @@ -223,5 +223,12 @@ user.get_active_property_ids())] + + Portal Personal Folios + + [] + + + diff --git a/pms/views/folio_portal_templates.xml b/pms/views/folio_portal_templates.xml new file mode 100644 index 000000000..d34e3ba6f --- /dev/null +++ b/pms/views/folio_portal_templates.xml @@ -0,0 +1,47 @@ + + + + + +