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'
|
||||
_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')
|
||||
|
||||
|
||||
note = fields.Text(help='Notes, optional subject for the reservation, reason')
|
||||
|
||||
user_id = fields.Many2one('res.users', required=True, index=True, readonly=True,
|
||||
@ -41,9 +42,70 @@ class GolemResourcePack(models.Model):
|
||||
('confirmed', 'Confirmed'),
|
||||
('validated', 'Validated'),
|
||||
('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
|
||||
def state_confirm(self):
|
||||
""" pack confirm """
|
||||
for pack in self:
|
||||
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="model">golem.resource.pack</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree >
|
||||
<field name="user_id" />
|
||||
<tree>
|
||||
<field name="name" />
|
||||
<field name="partner_id" />
|
||||
<field name="state" />
|
||||
<field name="reservation_count" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@ -55,7 +57,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<header>
|
||||
<button name="state_confirm" type="object" string="Confirm" class="oe_highlight"
|
||||
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" />
|
||||
<button name="state_draft" type="object" string="Set to draft"
|
||||
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" />
|
||||
<button name="state_rejected" type="object" string="Reject"
|
||||
states="confirmed" class="oe_highlight"
|
||||
groups="golem_base.group_golem_manager" />-->
|
||||
groups="golem_base.group_golem_manager" />
|
||||
<field name="state" widget="statusbar" />
|
||||
</header>
|
||||
<sheet>
|
||||
|
Loading…
Reference in New Issue
Block a user