From 4cdf22a0fdaee71946664be18de13b7dd0e4c324 Mon Sep 17 00:00:00 2001 From: Nicola Malcontenti Date: Tue, 27 Oct 2015 14:53:06 +0100 Subject: [PATCH] [ADD] Add Module report_qweb_element_page_visibility --- .../README.rst | 77 ++++++++++++++++++ .../__init__.py | 20 +++++ .../__openerp__.py | 37 +++++++++ .../static/description/icon.png | Bin 0 -> 17479 bytes .../views/layouts.xml | 48 +++++++++++ 5 files changed, 182 insertions(+) create mode 100644 report_qweb_element_page_visibility/README.rst create mode 100644 report_qweb_element_page_visibility/__init__.py create mode 100644 report_qweb_element_page_visibility/__openerp__.py create mode 100644 report_qweb_element_page_visibility/static/description/icon.png create mode 100644 report_qweb_element_page_visibility/views/layouts.xml diff --git a/report_qweb_element_page_visibility/README.rst b/report_qweb_element_page_visibility/README.rst new file mode 100644 index 00000000..4d8282da --- /dev/null +++ b/report_qweb_element_page_visibility/README.rst @@ -0,0 +1,77 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +=================================== +Report Qweb Element Page Visibility +=================================== + +This module allows you to use 4 classes in QWEB reports: + +- not-first-page: shows element in every page but first +- not-last-page: shows element in every page but last +- first-page: shows element only on first page +- last-page: shows element only on last page + +Usage +===== + +To use this module, you need to: + +In the QWEB ``ir.ui.views`` used by your report, +you can add an element with css class with any of the classes described above. +For example if you need to improve invoice report header with +invoice's number in every page but first, and sale order report header +with order's name in every page but last, add this code to external_layout_header:: + + +
+ +
+
+ +
+ +
+
+ +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/143/8.0 + +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 `here `_. + + +Credits +======= + +Contributors +------------ + +* Nicola Malcontenti +* Lorenzo Battistini +* Alessio Gerace +* Alex Comba + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +To contribute to this module, please visit http://odoo-community.org. diff --git a/report_qweb_element_page_visibility/__init__.py b/report_qweb_element_page_visibility/__init__.py new file mode 100644 index 00000000..c3e52dcb --- /dev/null +++ b/report_qweb_element_page_visibility/__init__.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +######################################################################### +# # +# Copyright (C) 2015 Agile Business Group # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU Affero General Public License as # +# published by the Free Software Foundation, either version 3 of the # +# License, or (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU Affero General Public Licensefor more details. # +# # +# You should have received a copy of the # +# GNU Affero General Public License # +# along with this program. If not, see . # +# # +######################################################################### diff --git a/report_qweb_element_page_visibility/__openerp__.py b/report_qweb_element_page_visibility/__openerp__.py new file mode 100644 index 00000000..b2316761 --- /dev/null +++ b/report_qweb_element_page_visibility/__openerp__.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +######################################################################### +# # +# Copyright (C) 2015 Agile Business Group # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU Affero General Public License as # +# published by the Free Software Foundation, either version 3 of the # +# License, or (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU Affero General Public Licensefor more details. # +# # +# You should have received a copy of the # +# GNU Affero General Public License # +# along with this program. If not, see . # +# # +######################################################################### + +{ + 'name': 'Report Qweb Element Page Visibility', + 'version': '8.0.1.0.0', + 'author': 'Agile Business Group, Odoo Community Association (OCA)', + 'category': 'Tools', + "website": "https://odoo-community.org/", + "license": "AGPL-3", + "application": False, + "installable": True, + 'data': [ + 'views/layouts.xml', + ], + 'depends': [ + 'report', + ], +} diff --git a/report_qweb_element_page_visibility/static/description/icon.png b/report_qweb_element_page_visibility/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4f946b5db1e82521a704e35b4cf8d9d28cf2d8a9 GIT binary patch literal 17479 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 + + + + + + +