From 520a6b1b08fec4cffc8310f11b118db126a430bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Taymans?= Date: Wed, 7 Mar 2018 18:17:06 +0100 Subject: [PATCH 01/56] [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. Signed-off-by: Carmen Bianca BAKKER --- easy_my_coop_website_taxshelter/__init__.py | 2 + .../__openerp__.py | 31 +++++++ .../controllers/__init__.py | 2 + .../controllers/main.py | 80 +++++++++++++++++ .../security/ir.model.access.csv | 4 + .../security/tax_shelter_portal_security.xml | 43 +++++++++ ...y_my_coop_website_taxshelter_templates.xml | 90 +++++++++++++++++++ 7 files changed, 252 insertions(+) create mode 100644 easy_my_coop_website_taxshelter/__init__.py create mode 100644 easy_my_coop_website_taxshelter/__openerp__.py create mode 100644 easy_my_coop_website_taxshelter/controllers/__init__.py create mode 100644 easy_my_coop_website_taxshelter/controllers/main.py create mode 100644 easy_my_coop_website_taxshelter/security/ir.model.access.csv create mode 100644 easy_my_coop_website_taxshelter/security/tax_shelter_portal_security.xml create mode 100644 easy_my_coop_website_taxshelter/views/easy_my_coop_website_taxshelter_templates.xml diff --git a/easy_my_coop_website_taxshelter/__init__.py b/easy_my_coop_website_taxshelter/__init__.py new file mode 100644 index 000000000..2fa08e52f --- /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 000000000..180be7487 --- /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 000000000..757b12a1f --- /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 000000000..52a02f837 --- /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 000000000..6ea5383b1 --- /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 000000000..25f2f5484 --- /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 000000000..f20711edc --- /dev/null +++ b/easy_my_coop_website_taxshelter/views/easy_my_coop_website_taxshelter_templates.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + From 78735c9714de9af6528bbf7e7afc3a4cad50a432 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Taymans?= Date: Wed, 28 Mar 2018 13:56:53 +0200 Subject: [PATCH 02/56] [FIX] emc_w_taxshelter: Access right issue Fix access right to the subscription and the share certificate. Signed-off-by: Carmen Bianca BAKKER --- .../controllers/main.py | 76 ++++++++++++++++++- .../security/ir.model.access.csv | 4 - .../security/tax_shelter_portal_security.xml | 43 ----------- ...y_my_coop_website_taxshelter_templates.xml | 22 +++++- 4 files changed, 94 insertions(+), 51 deletions(-) delete mode 100644 easy_my_coop_website_taxshelter/security/ir.model.access.csv delete mode 100644 easy_my_coop_website_taxshelter/security/tax_shelter_portal_security.xml diff --git a/easy_my_coop_website_taxshelter/controllers/main.py b/easy_my_coop_website_taxshelter/controllers/main.py index 52a02f837..5a01ded04 100644 --- a/easy_my_coop_website_taxshelter/controllers/main.py +++ b/easy_my_coop_website_taxshelter/controllers/main.py @@ -6,10 +6,11 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from openerp import fields, models, http +from werkzeug.exceptions import Forbidden, NotFound + +from openerp import http +from openerp.exceptions import AccessError, MissingError from openerp.http import request -from openerp import tools -from openerp.tools.translate import _ from openerp.addons.website_portal_v10.controllers.main import WebsiteAccount @@ -78,3 +79,72 @@ def portal_my_tax_shelter_certificate(self, page=1, date_begin=None, "easy_my_coop_website_taxshelter.portal_my_tax_shelter", values ) + + @http.route(['/my/subscription_certificate/pdf/'], + type='http', auth="user", website=True) + def get_subscription_certificate_pdf(self, oid=-1): + """Render the Subscription Certificate pdf of the given + Tax Shelter Report + """ + # Get the subscription certificate and raise an error if the user + # is not allowed to access to it or if the object is not found. + partner = request.env.user.partner_id + tax_shelter_mgr = request.env['tax.shelter.certificate'].sudo() + tax_shelter = tax_shelter_mgr.browse(oid) + try: + if tax_shelter.partner_id != partner: + raise Forbidden() + except AccessError: + raise Forbidden() + except MissingError: + raise NotFound() + # Get the pdf + report_mgr = request.env['report'].sudo() + pdf = report_mgr.get_pdf( + tax_shelter.ids, + 'easy_my_coop_taxshelter_report.tax_shelter_subscription_report' + ) + filename = "Subscription Certificate - {name} - {year}".format( + name=partner.name, + year=tax_shelter.declaration_id.fiscal_year + ) + return self._render_pdf(pdf, filename) + + @http.route(['/my/share_certificate/pdf/'], + type='http', auth="user", website=True) + def get_share_certificate_pdf(self, oid=-1): + """Render the Share Certificate pdf of the given Tax Shelter + Report + """ + # Get the share certificate and raise an error if the user + # is not allowed to access to it or if the object is not found. + partner = request.env.user.partner_id + tax_shelter_mgr = request.env['tax.shelter.certificate'].sudo() + tax_shelter = tax_shelter_mgr.browse(oid) + try: + if tax_shelter.partner_id != partner: + raise Forbidden() + except AccessError: + raise Forbidden() + except MissingError: + raise NotFound() + # Get the pdf + report_mgr = request.env['report'].sudo() + pdf = report_mgr.get_pdf( + tax_shelter.ids, + 'easy_my_coop_taxshelter_report.tax_shelter_shares_report' + ) + filename = "Share Certificate - {name} - {year}".format( + name=partner.name, + year=tax_shelter.declaration_id.fiscal_year + ) + return self._render_pdf(pdf, filename) + + def _render_pdf(self, pdf, filename): + """Render a http response for a pdf""" + pdfhttpheaders = [ + ('Content-Disposition', 'inline; filename="%s.pdf"' % filename), + ('Content-Type', 'application/pdf'), + ('Content-Length', len(pdf)) + ] + return request.make_response(pdf, headers=pdfhttpheaders) diff --git a/easy_my_coop_website_taxshelter/security/ir.model.access.csv b/easy_my_coop_website_taxshelter/security/ir.model.access.csv deleted file mode 100644 index 6ea5383b1..000000000 --- a/easy_my_coop_website_taxshelter/security/ir.model.access.csv +++ /dev/null @@ -1,4 +0,0 @@ -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 deleted file mode 100644 index 25f2f5484..000000000 --- a/easy_my_coop_website_taxshelter/security/tax_shelter_portal_security.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - 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 index f20711edc..5a069b085 100644 --- 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 @@ -65,6 +65,8 @@ Declaration Year + Subscription Certificate + Share Certificate Total Amount @@ -76,7 +78,25 @@ - + + + Subscription Certificate + + + + + Share Certificate + + + + + From c3b0c1eeaa77317e73abb619802a6b51b1c5609d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Taymans?= Date: Wed, 2 May 2018 14:42:07 +0200 Subject: [PATCH 03/56] [FIX] emc_w_taxshelter: PDF download issue Signed-off-by: Carmen Bianca BAKKER --- easy_my_coop_website_taxshelter/__openerp__.py | 1 + .../controllers/main.py | 16 ++++++++-------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/easy_my_coop_website_taxshelter/__openerp__.py b/easy_my_coop_website_taxshelter/__openerp__.py index 180be7487..4f94c8dd4 100644 --- a/easy_my_coop_website_taxshelter/__openerp__.py +++ b/easy_my_coop_website_taxshelter/__openerp__.py @@ -23,6 +23,7 @@ 'website', 'website_portal_v10', 'easy_my_coop_taxshelter_report', + 'report', ], 'data': [ diff --git a/easy_my_coop_website_taxshelter/controllers/main.py b/easy_my_coop_website_taxshelter/controllers/main.py index 5a01ded04..40031eb86 100644 --- a/easy_my_coop_website_taxshelter/controllers/main.py +++ b/easy_my_coop_website_taxshelter/controllers/main.py @@ -101,12 +101,12 @@ def get_subscription_certificate_pdf(self, oid=-1): # Get the pdf report_mgr = request.env['report'].sudo() pdf = report_mgr.get_pdf( - tax_shelter.ids, + tax_shelter, 'easy_my_coop_taxshelter_report.tax_shelter_subscription_report' ) - filename = "Subscription Certificate - {name} - {year}".format( - name=partner.name, - year=tax_shelter.declaration_id.fiscal_year + filename = "Subscription Certificate - %s - %s" % ( + partner.name, + tax_shelter.declaration_id.fiscal_year ) return self._render_pdf(pdf, filename) @@ -131,12 +131,12 @@ def get_share_certificate_pdf(self, oid=-1): # Get the pdf report_mgr = request.env['report'].sudo() pdf = report_mgr.get_pdf( - tax_shelter.ids, + tax_shelter, 'easy_my_coop_taxshelter_report.tax_shelter_shares_report' ) - filename = "Share Certificate - {name} - {year}".format( - name=partner.name, - year=tax_shelter.declaration_id.fiscal_year + filename = "Share Certificate - %s - %s" % ( + partner.name, + tax_shelter.declaration_id.fiscal_year ) return self._render_pdf(pdf, filename) From e49c58ae1e11d60e871402625f979c211915ca06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Taymans?= Date: Wed, 2 May 2018 16:18:46 +0200 Subject: [PATCH 04/56] [FIX] emc_w_taxshelter: Order of certificates Signed-off-by: Carmen Bianca BAKKER --- easy_my_coop_website_taxshelter/controllers/main.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/easy_my_coop_website_taxshelter/controllers/main.py b/easy_my_coop_website_taxshelter/controllers/main.py index 40031eb86..ed525b07b 100644 --- a/easy_my_coop_website_taxshelter/controllers/main.py +++ b/easy_my_coop_website_taxshelter/controllers/main.py @@ -68,6 +68,10 @@ def portal_my_tax_shelter_certificate(self, page=1, date_begin=None, # content according to pager and archive selected tax_shelters = tax_shelter_mgr.search( domain, limit=self._items_per_page, offset=pager['offset']) + tax_shelters = tax_shelters.sorted( + key=lambda r: r.declaration_id.fiscal_year, + reverse=True + ) values.update({ 'date': date_begin, 'tax_shelters': tax_shelters, From 6239723505a450411fcac716ca8c148a3fdf1796 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Taymans?= Date: Wed, 2 May 2018 17:35:44 +0200 Subject: [PATCH 05/56] [FIX] emc_w_taxshelter: Old link for certificates Signed-off-by: Carmen Bianca BAKKER --- .../views/easy_my_coop_website_taxshelter_templates.xml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) 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 index 5a069b085..13dbbbc85 100644 --- 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 @@ -73,10 +73,7 @@ - - - + Date: Sun, 10 Jun 2018 16:31:26 +0200 Subject: [PATCH 07/56] [FIX] emc_w_taxshelter: Correctly name certificate Name the Tax Shelter Certificate correctly. Signed-off-by: Carmen Bianca BAKKER --- .../controllers/main.py | 20 +++++++++---------- ...y_my_coop_website_taxshelter_templates.xml | 6 +++--- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/easy_my_coop_website_taxshelter/controllers/main.py b/easy_my_coop_website_taxshelter/controllers/main.py index c3a1b106a..d6b913491 100644 --- a/easy_my_coop_website_taxshelter/controllers/main.py +++ b/easy_my_coop_website_taxshelter/controllers/main.py @@ -15,12 +15,12 @@ from openerp.addons.website_portal_v10.controllers.main import WebsiteAccount -class CooperatorWebsiteAccount(WebsiteAccount): +class TaxShelterWebsiteAccount(WebsiteAccount): @http.route() def account(self): """ Add Tax Shelter Certificate to main account page """ - response = super(CooperatorWebsiteAccount, self).account() + response = super(TaxShelterWebsiteAccount, self).account() partner = request.env.user.partner_id tax_shelter_mgr = request.env['tax.shelter.certificate'] @@ -40,7 +40,7 @@ def account(self): 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 + * Tax Shelter Certificates * Shares Certifcates """ values = self._prepare_portal_layout_values() @@ -84,11 +84,11 @@ def portal_my_tax_shelter_certificate(self, page=1, date_begin=None, values ) - @http.route(['/my/subscription_certificate/pdf/'], + @http.route(['/my/taxshelter_certificate/pdf/'], type='http', auth="user", website=True) - def get_subscription_certificate_pdf(self, oid=-1): - """Render the Subscription Certificate pdf of the given - Tax Shelter Report + def get_taxshelter_certificate_pdf(self, oid=-1): + """Render the Tax Shelter Certificate pdf of the given Tax + Shelter Report """ # Get the subscription certificate and raise an error if the user # is not allowed to access to it or if the object is not found. @@ -103,12 +103,12 @@ def get_subscription_certificate_pdf(self, oid=-1): except MissingError: raise NotFound() # Get the pdf - report_mgr = request.env['report'].sudo() - pdf = report_mgr.get_pdf( + report_mgr = request.env['report'] + pdf = report_mgr.sudo().get_pdf( tax_shelter, 'easy_my_coop_taxshelter_report.tax_shelter_subscription_report' ) - filename = "Subscription Certificate - %s - %s" % ( + filename = "Tax Shelter Certificate - %s - %s" % ( partner.name, tax_shelter.declaration_id.fiscal_year ) 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 index 13dbbbc85..d594dbbf4 100644 --- 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 @@ -65,7 +65,7 @@ Declaration Year - Subscription Certificate + Tax Shelter Certificate Share Certificate Total Amount @@ -76,9 +76,9 @@ - - Subscription Certificate + Tax Shelter Certificate From d25d0741869a15ec009fc3facf2d67e7a79e0ee4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Taymans?= Date: Sun, 10 Jun 2018 16:45:29 +0200 Subject: [PATCH 08/56] [FIX] emc_w_taxshelter: Contributors Remove wrong contributors. Signed-off-by: Carmen Bianca BAKKER --- easy_my_coop_website_taxshelter/controllers/main.py | 1 - 1 file changed, 1 deletion(-) diff --git a/easy_my_coop_website_taxshelter/controllers/main.py b/easy_my_coop_website_taxshelter/controllers/main.py index d6b913491..e5ee8180f 100644 --- a/easy_my_coop_website_taxshelter/controllers/main.py +++ b/easy_my_coop_website_taxshelter/controllers/main.py @@ -1,7 +1,6 @@ # -*- 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 cb7cc1ff2c895b233083aa8770bbfeb63a74f1ca Mon Sep 17 00:00:00 2001 From: Houssine BAKKALI Date: Wed, 22 Aug 2018 12:07:49 +0200 Subject: [PATCH 09/56] [PEP8] pep8 code style refactoring Signed-off-by: Carmen Bianca BAKKER --- easy_my_coop_website_taxshelter/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easy_my_coop_website_taxshelter/__init__.py b/easy_my_coop_website_taxshelter/__init__.py index 2fa08e52f..35b969a57 100644 --- a/easy_my_coop_website_taxshelter/__init__.py +++ b/easy_my_coop_website_taxshelter/__init__.py @@ -1,2 +1,2 @@ # -*- coding: utf8 -*- -import controllers +from . import controllers From 010e2f025e00d55b2fffaa4f2094e5ec2f99355f Mon Sep 17 00:00:00 2001 From: Houssine BAKKALI Date: Tue, 26 Mar 2019 18:57:20 +0100 Subject: [PATCH 10/56] [PEP8] fix pep8 Signed-off-by: Carmen Bianca BAKKER --- easy_my_coop_website_taxshelter/controllers/main.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/easy_my_coop_website_taxshelter/controllers/main.py b/easy_my_coop_website_taxshelter/controllers/main.py index e5ee8180f..91497ab7b 100644 --- a/easy_my_coop_website_taxshelter/controllers/main.py +++ b/easy_my_coop_website_taxshelter/controllers/main.py @@ -1,7 +1,6 @@ # -*- coding: utf-8 -*- -# Copyright 2015-2016 Odoo S.A. -# Copyright 2017-2018 Rémy Taymans +# Copyright 2017-2018 Coop IT Easy SCRLfs # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). From 912ce9941597c9f2185e0e552eec22bb97e4faac Mon Sep 17 00:00:00 2001 From: Houssine BAKKALI Date: Fri, 10 May 2019 19:19:52 +0200 Subject: [PATCH 11/56] [MIG] migrate to v12 still wip Signed-off-by: Carmen Bianca BAKKER --- .../__manifest__.py | 29 +++++++++++++++++ .../__openerp__.py | 32 ------------------- 2 files changed, 29 insertions(+), 32 deletions(-) create mode 100644 easy_my_coop_website_taxshelter/__manifest__.py delete mode 100644 easy_my_coop_website_taxshelter/__openerp__.py diff --git a/easy_my_coop_website_taxshelter/__manifest__.py b/easy_my_coop_website_taxshelter/__manifest__.py new file mode 100644 index 000000000..8e699820d --- /dev/null +++ b/easy_my_coop_website_taxshelter/__manifest__.py @@ -0,0 +1,29 @@ +# Copyright 2018-Coop IT Easy SCRLfs () +# - Rémy Taymans +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + 'name': 'Easy My Coop Tax Shelter Website', + "version": "12.0.1.0.0", + 'depends': [ + 'website', + 'website_portal_v10', + 'easy_my_coop_taxshelter_report', + 'report', + ], + 'description': """ + Give access to Tax Shelter Report in the website portal. + """, + 'author': 'Coop IT Easy SCRLfs', + 'license': 'AGPL-3', + 'category': 'Cooperative Management', + "website": "www.coopiteasy.be", + + 'category': 'Cooperative Management', + + 'data': [ + 'views/easy_my_coop_website_taxshelter_templates.xml', + ], + 'installable': False, + 'application': False, +} diff --git a/easy_my_coop_website_taxshelter/__openerp__.py b/easy_my_coop_website_taxshelter/__openerp__.py deleted file mode 100644 index 4f94c8dd4..000000000 --- a/easy_my_coop_website_taxshelter/__openerp__.py +++ /dev/null @@ -1,32 +0,0 @@ -# -*- 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', - 'report', - ], - - 'data': [ - 'views/easy_my_coop_website_taxshelter_templates.xml', - ] -} From 6ed62cbc879a8c7f3306823d038660de90b979f4 Mon Sep 17 00:00:00 2001 From: Ferran Quer Guerrero Date: Mon, 10 Feb 2020 17:01:11 +0100 Subject: [PATCH 12/56] Pypi setup Signed-off-by: Carmen Bianca BAKKER --- easy_my_coop_website_taxshelter/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easy_my_coop_website_taxshelter/__manifest__.py b/easy_my_coop_website_taxshelter/__manifest__.py index 8e699820d..4842554b2 100644 --- a/easy_my_coop_website_taxshelter/__manifest__.py +++ b/easy_my_coop_website_taxshelter/__manifest__.py @@ -17,7 +17,7 @@ 'author': 'Coop IT Easy SCRLfs', 'license': 'AGPL-3', 'category': 'Cooperative Management', - "website": "www.coopiteasy.be", + "website": "https://coopiteasy.be", 'category': 'Cooperative Management', From 70f7790ea8780c237b8333b50383893dfa7146a1 Mon Sep 17 00:00:00 2001 From: "robin.keunen" Date: Fri, 10 Apr 2020 18:32:33 +0200 Subject: [PATCH 13/56] [ADD] module readmes Signed-off-by: Carmen Bianca BAKKER --- easy_my_coop_website_taxshelter/README.rst | 58 +++ .../readme/CONTRIBUTORS.rst | 2 + .../readme/DESCRIPTION.rst | 1 + .../static/description/index.html | 414 ++++++++++++++++++ 4 files changed, 475 insertions(+) create mode 100644 easy_my_coop_website_taxshelter/README.rst create mode 100644 easy_my_coop_website_taxshelter/readme/CONTRIBUTORS.rst create mode 100644 easy_my_coop_website_taxshelter/readme/DESCRIPTION.rst create mode 100644 easy_my_coop_website_taxshelter/static/description/index.html diff --git a/easy_my_coop_website_taxshelter/README.rst b/easy_my_coop_website_taxshelter/README.rst new file mode 100644 index 000000000..3e071721c --- /dev/null +++ b/easy_my_coop_website_taxshelter/README.rst @@ -0,0 +1,58 @@ +================================ +Easy My Coop Tax Shelter Website +================================ + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-coopiteasy%2Fvertical--cooperative-lightgray.png?logo=github + :target: https://github.com/coopiteasy/vertical-cooperative/tree/12.0/easy_my_coop_website_taxshelter + :alt: coopiteasy/vertical-cooperative + +|badge1| |badge2| |badge3| + +Give access to Tax Shelter Report in the website portal. + +**Table of contents** + +.. contents:: + :local: + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Coop IT Easy SCRLfs + +Contributors +~~~~~~~~~~~~ + +* Coop IT Easy SCRLfs + + +Maintainers +~~~~~~~~~~~ + +This module is part of the `coopiteasy/vertical-cooperative `_ project on GitHub. + +You are welcome to contribute. diff --git a/easy_my_coop_website_taxshelter/readme/CONTRIBUTORS.rst b/easy_my_coop_website_taxshelter/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..cd0a487b7 --- /dev/null +++ b/easy_my_coop_website_taxshelter/readme/CONTRIBUTORS.rst @@ -0,0 +1,2 @@ +* Coop IT Easy SCRLfs + diff --git a/easy_my_coop_website_taxshelter/readme/DESCRIPTION.rst b/easy_my_coop_website_taxshelter/readme/DESCRIPTION.rst new file mode 100644 index 000000000..570ae5084 --- /dev/null +++ b/easy_my_coop_website_taxshelter/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +Give access to Tax Shelter Report in the website portal. diff --git a/easy_my_coop_website_taxshelter/static/description/index.html b/easy_my_coop_website_taxshelter/static/description/index.html new file mode 100644 index 000000000..8f127cec7 --- /dev/null +++ b/easy_my_coop_website_taxshelter/static/description/index.html @@ -0,0 +1,414 @@ + + + + + + +Easy My Coop Tax Shelter Website + + + +
+

Easy My Coop Tax Shelter Website

+ + +

Beta License: AGPL-3 coopiteasy/vertical-cooperative

+

Give access to Tax Shelter Report in the website portal.

+

Table of contents

+ +
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Coop IT Easy SCRLfs
  • +
+
+
+

Contributors

+
    +
  • Coop IT Easy SCRLfs
  • +
+
+
+

Maintainers

+

This module is part of the coopiteasy/vertical-cooperative project on GitHub.

+

You are welcome to contribute.

+
+
+
+ + From 7ed8b48c11bd0d7733cbebba356d02f5183b78ef Mon Sep 17 00:00:00 2001 From: "robin.keunen" Date: Tue, 21 Apr 2020 18:22:16 +0200 Subject: [PATCH 14/56] [REF] OCA pre-commit compliance Signed-off-by: Carmen Bianca BAKKER --- .../__manifest__.py | 33 ++--- .../controllers/main.py | 122 +++++++++--------- 2 files changed, 77 insertions(+), 78 deletions(-) diff --git a/easy_my_coop_website_taxshelter/__manifest__.py b/easy_my_coop_website_taxshelter/__manifest__.py index 4842554b2..fa7b74476 100644 --- a/easy_my_coop_website_taxshelter/__manifest__.py +++ b/easy_my_coop_website_taxshelter/__manifest__.py @@ -3,27 +3,20 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { - 'name': 'Easy My Coop Tax Shelter Website', + "name": "Easy My Coop Tax Shelter Website", "version": "12.0.1.0.0", - 'depends': [ - 'website', - 'website_portal_v10', - 'easy_my_coop_taxshelter_report', - 'report', + "depends": [ + "website", + "website_portal_v10", + "easy_my_coop_taxshelter_report", + "report", ], - 'description': """ - Give access to Tax Shelter Report in the website portal. - """, - 'author': 'Coop IT Easy SCRLfs', - 'license': 'AGPL-3', - 'category': 'Cooperative Management', + "summary": "Give access to Tax Shelter Report in the website portal.", + "author": "Coop IT Easy SCRLfs", + "license": "AGPL-3", + "category": "Cooperative Management", "website": "https://coopiteasy.be", - - 'category': 'Cooperative Management', - - 'data': [ - 'views/easy_my_coop_website_taxshelter_templates.xml', - ], - 'installable': False, - 'application': False, + "data": ["views/easy_my_coop_website_taxshelter_templates.xml"], + "installable": False, + "application": False, } diff --git a/easy_my_coop_website_taxshelter/controllers/main.py b/easy_my_coop_website_taxshelter/controllers/main.py index 91497ab7b..3cf47d8fa 100644 --- a/easy_my_coop_website_taxshelter/controllers/main.py +++ b/easy_my_coop_website_taxshelter/controllers/main.py @@ -1,89 +1,93 @@ -# -*- coding: utf-8 -*- - # Copyright 2017-2018 Coop IT Easy SCRLfs # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from werkzeug.exceptions import Forbidden, NotFound - from openerp import http +from openerp.addons.website_portal_v10.controllers.main import WebsiteAccount from openerp.exceptions import AccessError, MissingError from openerp.http import request - -from openerp.addons.website_portal_v10.controllers.main import WebsiteAccount +from werkzeug.exceptions import Forbidden, NotFound class TaxShelterWebsiteAccount(WebsiteAccount): - @http.route() def account(self): """ Add Tax Shelter Certificate to main account page """ response = super(TaxShelterWebsiteAccount, self).account() partner = request.env.user.partner_id - tax_shelter_mgr = request.env['tax.shelter.certificate'] - tax_shelter_count = tax_shelter_mgr.sudo().search_count([ - ('partner_id', 'in', [partner.commercial_partner_id.id]), - ]) + tax_shelter_mgr = request.env["tax.shelter.certificate"] + tax_shelter_count = tax_shelter_mgr.sudo().search_count( + [("partner_id", "in", [partner.commercial_partner_id.id])] + ) - response.qcontext.update({ - 'tax_shelter_count': tax_shelter_count, - }) + 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): + [ + "/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: * Tax Shelter Certificates * Shares Certifcates """ values = self._prepare_portal_layout_values() partner = request.env.user.partner_id - tax_shelter_mgr = request.env['tax.shelter.certificate'] + tax_shelter_mgr = request.env["tax.shelter.certificate"] - domain = [ - ('partner_id', 'in', [partner.commercial_partner_id.id]), - ] + domain = [("partner_id", "in", [partner.commercial_partner_id.id])] if date_begin and date_end: - domain += [('create_date', '>=', date_begin), - ('create_date', '<', date_end)] + domain += [ + ("create_date", ">=", date_begin), + ("create_date", "<", date_end), + ] # count for pager tax_shelter_count = tax_shelter_mgr.sudo().search_count(domain) # pager pager = request.website.pager( url="/my/tax_shelter_certificate", - url_args={'date_begin': date_begin, 'date_end': date_end}, + url_args={"date_begin": date_begin, "date_end": date_end}, total=tax_shelter_count, page=page, - step=self._items_per_page + step=self._items_per_page, ) # content according to pager and archive selected tax_shelters = tax_shelter_mgr.sudo().search( - domain, limit=self._items_per_page, offset=pager['offset']) + domain, limit=self._items_per_page, offset=pager["offset"] + ) tax_shelters = tax_shelters.sorted( - key=lambda r: r.declaration_id.fiscal_year, - reverse=True + key=lambda r: r.declaration_id.fiscal_year, reverse=True + ) + values.update( + { + "date": date_begin, + "tax_shelters": tax_shelters, + "page_name": "invoice", + "pager": pager, + "default_url": "/my/tax_shelter_certificate", + } ) - 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 + "easy_my_coop_website_taxshelter.portal_my_tax_shelter", values ) - @http.route(['/my/taxshelter_certificate/pdf/'], - type='http', auth="user", website=True) + @http.route( + ["/my/taxshelter_certificate/pdf/"], + type="http", + auth="user", + website=True, + ) def get_taxshelter_certificate_pdf(self, oid=-1): """Render the Tax Shelter Certificate pdf of the given Tax Shelter Report @@ -91,7 +95,7 @@ def get_taxshelter_certificate_pdf(self, oid=-1): # Get the subscription certificate and raise an error if the user # is not allowed to access to it or if the object is not found. partner = request.env.user.partner_id - tax_shelter_mgr = request.env['tax.shelter.certificate'] + tax_shelter_mgr = request.env["tax.shelter.certificate"] tax_shelter = tax_shelter_mgr.sudo().browse(oid) try: if tax_shelter.partner_id != partner: @@ -101,19 +105,22 @@ def get_taxshelter_certificate_pdf(self, oid=-1): except MissingError: raise NotFound() # Get the pdf - report_mgr = request.env['report'] + report_mgr = request.env["report"] pdf = report_mgr.sudo().get_pdf( tax_shelter, - 'easy_my_coop_taxshelter_report.tax_shelter_subscription_report' + "easy_my_coop_taxshelter_report.tax_shelter_subscription_report", ) - filename = "Tax Shelter Certificate - %s - %s" % ( - partner.name, - tax_shelter.declaration_id.fiscal_year + filename = "Tax Shelter Certificate - {} - {}".format( + partner.name, tax_shelter.declaration_id.fiscal_year ) return self._render_pdf(pdf, filename) - @http.route(['/my/share_certificate/pdf/'], - type='http', auth="user", website=True) + @http.route( + ["/my/share_certificate/pdf/"], + type="http", + auth="user", + website=True, + ) def get_share_certificate_pdf(self, oid=-1): """Render the Share Certificate pdf of the given Tax Shelter Report @@ -121,7 +128,7 @@ def get_share_certificate_pdf(self, oid=-1): # Get the share certificate and raise an error if the user # is not allowed to access to it or if the object is not found. partner = request.env.user.partner_id - tax_shelter_mgr = request.env['tax.shelter.certificate'] + tax_shelter_mgr = request.env["tax.shelter.certificate"] tax_shelter = tax_shelter_mgr.sudo().browse(oid) try: if tax_shelter.partner_id != partner: @@ -131,22 +138,21 @@ def get_share_certificate_pdf(self, oid=-1): except MissingError: raise NotFound() # Get the pdf - report_mgr = request.env['report'] + report_mgr = request.env["report"] pdf = report_mgr.sudo().get_pdf( tax_shelter, - 'easy_my_coop_taxshelter_report.tax_shelter_shares_report' + "easy_my_coop_taxshelter_report.tax_shelter_shares_report", ) - filename = "Share Certificate - %s - %s" % ( - partner.name, - tax_shelter.declaration_id.fiscal_year + filename = "Share Certificate - {} - {}".format( + partner.name, tax_shelter.declaration_id.fiscal_year ) return self._render_pdf(pdf, filename) def _render_pdf(self, pdf, filename): """Render a http response for a pdf""" pdfhttpheaders = [ - ('Content-Disposition', 'inline; filename="%s.pdf"' % filename), - ('Content-Type', 'application/pdf'), - ('Content-Length', len(pdf)) + ("Content-Disposition", 'inline; filename="%s.pdf"' % filename), + ("Content-Type", "application/pdf"), + ("Content-Length", len(pdf)), ] return request.make_response(pdf, headers=pdfhttpheaders) From 2d9c307b0e99112eed45025e907db36cfa2c7170 Mon Sep 17 00:00:00 2001 From: "robin.keunen" Date: Tue, 21 Apr 2020 19:48:57 +0200 Subject: [PATCH 15/56] automatic fixes Signed-off-by: Carmen Bianca BAKKER --- easy_my_coop_website_taxshelter/__init__.py | 1 - easy_my_coop_website_taxshelter/controllers/__init__.py | 1 - easy_my_coop_website_taxshelter/readme/CONTRIBUTORS.rst | 1 - 3 files changed, 3 deletions(-) diff --git a/easy_my_coop_website_taxshelter/__init__.py b/easy_my_coop_website_taxshelter/__init__.py index 35b969a57..e046e49fb 100644 --- a/easy_my_coop_website_taxshelter/__init__.py +++ b/easy_my_coop_website_taxshelter/__init__.py @@ -1,2 +1 @@ -# -*- coding: utf8 -*- from . import controllers diff --git a/easy_my_coop_website_taxshelter/controllers/__init__.py b/easy_my_coop_website_taxshelter/controllers/__init__.py index 757b12a1f..12a7e529b 100644 --- a/easy_my_coop_website_taxshelter/controllers/__init__.py +++ b/easy_my_coop_website_taxshelter/controllers/__init__.py @@ -1,2 +1 @@ -# -*- coding: utf-8 -*- from . import main diff --git a/easy_my_coop_website_taxshelter/readme/CONTRIBUTORS.rst b/easy_my_coop_website_taxshelter/readme/CONTRIBUTORS.rst index cd0a487b7..b2844f3e1 100644 --- a/easy_my_coop_website_taxshelter/readme/CONTRIBUTORS.rst +++ b/easy_my_coop_website_taxshelter/readme/CONTRIBUTORS.rst @@ -1,2 +1 @@ * Coop IT Easy SCRLfs - From 8fdc8b786b78aa326a1c71ec191958029a96657c Mon Sep 17 00:00:00 2001 From: "robin.keunen" Date: Wed, 22 Apr 2020 14:33:12 +0200 Subject: [PATCH 16/56] [REF] pretty xml Signed-off-by: Carmen Bianca BAKKER --- ...y_my_coop_website_taxshelter_templates.xml | 179 +++++++++--------- 1 file changed, 90 insertions(+), 89 deletions(-) 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 index d594dbbf4..e79d2628a 100644 --- 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 @@ -7,101 +7,102 @@ --> - - + + - - + + - - + + + + +
+ +
+
+
+ From b02cf4e7698f9e9dfbff5e49da8786046233be75 Mon Sep 17 00:00:00 2001 From: Vincent Van Rossem Date: Tue, 16 Jun 2020 10:40:28 +0200 Subject: [PATCH 17/56] [MIG] emc_website_taxshelter: adaptation to 12.0 Signed-off-by: Carmen Bianca BAKKER --- .../__manifest__.py | 6 +- .../controllers/main.py | 140 ++++-------- ...y_my_coop_website_taxshelter_templates.xml | 211 ++++++++++-------- 3 files changed, 169 insertions(+), 188 deletions(-) diff --git a/easy_my_coop_website_taxshelter/__manifest__.py b/easy_my_coop_website_taxshelter/__manifest__.py index fa7b74476..194ab556a 100644 --- a/easy_my_coop_website_taxshelter/__manifest__.py +++ b/easy_my_coop_website_taxshelter/__manifest__.py @@ -7,9 +7,8 @@ "version": "12.0.1.0.0", "depends": [ "website", - "website_portal_v10", + "portal", "easy_my_coop_taxshelter_report", - "report", ], "summary": "Give access to Tax Shelter Report in the website portal.", "author": "Coop IT Easy SCRLfs", @@ -17,6 +16,5 @@ "category": "Cooperative Management", "website": "https://coopiteasy.be", "data": ["views/easy_my_coop_website_taxshelter_templates.xml"], - "installable": False, - "application": False, + "installable": True, } diff --git a/easy_my_coop_website_taxshelter/controllers/main.py b/easy_my_coop_website_taxshelter/controllers/main.py index 3cf47d8fa..a2a48137d 100644 --- a/easy_my_coop_website_taxshelter/controllers/main.py +++ b/easy_my_coop_website_taxshelter/controllers/main.py @@ -2,38 +2,41 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from openerp import http -from openerp.addons.website_portal_v10.controllers.main import WebsiteAccount -from openerp.exceptions import AccessError, MissingError -from openerp.http import request +from odoo import http +from odoo.addons.portal.controllers.portal import CustomerPortal, pager as portal_pager +from odoo.exceptions import AccessError, MissingError +from odoo.http import request from werkzeug.exceptions import Forbidden, NotFound -class TaxShelterWebsiteAccount(WebsiteAccount): - @http.route() - def account(self): - """ Add Tax Shelter Certificate to main account page """ - response = super(TaxShelterWebsiteAccount, self).account() - partner = request.env.user.partner_id +class PortalTaxShelter(CustomerPortal): - tax_shelter_mgr = request.env["tax.shelter.certificate"] - tax_shelter_count = tax_shelter_mgr.sudo().search_count( + def _prepare_portal_layout_values(self): + values = super()._prepare_portal_layout_values() + partner = request.env.user.partner_id + tax_shelter_count = request.env["tax.shelter.certificate"].sudo().search_count( [("partner_id", "in", [partner.commercial_partner_id.id])] ) + values['tax_shelter_count'] = tax_shelter_count + return values - response.qcontext.update({"tax_shelter_count": tax_shelter_count}) - return response + def _taxshelter_certificate_get_page_view_values(self, taxshelter_certificate, access_token, **kwargs): + values = { + 'page_name': 'taxshelter', + 'taxshelter': taxshelter_certificate, + } + return self._get_page_view_values(taxshelter_certificate, access_token, values, 'my_taxshelter_certificates_history', False, **kwargs) @http.route( [ - "/my/tax_shelter_certificate", - "/my/tax_shelter_certificate/page/", + "/my/tax_shelter_certificates", + "/my/tax_shelter_certificates/page/", ], type="http", auth="user", website=True, ) - def portal_my_tax_shelter_certificate( + def portal_my_tax_shelter_certificates( self, page=1, date_begin=None, date_end=None, **kw ): """Render a page that lits the tax shelter report: @@ -41,9 +44,8 @@ def portal_my_tax_shelter_certificate( * Shares Certifcates """ values = self._prepare_portal_layout_values() + TaxShelterCertificate = request.env["tax.shelter.certificate"] partner = request.env.user.partner_id - tax_shelter_mgr = request.env["tax.shelter.certificate"] - domain = [("partner_id", "in", [partner.commercial_partner_id.id])] if date_begin and date_end: @@ -53,106 +55,54 @@ def portal_my_tax_shelter_certificate( ] # count for pager - tax_shelter_count = tax_shelter_mgr.sudo().search_count(domain) + tax_shelter_count = TaxShelterCertificate.sudo().search_count(domain) # pager - pager = request.website.pager( - url="/my/tax_shelter_certificate", + pager = portal_pager( + url="/my/tax_shelter_certificates", 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.sudo().search( + tax_shelters = TaxShelterCertificate.sudo().search( domain, limit=self._items_per_page, offset=pager["offset"] ) tax_shelters = tax_shelters.sorted( key=lambda r: r.declaration_id.fiscal_year, reverse=True ) + request.session['my_taxshelter_certificates_history'] = tax_shelters.ids[:100] + values.update( { "date": date_begin, "tax_shelters": tax_shelters, - "page_name": "invoice", + "page_name": "taxshelter", "pager": pager, - "default_url": "/my/tax_shelter_certificate", + "default_url": "/my/tax_shelter_certificates", } ) - return request.website.render( + return request.render( "easy_my_coop_website_taxshelter.portal_my_tax_shelter", values ) - @http.route( - ["/my/taxshelter_certificate/pdf/"], - type="http", - auth="user", - website=True, - ) - def get_taxshelter_certificate_pdf(self, oid=-1): - """Render the Tax Shelter Certificate pdf of the given Tax - Shelter Report - """ - # Get the subscription certificate and raise an error if the user - # is not allowed to access to it or if the object is not found. + @http.route(['/my/tax_shelter_certificates/'], type='http', auth="public", website=True) + def portal_taxshelter_certificate(self, certificate_id, access_token=None, report_type=None, download=False, query_string=None, **kw): partner = request.env.user.partner_id - tax_shelter_mgr = request.env["tax.shelter.certificate"] - tax_shelter = tax_shelter_mgr.sudo().browse(oid) try: - if tax_shelter.partner_id != partner: + taxshelter_certificate_sudo = self._document_check_access('tax.shelter.certificate', certificate_id, access_token) + if taxshelter_certificate_sudo.partner_id != partner: raise Forbidden() - except AccessError: - raise Forbidden() - except MissingError: - raise NotFound() - # Get the pdf - report_mgr = request.env["report"] - pdf = report_mgr.sudo().get_pdf( - tax_shelter, - "easy_my_coop_taxshelter_report.tax_shelter_subscription_report", - ) - filename = "Tax Shelter Certificate - {} - {}".format( - partner.name, tax_shelter.declaration_id.fiscal_year - ) - return self._render_pdf(pdf, filename) + except (AccessError, MissingError): + return request.redirect('/my') - @http.route( - ["/my/share_certificate/pdf/"], - type="http", - auth="user", - website=True, - ) - def get_share_certificate_pdf(self, oid=-1): - """Render the Share Certificate pdf of the given Tax Shelter - Report - """ - # Get the share certificate and raise an error if the user - # is not allowed to access to it or if the object is not found. - partner = request.env.user.partner_id - tax_shelter_mgr = request.env["tax.shelter.certificate"] - tax_shelter = tax_shelter_mgr.sudo().browse(oid) - try: - if tax_shelter.partner_id != partner: - raise Forbidden() - except AccessError: - raise Forbidden() - except MissingError: - raise NotFound() - # Get the pdf - report_mgr = request.env["report"] - pdf = report_mgr.sudo().get_pdf( - tax_shelter, - "easy_my_coop_taxshelter_report.tax_shelter_shares_report", - ) - filename = "Share Certificate - {} - {}".format( - partner.name, tax_shelter.declaration_id.fiscal_year - ) - return self._render_pdf(pdf, filename) + if report_type in ('html', 'pdf', 'text') and query_string in ('subscription', 'shares'): + report_ref = "easy_my_coop_taxshelter_report.action_tax_shelter_%s_report" % (query_string) + return self._show_report( + model=taxshelter_certificate_sudo, + report_type=report_type, + report_ref=report_ref, + download=download) - def _render_pdf(self, pdf, filename): - """Render a http response for a pdf""" - pdfhttpheaders = [ - ("Content-Disposition", 'inline; filename="%s.pdf"' % filename), - ("Content-Type", "application/pdf"), - ("Content-Length", len(pdf)), - ] - return request.make_response(pdf, headers=pdfhttpheaders) + values = self._taxshelter_certificate_get_page_view_values(taxshelter_certificate_sudo, access_token, **kw) + return request.render("easy_my_coop_website_taxshelter.portal_taxshelter_page", values) 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 index e79d2628a..538adbda0 100644 --- 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 @@ -1,108 +1,141 @@ - - + -