diff --git a/pms/controllers/pms_portal.py b/pms/controllers/pms_portal.py index bf826d591..eeb15fee3 100644 --- a/pms/controllers/pms_portal.py +++ b/pms/controllers/pms_portal.py @@ -1,34 +1,68 @@ from odoo import http -from odoo.addons.portal.controllers.portal import CustomerPortal from odoo.exceptions import AccessError, MissingError -from odoo.http import request, route +from odoo.http import request + +from odoo.addons.portal.controllers.portal import CustomerPortal 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 + Folio = request.env["pms.folio"] + if "folio_count" in counters: + values["folio_count"] = ( + Folio.search_count( + [ + ("partner_id", "child_of", 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): + def _folio_get_page_view_values(self, folio, access_token, **kwargs): + values = {"folio": folio, "token": access_token} + return self._get_page_view_values( + folio, access_token, values, "my_folios_history", False, **kwargs + ) + + @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 + ): + partner = request.env.user.partner_id values = self._prepare_portal_layout_values() - values['folios'] = request.env['pms.folio'].sudo().search([]) + values["folios"] = ( + request.env["pms.folio"] + .sudo() + .search( + [ + ("partner_id", "child_of", partner.id), + ] + ) + ) 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): + @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) + folio_sudo = self._document_check_access( + "pms.folio", + folio_id, + access_token="9a6f4fc8-59f6-4f50-ae45-5af6492e7aba", + ) 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) + return request.redirect("/my") + if report_type in ("html", "pdf", "text"): + return self._show_report( + model=folio_sudo, + report_type=report_type, + report_ref="action_report_folio", + download=download, + ) + values = self._folio_get_page_view_values(folio_sudo, access_token, **kw) + return request.render("pms.folio_portal_template", values) diff --git a/pms/security/pms_security.xml b/pms/security/pms_security.xml index a9705ff48..b1d35cae1 100644 --- a/pms/security/pms_security.xml +++ b/pms/security/pms_security.xml @@ -225,10 +225,10 @@ Portal Personal Folios - + [] - - + + diff --git a/pms/views/folio_portal_templates.xml b/pms/views/folio_portal_templates.xml index d34e3ba6f..435e4b1b9 100644 --- a/pms/views/folio_portal_templates.xml +++ b/pms/views/folio_portal_templates.xml @@ -1,10 +1,16 @@ -