[WIP] Pms: show folio details in portal

This commit is contained in:
Sara Lago
2021-03-04 12:15:37 +01:00
committed by braisab
parent 085bf3fee5
commit 51b417e4a2
3 changed files with 468 additions and 30 deletions

View File

@@ -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/<int:folio_id>'], 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/<int:folio_id>"], 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)