From 228769e399649823e0843e64cfdc8e74a0dda5d9 Mon Sep 17 00:00:00 2001 From: Pablo Date: Mon, 5 Nov 2018 21:21:04 +0100 Subject: [PATCH] [WIP] Wizard Node Reservation Need to manage more than one folio in search results --- .../wizards/wizard_hotel_node_reservation.py | 27 ++++++++++++++----- .../wizards/wizard_hotel_node_reservation.xml | 9 ------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/hotel_node_master/wizards/wizard_hotel_node_reservation.py b/hotel_node_master/wizards/wizard_hotel_node_reservation.py index d4f115332..6734950f3 100644 --- a/hotel_node_master/wizards/wizard_hotel_node_reservation.py +++ b/hotel_node_master/wizards/wizard_hotel_node_reservation.py @@ -234,7 +234,6 @@ class NodeRoomTypeWizard(models.TransientModel): @api.constrains('room_qty') def _check_room_qty(self): # At least one model cache has been invalidated, signaling through the database. - wdb.set_trace() for rec in self: if (rec.room_type_availability < rec.room_qty) or (rec.room_qty > 0 and rec.nights < rec.min_stay): msg = _("At least one room type has not availability or does not meet restrictions.") + " " + \ @@ -360,18 +359,34 @@ class NodeSearchWizard(models.TransientModel): if self.checkin: domain.append(('checkin', '=', self.checkin)) - folio_id = noderpc.env['hotel.folio'].search(domain) + folio_ids = noderpc.env['hotel.folio'].search(domain) - if not folio_id: - raise UserError(_("No reservations found.")) + if not folio_ids: + raise UserError(_("No reservations found for [%s].") % domain) noderpc.logout() - # TODO Need to manage more than one folio - return self._open_wizard_action_edit(folio_id.pop()) + + if len(folio_ids) > 1: + # TODO Need to manage more than one folio + return self._open_wizard_action_select(folio_ids) + + return self._open_wizard_action_edit(folio_ids.pop()) except (odoorpc.error.RPCError, odoorpc.error.InternalError, urllib.error.URLError) as err: raise ValidationError(err) + @api.multi + def _open_wizard_action_select(self, folio_ids): + self.ensure_one() + return { + 'name': _('Hotel Reservation Wizard Select'), + 'type': 'ir.actions.act_window', + 'res_model': 'node.folio.wizard', + 'view_id': self.env.ref('hotel_node_master.hotel_node_reservation_wizard_view_tree', False).id, + 'view_type': 'tree', + 'view_mode': 'tree', + } + @api.multi def _open_wizard_action_edit(self, folio_id): self.ensure_one() diff --git a/hotel_node_master/wizards/wizard_hotel_node_reservation.xml b/hotel_node_master/wizards/wizard_hotel_node_reservation.xml index 6ea6623fd..094127437 100644 --- a/hotel_node_master/wizards/wizard_hotel_node_reservation.xml +++ b/hotel_node_master/wizards/wizard_hotel_node_reservation.xml @@ -82,15 +82,6 @@ - - - - - - - - -