diff --git a/golem_resource_account/__manifest__.py b/golem_resource_account/__manifest__.py index 3560e1b..50e5cfb 100644 --- a/golem_resource_account/__manifest__.py +++ b/golem_resource_account/__manifest__.py @@ -20,7 +20,7 @@ 'name': 'GOLEM resources invoicing', 'summary': 'GOLEM resources invoicing', 'description': ''' GOLEM resources invoicing ''', - 'version': '10.0.0.2.0', + 'version': '10.0.0.3.0', 'category': 'GOLEM', 'author': 'Youssef El Ouahby, Fabien Bourgeois', 'license': 'AGPL-3', diff --git a/golem_resource_account/models/golem_resource_reservation.py b/golem_resource_account/models/golem_resource_reservation.py index 1fd0bef..ed92997 100644 --- a/golem_resource_account/models/golem_resource_reservation.py +++ b/golem_resource_account/models/golem_resource_reservation.py @@ -75,8 +75,13 @@ class GolemResourceReservation(models.Model): product.categ_id.property_account_income_categ_id.id delta = fields.Datetime.from_string(reservation.date_stop) - \ fields.Datetime.from_string(reservation.date_start) - quantity = (delta.days * 24) + (delta.seconds/3600.0) - + quantity = 1.0 + # Make quantity coherent with UoM + if product.uom_id in (self.env.ref('product.product_uom_hour'), + self.env.ref('product.product_uom_unit')): + quantity = int(round((delta.days * 24.0) + (delta.seconds/3600.0))) + elif product.uom_id == self.env.ref('product.product_uom_day'): + quantity = int(round(delta.days + (delta.seconds/86400.0))) line_id = self.env['account.invoice.line'].create({ 'invoice_id': invoice_id.id, 'name': product.name, diff --git a/golem_resource_report/__init__.py b/golem_resource_report/__init__.py new file mode 100644 index 0000000..d766ae4 --- /dev/null +++ b/golem_resource_report/__init__.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- + +# Copyright 2018 Youssef El Ouahby +# Copyright 2018 Fabien Bourgeois +# +# 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 License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from . import reports, wizard diff --git a/golem_resource_report/__manifest__.py b/golem_resource_report/__manifest__.py new file mode 100644 index 0000000..8b40f73 --- /dev/null +++ b/golem_resource_report/__manifest__.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- + +# Copyright 2018 Youssef El Ouahby +# Copyright 2018 Fabien Bourgeois +# +# 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 License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +{ + 'name': 'GOLEM resources reports', + 'summary': 'GOLEM resources reports', + 'description': ''' GOLEM resources reports ''', + 'version': '10.0.0.1.0', + 'category': 'GOLEM', + 'author': 'Youssef El Ouahby, Fabien Bourgeois', + 'license': 'AGPL-3', + 'application': False, + 'installable': True, + 'depends': ['golem_resource'], + 'data': ['data/golem_resource_report_data.xml', + 'reports/golem_reservation_report.xml', + 'reports/golem_reservation_report_menu.xml', + 'wizard/golem_resource_report_wizard_views.xml', + 'views/golem_resource_report_menu.xml'] +} diff --git a/golem_resource_report/data/golem_resource_report_data.xml b/golem_resource_report/data/golem_resource_report_data.xml new file mode 100644 index 0000000..2f00f40 --- /dev/null +++ b/golem_resource_report/data/golem_resource_report_data.xml @@ -0,0 +1,40 @@ + + + + + + + European A4 Landscape + + A4 + 0 + 0 + Landscape + 10 + 23 + 7 + 7 + + 35 + 90 + + + + diff --git a/golem_resource_report/i18n/fr.po b/golem_resource_report/i18n/fr.po new file mode 100644 index 0000000..11c23b8 --- /dev/null +++ b/golem_resource_report/i18n/fr.po @@ -0,0 +1,147 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * golem_resource_report +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-05-25 14:50+0000\n" +"PO-Revision-Date: 2018-05-25 14:50+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: golem_resource_report +#: model:ir.ui.view,arch_db:golem_resource_report.golem_reservation_report +msgid "
\n" +" To" +msgstr "
\n" +" À" + +#. module: golem_resource_report +#: model:ir.ui.view,arch_db:golem_resource_report.golem_reservation_report +msgid "From Date: " +msgstr "De : " + +#. module: golem_resource_report +#: model:ir.ui.view,arch_db:golem_resource_report.golem_reservation_report +msgid "To Date:" +msgstr "À :" + +#. module: golem_resource_report +#: model:ir.ui.view,arch_db:golem_resource_report.golem_resource_report_wizard_view_form +msgid "Close" +msgstr "Fermer" + +#. module: golem_resource_report +#: model:ir.model.fields,field_description:golem_resource_report.field_golem_resource_report_wizard_create_uid +msgid "Created by" +msgstr "Créé par" + +#. module: golem_resource_report +#: model:ir.model.fields,field_description:golem_resource_report.field_golem_resource_report_wizard_create_date +msgid "Created on" +msgstr "Créé le" + +#. module: golem_resource_report +#: model:ir.model.fields,field_description:golem_resource_report.field_golem_resource_report_wizard_date_start +msgid "Date start" +msgstr "Date de début" + +#. module: golem_resource_report +#: model:ir.model.fields,field_description:golem_resource_report.field_golem_resource_report_wizard_date_stop +msgid "Date stop" +msgstr "Date de fin" + +#. module: golem_resource_report +#: model:ir.model.fields,field_description:golem_resource_report.field_golem_resource_report_wizard_display_name +#: model:ir.model.fields,field_description:golem_resource_report.field_report_golem_resource_report_golem_reservation_report_display_name +msgid "Display Name" +msgstr "Nom affiché" + +#. module: golem_resource_report +#: model:ir.ui.view,arch_db:golem_resource_report.golem_reservation_report +msgid "For" +msgstr "Pour" + +#. module: golem_resource_report +#: model:ir.ui.view,arch_db:golem_resource_report.golem_reservation_report +msgid "From" +msgstr "De" + +#. module: golem_resource_report +#: model:ir.model,name:golem_resource_report.model_report_golem_resource_report_golem_reservation_report +msgid "Golem Reservation Report" +msgstr "Golem Reservation Report" + +#. module: golem_resource_report +#: model:ir.model.fields,field_description:golem_resource_report.field_golem_resource_report_wizard_id +#: model:ir.model.fields,field_description:golem_resource_report.field_report_golem_resource_report_golem_reservation_report_id +msgid "ID" +msgstr "ID" + +#. module: golem_resource_report +#: model:ir.model.fields,field_description:golem_resource_report.field_golem_resource_report_wizard___last_update +#: model:ir.model.fields,field_description:golem_resource_report.field_report_golem_resource_report_golem_reservation_report___last_update +msgid "Last Modified on" +msgstr "Dernière Modification le" + +#. module: golem_resource_report +#: model:ir.model.fields,field_description:golem_resource_report.field_golem_resource_report_wizard_write_uid +msgid "Last Updated by" +msgstr "Dernière mise à jour par" + +#. module: golem_resource_report +#: model:ir.model.fields,field_description:golem_resource_report.field_golem_resource_report_wizard_write_date +msgid "Last Updated on" +msgstr "Dernière mise à jour le" + +#. module: golem_resource_report +#: model:ir.ui.view,arch_db:golem_resource_report.golem_resource_report_wizard_view_form +msgid "Print Report" +msgstr "Imprimer le rapport" + +#. module: golem_resource_report +#: model:ir.ui.menu,name:golem_resource_report.resource_report_menu +msgid "Report" +msgstr "Rapport" + +#. module: golem_resource_report +#: model:ir.actions.report.xml,name:golem_resource_report.action_report_report_admission_analysis +msgid "Reservations Report" +msgstr "Export réservations" + +#. module: golem_resource_report +#: model:ir.ui.view,arch_db:golem_resource_report.golem_resource_report_wizard_view_form +msgid "Resource Report" +msgstr "Ressource" + +#. module: golem_resource_report +#: model:ir.model.fields,field_description:golem_resource_report.field_golem_resource_report_wizard_resource_ids +msgid "Resource ids" +msgstr "Resources" + +#. module: golem_resource_report +#: model:ir.actions.act_window,name:golem_resource_report.golem_resource_report_action +msgid "Resources Reports" +msgstr "Ressources" + +#. module: golem_resource_report +#: code:addons/golem_resource_report/wizard/golem_resource_report_wizard.py:38 +#, python-format +msgid "Stop Date cannot be set before Start Date." +msgstr "La date de fin ne peut pas être antérieure à celle de début." + +#. module: golem_resource_report +#: model:ir.model,name:golem_resource_report.model_golem_resource_report_wizard +msgid "golem.resource.report.wizard" +msgstr "golem.resource.report.wizard" + +#. module: golem_resource_report +#: model:ir.ui.view,arch_db:golem_resource_report.golem_reservation_report +msgid "reservations
" +msgstr "réservations
" diff --git a/golem_resource_report/i18n/golem_resource_report.pot b/golem_resource_report/i18n/golem_resource_report.pot new file mode 100644 index 0000000..2d7477b --- /dev/null +++ b/golem_resource_report/i18n/golem_resource_report.pot @@ -0,0 +1,147 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * golem_resource_report +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-05-25 14:50+0000\n" +"PO-Revision-Date: 2018-05-25 14:50+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: golem_resource_report +#: model:ir.ui.view,arch_db:golem_resource_report.golem_reservation_report +msgid "
\n" +" To" +msgstr "" + +#. module: golem_resource_report +#: model:ir.ui.view,arch_db:golem_resource_report.golem_reservation_report +msgid "From Date: " +msgstr "" + +#. module: golem_resource_report +#: model:ir.ui.view,arch_db:golem_resource_report.golem_reservation_report +msgid "To Date:" +msgstr "" + +#. module: golem_resource_report +#: model:ir.ui.view,arch_db:golem_resource_report.golem_resource_report_wizard_view_form +msgid "Close" +msgstr "" + +#. module: golem_resource_report +#: model:ir.model.fields,field_description:golem_resource_report.field_golem_resource_report_wizard_create_uid +msgid "Created by" +msgstr "" + +#. module: golem_resource_report +#: model:ir.model.fields,field_description:golem_resource_report.field_golem_resource_report_wizard_create_date +msgid "Created on" +msgstr "" + +#. module: golem_resource_report +#: model:ir.model.fields,field_description:golem_resource_report.field_golem_resource_report_wizard_date_start +msgid "Date start" +msgstr "" + +#. module: golem_resource_report +#: model:ir.model.fields,field_description:golem_resource_report.field_golem_resource_report_wizard_date_stop +msgid "Date stop" +msgstr "" + +#. module: golem_resource_report +#: model:ir.model.fields,field_description:golem_resource_report.field_golem_resource_report_wizard_display_name +#: model:ir.model.fields,field_description:golem_resource_report.field_report_golem_resource_report_golem_reservation_report_display_name +msgid "Display Name" +msgstr "" + +#. module: golem_resource_report +#: model:ir.ui.view,arch_db:golem_resource_report.golem_reservation_report +msgid "For" +msgstr "" + +#. module: golem_resource_report +#: model:ir.ui.view,arch_db:golem_resource_report.golem_reservation_report +msgid "From" +msgstr "" + +#. module: golem_resource_report +#: model:ir.model,name:golem_resource_report.model_report_golem_resource_report_golem_reservation_report +msgid "Golem Reservation Report" +msgstr "" + +#. module: golem_resource_report +#: model:ir.model.fields,field_description:golem_resource_report.field_golem_resource_report_wizard_id +#: model:ir.model.fields,field_description:golem_resource_report.field_report_golem_resource_report_golem_reservation_report_id +msgid "ID" +msgstr "" + +#. module: golem_resource_report +#: model:ir.model.fields,field_description:golem_resource_report.field_golem_resource_report_wizard___last_update +#: model:ir.model.fields,field_description:golem_resource_report.field_report_golem_resource_report_golem_reservation_report___last_update +msgid "Last Modified on" +msgstr "" + +#. module: golem_resource_report +#: model:ir.model.fields,field_description:golem_resource_report.field_golem_resource_report_wizard_write_uid +msgid "Last Updated by" +msgstr "" + +#. module: golem_resource_report +#: model:ir.model.fields,field_description:golem_resource_report.field_golem_resource_report_wizard_write_date +msgid "Last Updated on" +msgstr "" + +#. module: golem_resource_report +#: model:ir.ui.view,arch_db:golem_resource_report.golem_resource_report_wizard_view_form +msgid "Print Report" +msgstr "" + +#. module: golem_resource_report +#: model:ir.ui.menu,name:golem_resource_report.resource_report_menu +msgid "Report" +msgstr "" + +#. module: golem_resource_report +#: model:ir.actions.report.xml,name:golem_resource_report.action_report_report_admission_analysis +msgid "Reservations Report" +msgstr "" + +#. module: golem_resource_report +#: model:ir.ui.view,arch_db:golem_resource_report.golem_resource_report_wizard_view_form +msgid "Resource Report" +msgstr "" + +#. module: golem_resource_report +#: model:ir.model.fields,field_description:golem_resource_report.field_golem_resource_report_wizard_resource_ids +msgid "Resource ids" +msgstr "" + +#. module: golem_resource_report +#: model:ir.actions.act_window,name:golem_resource_report.golem_resource_report_action +msgid "Resources Reports" +msgstr "" + +#. module: golem_resource_report +#: code:addons/golem_resource_report/wizard/golem_resource_report_wizard.py:38 +#, python-format +msgid "Stop Date cannot be set before Start Date." +msgstr "" + +#. module: golem_resource_report +#: model:ir.model,name:golem_resource_report.model_golem_resource_report_wizard +msgid "golem.resource.report.wizard" +msgstr "" + +#. module: golem_resource_report +#: model:ir.ui.view,arch_db:golem_resource_report.golem_reservation_report +msgid "reservations
" +msgstr "" + diff --git a/golem_resource_report/reports/__init__.py b/golem_resource_report/reports/__init__.py new file mode 100644 index 0000000..1c0b8fe --- /dev/null +++ b/golem_resource_report/reports/__init__.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- + +# Copyright 2018 Youssef El Ouahby +# Copyright 2018 Fabien Bourgeois +# +# 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 License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from . import golem_reservation_report diff --git a/golem_resource_report/reports/golem_reservation_report.py b/golem_resource_report/reports/golem_reservation_report.py new file mode 100644 index 0000000..8540a86 --- /dev/null +++ b/golem_resource_report/reports/golem_reservation_report.py @@ -0,0 +1,108 @@ +# -*- coding: utf-8 -*- + +# Copyright 2018 Youssef El Ouahby +# Copyright 2018 Fabien Bourgeois +# +# 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 License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +""" Golem Reservation Report """ + +import time +from random import randint +from odoo import models, fields, api + +# FIXME: usage of Odoo fields will be needed for i18n awareness + +def get_client_color(partner_number): + """ Get Client Color """ + colors = ['#FFFF5B', '#81EC54', '#47C8C8', '#FB5A66', '#E8E750', + '#CF4ACF', '#9655D2', '#FFA15B', '#5F68D5', '#60E652'] + color = "#000000" + if partner_number < 10: + color = colors[partner_number] + else: + red = randint(128, 255) + green = randint(128, 255) + blue = randint(128, 255) + color = "#" +hex(red)[2:]+hex(green)[2:]+hex(blue)[2:] + return color + + +class GolemResevationReport(models.AbstractModel): + """ Golem Reservation Report """ + _name = 'report.golem_resource_report.golem_reservation_report' + _description = 'Golem Reservation Report' + + def get_data(self, data): + """ Get Resevation Data """ + domain = [('state', '=', 'validated'), + ('date_start', '>', data['date_start']), + ('date_stop', '<', data['date_stop']), + ('resource_id', 'in', data['resource_ids'])] + reservations = self.env['golem.resource.reservation'].search(domain, order='date_start') + total_reservations = len(reservations) + resources = {r.resource_id.id: r.resource_id.name for r in reservations} + days = sorted(list(set(reservations.mapped('day_start')))) + + partner_ids = reservations.mapped('partner_id.id') + partner_colors = {} + partner_number = 0 + for partner_id in partner_ids: + partner_colors[str(partner_id)] = get_client_color(partner_number) + partner_number += 1 + + res = {} # List of multi-levels : group by resource, then, day_start + for reservation in reservations: + resource = reservation.resource_id.id + day_start = reservation.day_start + if not resource in res: + res[resource] = {} + if not day_start in res[resource]: + res[resource][day_start] = [] + line = { + 'name': reservation.name, + 'resource_name': reservation.resource_id.name, + 'partner': reservation.partner_id.name, + 'date_start': reservation.date_start, + 'date_stop': reservation.date_stop, + 'day_start': reservation.day_start, + 'day_stop': fields.Datetime.from_string(reservation.date_stop).strftime('%Y-%m-%d'), + 'bgcolor': partner_colors[str(reservation.partner_id.id)], + 'note': reservation.note + } + res[resource][day_start].append(line) + return res, total_reservations, resources, days + + @api.model + def render_html(self, docids, data=None): + """ Render HTML """ + model = self.env.context.get('active_model') + docs = self.env[model].browse(self.env.context.get('active_id')) + _data, total_reservations, resources, days = self.get_data(data) + docargs = { + 'doc_ids': self.ids, + 'doc_model': model, + 'docs': docs, + 'company': self.env.ref('base.main_company'), + 'time': time, + 'data': data, + 'date_start': '%s 00:00:00' % data['date_start'], + 'date_stop': '%s 23:59:59' % data['date_stop'], + 'total_reservations': total_reservations, + 'datas': _data, + 'resources': resources, + 'days': days + } + return self.env['report'] \ + .render('golem_resource_report.golem_reservation_report', docargs) diff --git a/golem_resource_report/reports/golem_reservation_report.xml b/golem_resource_report/reports/golem_reservation_report.xml new file mode 100644 index 0000000..1b09f3d --- /dev/null +++ b/golem_resource_report/reports/golem_reservation_report.xml @@ -0,0 +1,80 @@ + + + + + + + + + diff --git a/golem_resource_report/reports/golem_reservation_report_menu.xml b/golem_resource_report/reports/golem_reservation_report_menu.xml new file mode 100644 index 0000000..5ef6c1d --- /dev/null +++ b/golem_resource_report/reports/golem_reservation_report_menu.xml @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/golem_resource_report/views/golem_resource_report_menu.xml b/golem_resource_report/views/golem_resource_report_menu.xml new file mode 100644 index 0000000..a75dc9a --- /dev/null +++ b/golem_resource_report/views/golem_resource_report_menu.xml @@ -0,0 +1,38 @@ + + + + + + + + Resources Reports + golem.resource.report.wizard + form + form + + {} + new + + + + + + + diff --git a/golem_resource_report/wizard/__init__.py b/golem_resource_report/wizard/__init__.py new file mode 100644 index 0000000..5ae7a4c --- /dev/null +++ b/golem_resource_report/wizard/__init__.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- + +# Copyright 2018 Youssef El Ouahby +# Copyright 2018 Fabien Bourgeois +# +# 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 License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from . import golem_resource_report_wizard diff --git a/golem_resource_report/wizard/golem_resource_report_wizard.py b/golem_resource_report/wizard/golem_resource_report_wizard.py new file mode 100644 index 0000000..338118f --- /dev/null +++ b/golem_resource_report/wizard/golem_resource_report_wizard.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- + +# Copyright 2018 Youssef El Ouahby +# Copyright 2018 Fabien Bourgeois +# +# 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 License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +""" GOLEM Resources Report Wizard """ + +from odoo import models, fields, api, _ +from odoo.exceptions import ValidationError + +class GolemResourceReportWizard(models.TransientModel): + """GOLEM Report Wizard : Choose report parameters """ + _name = "golem.resource.report.wizard" + + resource_ids = fields.Many2many('golem.resource', required=True) + date_start = fields.Date(required=True) + date_stop = fields.Date(required=True) + + @api.multi + def print_resource_report(self): + """ Print Report """ + self.ensure_one() + record = self[0] + if record.date_start > record.date_stop: + raise ValidationError(_('Stop Date cannot be set before Start Date.')) + else: + data = self.read( + ['resource_ids', 'date_start', 'date_stop'])[0] + return self.env['report'].get_action( + self, 'golem_resource_report.golem_reservation_report', + data=data) diff --git a/golem_resource_report/wizard/golem_resource_report_wizard_views.xml b/golem_resource_report/wizard/golem_resource_report_wizard_views.xml new file mode 100644 index 0000000..af23086 --- /dev/null +++ b/golem_resource_report/wizard/golem_resource_report_wizard_views.xml @@ -0,0 +1,51 @@ + + + + + + + + GOLEM resource Report Wizard Form + golem.resource.report.wizard + +
+ + + + + + + + + + + + + + +
+
+
+ +
+