mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[WIP] Pms: show folio details in portal
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user