Browse Source

[ADD] emc_w_taxshelter: Tax Shelter Certificate

Add the list of tax shelter certificate in the website portal.

There is some issue with the access right. This must be fixed later.
pull/1/head
Rémy Taymans 6 years ago
parent
commit
0d3f9ef462
  1. 2
      easy_my_coop_website_taxshelter/__init__.py
  2. 31
      easy_my_coop_website_taxshelter/__openerp__.py
  3. 2
      easy_my_coop_website_taxshelter/controllers/__init__.py
  4. 80
      easy_my_coop_website_taxshelter/controllers/main.py
  5. 4
      easy_my_coop_website_taxshelter/security/ir.model.access.csv
  6. 43
      easy_my_coop_website_taxshelter/security/tax_shelter_portal_security.xml
  7. 90
      easy_my_coop_website_taxshelter/views/easy_my_coop_website_taxshelter_templates.xml

2
easy_my_coop_website_taxshelter/__init__.py

@ -0,0 +1,2 @@
# -*- coding: utf8 -*-
import controllers

31
easy_my_coop_website_taxshelter/__openerp__.py

@ -0,0 +1,31 @@
# -*- coding: utf-8 -*-
# Copyright 2018 Rémy Taymans <remytaymans@gmail.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
'name': 'Easy My Coop Tax Shelter Website',
'summary': """
Give access to Tax Shelter Report in the website portal.
""",
'description': """
""",
'author': 'Rémy Taymans',
'license': 'AGPL-3',
'version': '9.0.1.0',
'website': "https://github.com/houssine78/vertical-cooperative",
'category': 'Website, Cooperative Management',
'depends': [
'website',
'website_portal_v10',
'easy_my_coop_taxshelter_report',
],
'data': [
'views/easy_my_coop_website_taxshelter_templates.xml',
]
}

2
easy_my_coop_website_taxshelter/controllers/__init__.py

@ -0,0 +1,2 @@
# -*- coding: utf-8 -*-
from . import main

80
easy_my_coop_website_taxshelter/controllers/main.py

@ -0,0 +1,80 @@
# -*- coding: utf-8 -*-
# Copyright 2015-2016 Odoo S.A.
# Copyright 2016 Jairo Llopis <jairo.llopis@tecnativa.com>
# Copyright 2017-2018 Rémy Taymans <remytaymans@gmail.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp import fields, models, http
from openerp.http import request
from openerp import tools
from openerp.tools.translate import _
from openerp.addons.website_portal_v10.controllers.main import WebsiteAccount
class CooperatorWebsiteAccount(WebsiteAccount):
@http.route()
def account(self):
""" Add Tax Shelter Certificate to main account page """
response = super(CooperatorWebsiteAccount, self).account()
partner = request.env.user.partner_id
tax_shelter_mgr = request.env['tax.shelter.certificate'].sudo()
tax_shelter_count = tax_shelter_mgr.search_count([
('partner_id', 'in', [partner.commercial_partner_id.id]),
])
response.qcontext.update({
'tax_shelter_count': tax_shelter_count,
})
return response
@http.route(
['/my/tax_shelter_certificate',
'/my/tax_shelter_certificate/page/<int:page>'],
type='http', auth="user", website=True)
def portal_my_tax_shelter_certificate(self, page=1, date_begin=None,
date_end=None, **kw):
"""Render a page that lits the tax shelter report:
* Subscriptions Certificates
* Shares Certifcates
"""
values = self._prepare_portal_layout_values()
partner = request.env.user.partner_id
tax_shelter_mgr = request.env['tax.shelter.certificate'].sudo()
domain = [
('partner_id', 'in', [partner.commercial_partner_id.id]),
]
if date_begin and date_end:
domain += [('create_date', '>=', date_begin),
('create_date', '<', date_end)]
# count for pager
tax_shelter_count = tax_shelter_mgr.search_count(domain)
# pager
pager = request.website.pager(
url="/my/tax_shelter_certificate",
url_args={'date_begin': date_begin, 'date_end': date_end},
total=tax_shelter_count,
page=page,
step=self._items_per_page
)
# content according to pager and archive selected
tax_shelters = tax_shelter_mgr.search(
domain, limit=self._items_per_page, offset=pager['offset'])
values.update({
'date': date_begin,
'tax_shelters': tax_shelters,
'page_name': 'invoice',
'pager': pager,
'default_url': '/my/tax_shelter_certificate',
})
return request.website.render(
"easy_my_coop_website_taxshelter.portal_my_tax_shelter",
values
)

4
easy_my_coop_website_taxshelter/security/ir.model.access.csv

@ -0,0 +1,4 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_tax_shelter_declaration,tax.shelter.declaration.portal,easy_my_coop_taxshelter_report.model_tax_shelter_declaration,base.group_portal,1,0,0,0
access_tax_shelter_certificate,tax.shelter.certificate.portal,easy_my_coop_taxshelter_report.model_tax_shelter_certificate,base.group_portal,1,0,0,0
access_tax_shelter_certificate_lines,certificate.line.portal,easy_my_coop_taxshelter_report.model_certificate_line,base.group_portal,1,0,0,0

43
easy_my_coop_website_taxshelter/security/tax_shelter_portal_security.xml

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2015-2016 Odoo S.A.
Copyright 2018 Rémy Taymans <remytaymans@gmail.com>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-->
<openerp>
<data noupdate="0">
<!-- Tax Shelter Access Rules -->
<record id="emc_portal_tax_shelter_certificate_rule" model="ir.rule">
<field name="name">
Easy My Coop Portal Tax Shelter Certificate
</field>
<field name="model_id"
ref="easy_my_coop_taxshelter_report.model_tax_shelter_certificate"/>
<field name="domain_force">
[('partner_id', 'in', [user.commercial_partner_id.id])]
</field>
<field name="groups" eval="[(6, 0, [ref('base.group_portal')])]"/>
</record>
<record id="emc_portal_tax_shelter_certificate_line_rule" model="ir.rule">
<field name="name">
Easy My Coop Portal Tax Shelter Certificate line
</field>
<field name="model_id"
ref="easy_my_coop_taxshelter_report.model_certificate_line"/>
<field name="domain_force">
[('tax_shelter_certificate.partner_id','in', [user.commercial_partner_id.id])]
</field>
<field name="groups" eval="[(6, 0, [ref('base.group_portal')])]"/>
</record>
<record id="emc_portal_personal_contact" model="ir.rule">
<field name="name">Easy My Coop Portal Personal Contacts</field>
<field name="model_id" ref="base.model_res_partner"/>
<field name="domain_force">
[('id', 'in', [user.commercial_partner_id.id])]
</field>
<field name="groups" eval="[(6, 0, [ref('base.group_portal')])]"/>
</record>
</data>
</openerp>

90
easy_my_coop_website_taxshelter/views/easy_my_coop_website_taxshelter_templates.xml

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2015-2016 Odoo S.A.
Copyright 2016 Jairo Llopis <jairo.llopis@tecnativa.com>
Copyright 2018 Rémy Taymans <remytaymans@gmail.com>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-->
<openerp>
<!-- Tax Shelter Certificate in the menu -->
<template
id="portal_my_home_menu_tax_shelter"
name="Portal Menu: Easy My Coop Tax Shelter Certificate"
inherit_id="website_portal_v10.portal_layout"
priority="25">
<xpath expr="//ul[contains(@class,'o_portal_submenu')]"
position="inside">
<li>
<a href="/my/tax_shelter_certificate">
Tax Shelter Certificate
</a>
</li>
</xpath>
</template>
<!-- Tax Shelter Certificate on the main page -->
<template
id="portal_my_home_tax_shelter"
name="Portal My Home : Easy My Coop Tax Shelter Certificate"
inherit_id="website_portal_v10.portal_my_home"
priority="25">
<xpath expr="//div[contains(@class,'o_my_home_content')]"
position="inside">
<h3 class="page-header">
<a href="/my/tax_shelter_certificate">
Your Tax Shelter Certificate
<small class="ml8">
<t t-if="tax_shelter_count">
<span class='badge'>
<t t-esc="tax_shelter_count"/>
</span>
</t>
<t t-if="not tax_shelter_count">
There are currently no tax shelter certificate for your
account.
</t>
</small>
</a>
</h3>
</xpath>
</template>
<!-- Tax Shelter Certificate page -->
<template id="portal_my_tax_shelter" name="My Tax Shelter">
<t t-call="website_portal_v10.portal_layout">
<h3 class="page-header">Your Tax Shelter Certificate</h3>
<t t-if="not tax_shelters">
<p>
There are currently no tax shelter certificate for your
account.
</p>
</t>
<t t-if="tax_shelters">
<table class="table table-hover o_my_status_table">
<thead>
<tr class="active">
<th>Declaration Year</th>
<th>Total Amount</th>
</tr>
</thead>
<tbody>
<tr t-foreach="tax_shelters" t-as="tax_shelter">
<td>
<a t-att-href="'/report/pdf/easy_my_coop_taxshelter_report.tax_shelter_subscription_report/%s' %
tax_shelter.id">
<t t-esc="tax_shelter.declaration_id.name"/>
</a>
</td>
<td><span t-field="tax_shelter.total_amount"/></td>
</tr>
</tbody>
</table>
<div t-if="pager" class="o_portal_pager text-center">
<t t-call="website.pager"/>
</div>
</t>
</t>
</template>
</openerp>
Loading…
Cancel
Save