Files
contract/website_portal_contract/controllers/main.py
Brett Wood bc4d08b9b1 [10.0][ADD] Add website_portal_contract (#62)
* [ADD] Add website_portal_contract

* [ADD] website_portal_contract: Add url test, usage video.

* [FIX] website_portal_contract: Fix controller test.

* [FIX] website_portal_contract: Change all tests to HttpCase.
2017-10-09 08:21:24 -07:00

75 lines
2.0 KiB
Python

# -*- coding: utf-8 -*-
# Copyright 2017 LasLabs Inc.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import http
from odoo.http import request
from odoo.addons.website_portal_sale.controllers.main import website_account
class WebsiteAccount(website_account):
@http.route()
def account(self, **kw):
response = super(WebsiteAccount, self).account(**kw)
contracts = request.env['account.analytic.account']._search_contracts()
response.qcontext.update({
'contract_count': len(contracts),
})
return response
class WebsiteContract(http.Controller):
@http.route(
['/my/contracts'],
type='http',
auth='user',
website=True,
)
def portal_my_contracts(self):
account_mod = request.env['account.analytic.account']
values = {
'user': request.env.user,
'contracts': account_mod._search_contracts(),
}
return request.render(
'website_portal_contract.portal_my_contracts',
values,
)
@http.route(
['/contract/<model("account.analytic.account"):contract>'],
type='http',
auth='user',
website=True
)
def portal_contract(self, contract):
action = request.env.ref(
'contract.action_account_analytic_overdue_all'
)
values = {
'user': request.env.user,
'contract': contract,
'action': action.id,
}
return request.render(
'website_portal_contract.website_contract',
values,
)
@http.route(
["/contract/template/"
"<model('account.analytic.contract.template'):contract>"],
type='http',
auth='user',
website=True,
)
def template_view(self, contract, **kwargs):
values = {'template': contract}
return request.render(
'website_portal_contract.website_contract_template',
values,
)