[WIP]pms: Folio user portal

This commit is contained in:
braisab
2021-03-03 18:11:33 +01:00
parent 865f075d1f
commit cca52a0db2
7 changed files with 92 additions and 0 deletions

View File

@@ -2,4 +2,5 @@
from . import models
from . import wizards
from . import controllers
from .init_hook import post_init_hook

View File

@@ -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",

View File

@@ -0,0 +1 @@
from . import pms_portal

View File

@@ -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/<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)
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)

View File

@@ -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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
60 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
61 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
62 user_access_wizard_payment_folio user_access_wizard_payment_folio model_wizard_payment_folio pms.group_pms_user 1 1 1 1
63 user_access_pms_folio_portal user_access_pms_folio_portal model_pms_folio base.group_portal 1 0 0 0

View File

@@ -223,5 +223,12 @@
user.get_active_property_ids())]
</field>
</record>
<record id="pms_folio_rule_portal" model="ir.rule">
<field name="name">Portal Personal Folios</field>
<field name="model_id" ref="model_pms_folio"/>
<field name="domain_force">[]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
<field name="perm_read" eval="True"/>
</record>
</data>
</odoo>

View File

@@ -0,0 +1,47 @@
<odoo>
<template id="portal_my_folios" name="Folios" inherit_id="portal.portal_my_home" customize_show="True" priority="30">
<xpath expr="//div[hasclass('o_portal_docs')]" position="inside">
<t t-call="portal.portal_docs_entry">
<t t-set="title">Folios</t>
<t t-set="url" t-value="'/my/folios'"/>
<t t-set="placeholder_count" t-value="'folio_count'"/>
</t>
</xpath>
</template>
<template id="portal_my_folio" name="My Folios">
<t t-call="portal.portal_layout">
<t t-set="breadcrumbs_searchbar" t-value="True"/>
<t t-call="portal.portal_searchbar">
<t t-set="title">Folios</t>
</t>
<t t-if="not folios">
<p>There are currently no folios for your account.</p>
</t>
<t t-if="folios" t-call="portal.portal_table">
<thead>
<tr class="active">
<th>Folio #</th>
<th>Order Date</th>
<th class="text-right">Total</th>
</tr>
</thead>
<tbody>
<t t-foreach="folios" t-as="folio">
<tr>
<td>
<a t-att-href="folio.get_portal_url()" t-att-title="folio.name">
<t t-esc="folio.name"/>
</a>
</td>
<td><span t-field="folio.date_order"/></td>
<td class="text-right"><span t-field="folio.amount_total"/></td>
</tr>
</t>
</tbody>
</t>
</t>
</template>
</odoo>