Fonction de verification et manipulation de status
This commit is contained in:
parent
e738473b53
commit
a0721e6a1c
@ -27,9 +27,10 @@ class GolemResourcePack(models.Model):
|
|||||||
_name = 'golem.resource.pack'
|
_name = 'golem.resource.pack'
|
||||||
_description = 'GOLEM Resource Pack Model'
|
_description = 'GOLEM Resource Pack Model'
|
||||||
|
|
||||||
name = fields.Char()#compute='_compute_name', store=True)
|
name = fields.Char(compute='_compute_name', store=True)
|
||||||
reservation_ids = fields.One2many('golem.resource.reservation', 'pack_id')
|
reservation_ids = fields.One2many('golem.resource.reservation', 'pack_id')
|
||||||
|
|
||||||
|
|
||||||
note = fields.Text(help='Notes, optional subject for the reservation, reason')
|
note = fields.Text(help='Notes, optional subject for the reservation, reason')
|
||||||
|
|
||||||
user_id = fields.Many2one('res.users', required=True, index=True, readonly=True,
|
user_id = fields.Many2one('res.users', required=True, index=True, readonly=True,
|
||||||
@ -41,9 +42,70 @@ class GolemResourcePack(models.Model):
|
|||||||
('confirmed', 'Confirmed'),
|
('confirmed', 'Confirmed'),
|
||||||
('validated', 'Validated'),
|
('validated', 'Validated'),
|
||||||
('rejected', 'Rejected')],
|
('rejected', 'Rejected')],
|
||||||
default='draft')
|
default='draft', compute="_compute_pack_state")
|
||||||
|
reservation_count = fields.Integer(compute="_compute_reservation_count",
|
||||||
|
string="Reservation count")
|
||||||
|
|
||||||
|
@api.multi
|
||||||
|
@api.depends('reservation_ids')
|
||||||
|
def _compute_reservation_count(self):
|
||||||
|
for pack in self:
|
||||||
|
pack.reservation_count = len(pack.reservation_ids)
|
||||||
|
|
||||||
@api.multi
|
@api.multi
|
||||||
def state_confirm(self):
|
def state_confirm(self):
|
||||||
|
""" pack confirm """
|
||||||
for pack in self:
|
for pack in self:
|
||||||
pack.reservation_ids.state_confirm()
|
pack.reservation_ids.state_confirm()
|
||||||
|
|
||||||
|
@api.multi
|
||||||
|
def state_draft(self):
|
||||||
|
""" pack canceled """
|
||||||
|
for pack in self:
|
||||||
|
pack.reservation_ids.state_draft()
|
||||||
|
|
||||||
|
@api.multi
|
||||||
|
def state_canceled(self):
|
||||||
|
""" pack canceled """
|
||||||
|
for pack in self:
|
||||||
|
pack.reservation_ids.state_canceled()
|
||||||
|
|
||||||
|
@api.multi
|
||||||
|
def state_validated(self):
|
||||||
|
""" pack validated """
|
||||||
|
for pack in self:
|
||||||
|
pack.reservation_ids.state_validated()
|
||||||
|
|
||||||
|
@api.multi
|
||||||
|
def state_rejected(self):
|
||||||
|
""" pack rejected """
|
||||||
|
for pack in self:
|
||||||
|
for reservation in pack.reservation_ids:
|
||||||
|
if reservation.state == "confirmed":
|
||||||
|
reservation.write({'state' :'rejected'})
|
||||||
|
|
||||||
|
|
||||||
|
@api.depends('partner_id')
|
||||||
|
def _compute_name(self):
|
||||||
|
""" Compute pack name """
|
||||||
|
for pack in self:
|
||||||
|
pack.name = u'{}/{}'.format(pack.partner_id.name,
|
||||||
|
pack.create_date)
|
||||||
|
|
||||||
|
#@api.constrains('reservation_ids.state')
|
||||||
|
@api.multi
|
||||||
|
@api.depends('reservation_ids')
|
||||||
|
def _compute_pack_state(self):
|
||||||
|
""" get pack state """
|
||||||
|
for pack in self:
|
||||||
|
reservation_states = list(map(lambda x: x.state, pack.reservation_ids))
|
||||||
|
if "rejected" in reservation_states:
|
||||||
|
pack.state = 'rejected'
|
||||||
|
elif "canceled" in reservation_states:
|
||||||
|
pack.state = 'canceled'
|
||||||
|
elif "draft" in reservation_states:
|
||||||
|
pack.state = 'draft'
|
||||||
|
elif "confirmed" in reservation_states:
|
||||||
|
pack.state = 'confirmed'
|
||||||
|
elif "validated" in reservation_states:
|
||||||
|
pack.state = 'validated'
|
||||||
|
@ -39,9 +39,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
<field name="name">GOLEM Resource Pack Tree</field>
|
<field name="name">GOLEM Resource Pack Tree</field>
|
||||||
<field name="model">golem.resource.pack</field>
|
<field name="model">golem.resource.pack</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree >
|
<tree>
|
||||||
<field name="user_id" />
|
<field name="name" />
|
||||||
<field name="partner_id" />
|
<field name="partner_id" />
|
||||||
|
<field name="state" />
|
||||||
|
<field name="reservation_count" />
|
||||||
</tree>
|
</tree>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
@ -55,7 +57,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
<header>
|
<header>
|
||||||
<button name="state_confirm" type="object" string="Confirm" class="oe_highlight"
|
<button name="state_confirm" type="object" string="Confirm" class="oe_highlight"
|
||||||
attrs="{'invisible': ['|', ('state', 'not in', 'draft'), ('id', '=', False)]}" />
|
attrs="{'invisible': ['|', ('state', 'not in', 'draft'), ('id', '=', False)]}" />
|
||||||
<!--<button name="state_canceled" type="object"
|
<button name="state_canceled" type="object"
|
||||||
string="Cancel" states="confirmed,validated" />
|
string="Cancel" states="confirmed,validated" />
|
||||||
<button name="state_draft" type="object" string="Set to draft"
|
<button name="state_draft" type="object" string="Set to draft"
|
||||||
states="canceled,confirmed,validated,rejected" />
|
states="canceled,confirmed,validated,rejected" />
|
||||||
@ -64,7 +66,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
groups="golem_base.group_golem_manager" />
|
groups="golem_base.group_golem_manager" />
|
||||||
<button name="state_rejected" type="object" string="Reject"
|
<button name="state_rejected" type="object" string="Reject"
|
||||||
states="confirmed" class="oe_highlight"
|
states="confirmed" class="oe_highlight"
|
||||||
groups="golem_base.group_golem_manager" />-->
|
groups="golem_base.group_golem_manager" />
|
||||||
<field name="state" widget="statusbar" />
|
<field name="state" widget="statusbar" />
|
||||||
</header>
|
</header>
|
||||||
<sheet>
|
<sheet>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user