diff --git a/easy_my_coop_website_taxshelter/__init__.py b/easy_my_coop_website_taxshelter/__init__.py new file mode 100644 index 0000000..2fa08e5 --- /dev/null +++ b/easy_my_coop_website_taxshelter/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf8 -*- +import controllers diff --git a/easy_my_coop_website_taxshelter/__openerp__.py b/easy_my_coop_website_taxshelter/__openerp__.py new file mode 100644 index 0000000..180be74 --- /dev/null +++ b/easy_my_coop_website_taxshelter/__openerp__.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- + +# Copyright 2018 Rémy Taymans +# 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', + ] +} diff --git a/easy_my_coop_website_taxshelter/controllers/__init__.py b/easy_my_coop_website_taxshelter/controllers/__init__.py new file mode 100644 index 0000000..757b12a --- /dev/null +++ b/easy_my_coop_website_taxshelter/controllers/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +from . import main diff --git a/easy_my_coop_website_taxshelter/controllers/main.py b/easy_my_coop_website_taxshelter/controllers/main.py new file mode 100644 index 0000000..52a02f8 --- /dev/null +++ b/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 +# Copyright 2017-2018 Rémy Taymans +# 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/'], + 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 + ) diff --git a/easy_my_coop_website_taxshelter/security/ir.model.access.csv b/easy_my_coop_website_taxshelter/security/ir.model.access.csv new file mode 100644 index 0000000..6ea5383 --- /dev/null +++ b/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 diff --git a/easy_my_coop_website_taxshelter/security/tax_shelter_portal_security.xml b/easy_my_coop_website_taxshelter/security/tax_shelter_portal_security.xml new file mode 100644 index 0000000..25f2f54 --- /dev/null +++ b/easy_my_coop_website_taxshelter/security/tax_shelter_portal_security.xml @@ -0,0 +1,43 @@ + + + + + + + + Easy My Coop Portal Tax Shelter Certificate + + + + [('partner_id', 'in', [user.commercial_partner_id.id])] + + + + + + + Easy My Coop Portal Tax Shelter Certificate line + + + + [('tax_shelter_certificate.partner_id','in', [user.commercial_partner_id.id])] + + + + + + Easy My Coop Portal Personal Contacts + + + [('id', 'in', [user.commercial_partner_id.id])] + + + + + diff --git a/easy_my_coop_website_taxshelter/views/easy_my_coop_website_taxshelter_templates.xml b/easy_my_coop_website_taxshelter/views/easy_my_coop_website_taxshelter_templates.xml new file mode 100644 index 0000000..f20711e --- /dev/null +++ b/easy_my_coop_website_taxshelter/views/easy_my_coop_website_taxshelter_templates.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + +