forked from Yaltik/golem
[REF][ADD]GOLEM Resource Option : options tree under configuration, active for options and m2m for reservation (finally), multiple small enhancements
This commit is contained in:
parent
0e250ea075
commit
8ea116675e
@ -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']
|
||||
}
|
||||
|
@ -16,7 +16,4 @@
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from . import golem_resource_option, \
|
||||
golem_resource_option_selection, \
|
||||
golem_resource, \
|
||||
golem_resource_reservation
|
||||
from . import golem_resource_option, golem_resource, golem_resource_reservation
|
||||
|
@ -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)
|
||||
|
@ -1,39 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
|
||||
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
""" 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)
|
@ -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)]})
|
||||
|
@ -1,37 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
|
||||
Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<!-- Form -->
|
||||
<record model="ir.ui.view" id="golem_resource_option_selection_form">
|
||||
<field name="name">GOLEM Resource Option Selection Form</field>
|
||||
<field name="model">golem.resource.option.selection</field>
|
||||
<field name="arch" type="xml">
|
||||
<form >
|
||||
<group>
|
||||
<field name="resource_id" invisible="1" />
|
||||
<field name="reservation_id" invisible="1"/>
|
||||
<field name="option_id"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
@ -32,5 +32,43 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Tree -->
|
||||
<record model="ir.ui.view" id="golem_resource_option_tree">
|
||||
<field name="name">GOLEM Resource Option Tree</field>
|
||||
<field name="model">golem.resource.option</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree editable="top">
|
||||
<field name="name" />
|
||||
<field name="resource_id" options="{'no_create': True}" />
|
||||
<field name="active" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Search -->
|
||||
<record model="ir.ui.view" id="golem_resource_option_search">
|
||||
<field name="name">GOLEM Resource Option Search</field>
|
||||
<field name="model">golem.resource.option</field>
|
||||
<field name="arch" type="xml">
|
||||
<search>
|
||||
<field name="name" />
|
||||
<field name="resource_id" />
|
||||
<filter name="inactive" string="Inactive"
|
||||
domain="[('active', '=', False)]" />
|
||||
<filter name="group_resource" string="By resource"
|
||||
context="{'group_by': 'resource_id'}" />
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Action -->
|
||||
<act_window id="golem_resource_option_action" name="Options"
|
||||
res_model="golem.resource.option" view_mode="tree" />
|
||||
<!-- Menu -->
|
||||
<menuitem id="golem_resource_option_menu" name="Options"
|
||||
parent="golem_resource.resource_configuration_menu"
|
||||
action="golem_resource_option_action" sequence="15" />
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
@ -29,7 +29,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<field name="partner_id" position="after" >
|
||||
<field name="selected_option_ids"
|
||||
context="{'default_reservation_id': active_id}"
|
||||
widget="many2many_tags" />
|
||||
widget="many2many_checkboxes" />
|
||||
</field>
|
||||
</field>
|
||||
|
||||
|
@ -25,7 +25,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<field name="model">golem.resource</field>
|
||||
<field name="inherit_id" ref="golem_resource.golem_resource_view_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="supervisor_id" position="after">
|
||||
<field name="product_tmpl_id" position="after">
|
||||
<field name="option_ids" widget="many2many_tags"
|
||||
context="{'default_resource_id': active_id}" />
|
||||
</field>
|
||||
|
Loading…
Reference in New Issue
Block a user