From 8ea116675e894136c01c56afa665a28fc58afb64 Mon Sep 17 00:00:00 2001 From: Fabien BOURGEOIS Date: Thu, 29 Mar 2018 08:35:19 +0200 Subject: [PATCH] [REF][ADD]GOLEM Resource Option : options tree under configuration, active for options and m2m for reservation (finally), multiple small enhancements --- golem_resource_option/__manifest__.py | 3 +- golem_resource_option/models/__init__.py | 5 +-- .../models/golem_resource_option.py | 9 ++++- .../models/golem_resource_option_selection.py | 39 ------------------ .../models/golem_resource_reservation.py | 7 ++-- .../golem_resource_option_selection_views.xml | 37 ----------------- .../views/golem_resource_option_views.xml | 40 ++++++++++++++++++- .../golem_resource_reservation_views.xml | 2 +- .../views/golem_resource_views.xml | 2 +- 9 files changed, 54 insertions(+), 90 deletions(-) delete mode 100644 golem_resource_option/models/golem_resource_option_selection.py delete mode 100644 golem_resource_option/views/golem_resource_option_selection_views.xml diff --git a/golem_resource_option/__manifest__.py b/golem_resource_option/__manifest__.py index 179e06d..330eac5 100644 --- a/golem_resource_option/__manifest__.py +++ b/golem_resource_option/__manifest__.py @@ -31,6 +31,5 @@ 'depends': ['golem_resource'], 'data': ['views/golem_resource_views.xml', 'views/golem_resource_reservation_views.xml', - 'views/golem_resource_option_views.xml', - 'views/golem_resource_option_selection_views.xml'] + 'views/golem_resource_option_views.xml'] } diff --git a/golem_resource_option/models/__init__.py b/golem_resource_option/models/__init__.py index 5692f80..6e13137 100644 --- a/golem_resource_option/models/__init__.py +++ b/golem_resource_option/models/__init__.py @@ -16,7 +16,4 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from . import golem_resource_option, \ - golem_resource_option_selection, \ - golem_resource, \ - golem_resource_reservation +from . import golem_resource_option, golem_resource, golem_resource_reservation diff --git a/golem_resource_option/models/golem_resource_option.py b/golem_resource_option/models/golem_resource_option.py index 8b8cd3a..0790366 100644 --- a/golem_resource_option/models/golem_resource_option.py +++ b/golem_resource_option/models/golem_resource_option.py @@ -19,14 +19,19 @@ """ GOLEM Resource Option """ -from odoo import models, fields +from odoo import models, fields, _ class GolemResourceOption(models.Model): """ GOLEM Resource Option Model """ _name = 'golem.resource.option' _description = 'GOLEM Reservation Option Model' + _order = 'name asc, resource_id asc' + _sql_constraints = [('golem_resource_option_name_uniq', + 'UNIQUE (name, resource_id)', + _('An option has already this name for this resource.'))] - name = fields.Char('Option', index=True) + name = fields.Char('Option', required=True, index=True) resource_id = fields.Many2one('golem.resource', 'Resource', index=True, required=True) + active = fields.Boolean(default=True) diff --git a/golem_resource_option/models/golem_resource_option_selection.py b/golem_resource_option/models/golem_resource_option_selection.py deleted file mode 100644 index 0c5ce8e..0000000 --- a/golem_resource_option/models/golem_resource_option_selection.py +++ /dev/null @@ -1,39 +0,0 @@ -# -*- 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 Resource Option Selection""" - - -from odoo import models, fields, api, _ - - -class GolemResourceOptionSelection(models.Model): - """ GOLEM Resource Option SelectionModel """ - _name = 'golem.resource.option.selection' - _description = 'GOLEM Resource option selection Model' - _sql_constraints = [ - ('unique_selection', 'UNIQUE(resource_id, option_id, reservation_id)', - _('Not allowed, a reservation with same option and resource already exists'))] - - name = fields.Char(related='option_id.name') - option_id = fields.Many2one('golem.resource.option', 'Option', - required=True, index=True, - domain='[("resource_id", "=", resource_id)]') - resource_id = fields.Many2one(related='reservation_id.resource_id') - reservation_id = fields.Many2one('golem.resource.reservation', 'Reservation', - required=True, index=True) diff --git a/golem_resource_option/models/golem_resource_reservation.py b/golem_resource_option/models/golem_resource_reservation.py index 4cb65fa..951f649 100644 --- a/golem_resource_option/models/golem_resource_reservation.py +++ b/golem_resource_option/models/golem_resource_reservation.py @@ -27,6 +27,7 @@ class GolemResourceReservation(models.Model): _inherit = 'golem.resource.reservation' resource_option_ids = fields.One2many(related="resource_id.option_ids") - selected_option_ids = fields.One2many('golem.resource.option.selection', - 'reservation_id', - string="Selected options") + selected_option_ids = fields.Many2many( + 'golem.resource.option', string='Selected options', + index=True, readonly=True, domain='[("resource_id", "=", resource_id)]', + states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)]}) diff --git a/golem_resource_option/views/golem_resource_option_selection_views.xml b/golem_resource_option/views/golem_resource_option_selection_views.xml deleted file mode 100644 index 23a785d..0000000 --- a/golem_resource_option/views/golem_resource_option_selection_views.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - GOLEM Resource Option Selection Form - golem.resource.option.selection - -
- - - - - -
-
-
-
-
diff --git a/golem_resource_option/views/golem_resource_option_views.xml b/golem_resource_option/views/golem_resource_option_views.xml index 8f9665b..004411d 100644 --- a/golem_resource_option/views/golem_resource_option_views.xml +++ b/golem_resource_option/views/golem_resource_option_views.xml @@ -24,7 +24,7 @@ along with this program. If not, see . GOLEM Resource Option Form golem.resource.option -
+ @@ -32,5 +32,43 @@ along with this program. If not, see . + + + + GOLEM Resource Option Tree + golem.resource.option + + + + + + + + + + + + GOLEM Resource Option Search + golem.resource.option + + + + + + + + + + + + + + + diff --git a/golem_resource_option/views/golem_resource_reservation_views.xml b/golem_resource_option/views/golem_resource_reservation_views.xml index 6a648e9..d9602f5 100644 --- a/golem_resource_option/views/golem_resource_reservation_views.xml +++ b/golem_resource_option/views/golem_resource_reservation_views.xml @@ -29,7 +29,7 @@ along with this program. If not, see . + widget="many2many_checkboxes" /> diff --git a/golem_resource_option/views/golem_resource_views.xml b/golem_resource_option/views/golem_resource_views.xml index fed88da..ebfe364 100644 --- a/golem_resource_option/views/golem_resource_views.xml +++ b/golem_resource_option/views/golem_resource_views.xml @@ -25,7 +25,7 @@ along with this program. If not, see . golem.resource - +