diff --git a/hotel_calendar/models/hotel_calendar_management.py b/hotel_calendar/models/hotel_calendar_management.py index c15504142..0c1bf9d5b 100644 --- a/hotel_calendar/models/hotel_calendar_management.py +++ b/hotel_calendar/models/hotel_calendar_management.py @@ -46,7 +46,7 @@ class HotelCalendarManagement(models.TransientModel): } return vals - @api.multi + @api.model def save_changes(self, pricelist_id, restriction_id, pricelist, restrictions, availability): room_type_obj = self.env['hotel.room.type'] @@ -133,7 +133,7 @@ class HotelCalendarManagement(models.TransientModel): room.name, room.get_capacity(), room.list_price, - room.max_real_rooms, + room.total_rooms_count, )) return json_data @@ -201,7 +201,7 @@ class HotelCalendarManagement(models.TransientModel): json_data[room_type.id].append({ 'id': False, 'date': cur_date_str, - 'avail': room_type.max_real_rooms, + 'avail': room_type.total_rooms_count, 'no_ota': False, }) return json_data diff --git a/hotel_calendar/models/inherited_hotel_reservation.py b/hotel_calendar/models/inherited_hotel_reservation.py index 545e5f28b..edb4e6811 100644 --- a/hotel_calendar/models/inherited_hotel_reservation.py +++ b/hotel_calendar/models/inherited_hotel_reservation.py @@ -304,9 +304,9 @@ class HotelReservation(models.Model): raise ValidationError(_("Invalid swap parameters")) max_from_persons = max( - from_reservs.mapped(lambda x: x.adults + x.children)) + from_reservs.mapped(lambda x: x.adults)) max_to_persons = max( - to_reservs.mapped(lambda x: x.adults + x.children)) + to_reservs.mapped(lambda x: x.adults)) from_room = from_reservs[0].room_id to_room = to_reservs[0].room_id diff --git a/hotel_calendar/static/src/js/views/calendar/hotel_calendar_controller.js b/hotel_calendar/static/src/js/views/calendar/hotel_calendar_controller.js index d187817dc..547d1d1b1 100644 --- a/hotel_calendar/static/src/js/views/calendar/hotel_calendar_controller.js +++ b/hotel_calendar/static/src/js/views/calendar/hotel_calendar_controller.js @@ -19,7 +19,8 @@ var PMSCalendarController = AbstractController.extend({ onUpdateButtonsCounter: '_onUpdateButtonsCounter', onReloadCalendar: '_onReloadCalendar', onUpdateReservations: '_onUpdateReservations', - onSwapReservations: '_onSwapReservations' + onSwapReservations: '_onSwapReservations', + onSaveChanges: '_onSaveChanges' }), init: function (parent, model, renderer, params) { @@ -47,6 +48,14 @@ var PMSCalendarController = AbstractController.extend({ //-------------------------------------------------------------------------- // Handlers //-------------------------------------------------------------------------- + _onSaveChanges: function (ev) { + var self = this; + this.model.save_changes(_.toArray(ev.data)).then(function(results){ + $(self.renderer._hcalendar.btnSaveChanges).removeClass('need-save'); + self.renderer.$el.find('.hcal-input-changed').removeClass('hcal-input-changed'); + }); + }, + _onUpdateReservations: function (ev) { var self = this; return this.model.update_records(ev.data.ids, ev.data.values).then(function(result){ diff --git a/hotel_calendar/static/src/js/views/calendar/hotel_calendar_model.js b/hotel_calendar/static/src/js/views/calendar/hotel_calendar_model.js index acf83ac48..909b6faed 100644 --- a/hotel_calendar/static/src/js/views/calendar/hotel_calendar_model.js +++ b/hotel_calendar/static/src/js/views/calendar/hotel_calendar_model.js @@ -115,5 +115,14 @@ return AbstractModel.extend({ context: Session.user_context, }); }, + + save_changes: function(params) { + return this._rpc({ + model: 'hotel.calendar.management', + method: 'save_changes', + args: params, + context: Session.user_context, + }) + } }); }); diff --git a/hotel_calendar/static/src/js/views/calendar/hotel_calendar_renderer.js b/hotel_calendar/static/src/js/views/calendar/hotel_calendar_renderer.js index 0475296d1..65aa2741e 100644 --- a/hotel_calendar/static/src/js/views/calendar/hotel_calendar_renderer.js +++ b/hotel_calendar/static/src/js/views/calendar/hotel_calendar_renderer.js @@ -135,16 +135,8 @@ var HotelCalendarView = AbstractRenderer.extend({ var self = this; this._hcalendar.addEventListener('hcalOnSavePricelist', function(ev){ var pricelist = self._hcalendar.getPricelist(); - var oparams = [false, self._hcalendar._pricelist_id, false, pricelist, {}, {}]; - self._rpc({ - model: 'hotel.calendar.management', - method: 'save_changes', - args: oparams, - context: Session.user_context, - }).then(function(results){ - $(self._hcalendar.btnSaveChanges).removeClass('need-save'); - $('.hcal-input-changed').removeClass('hcal-input-changed'); - }); + var oparams = [self._hcalendar._pricelist_id, false, pricelist, {}, {}]; + self.trigger_up('onSaveChanges', oparams); }); this._hcalendar.addEventListener('hcalOnMouseEnterReservation', function(ev){ if (ev.detail.reservationObj) { diff --git a/hotel_calendar/static/src/js/views/calendar_management/hotel_calendar_management_controller.js b/hotel_calendar/static/src/js/views/calendar_management/hotel_calendar_management_controller.js index 9788baa00..5e26006fd 100644 --- a/hotel_calendar/static/src/js/views/calendar_management/hotel_calendar_management_controller.js +++ b/hotel_calendar/static/src/js/views/calendar_management/hotel_calendar_management_controller.js @@ -56,8 +56,9 @@ var MPMSCalendarController = AbstractController.extend({ // Handlers //-------------------------------------------------------------------------- _onSaveChanges: function (ev) { - this.model.save_changes(ev.data).then(function(results){ - this.renderer.resetSaveState(); + var self = this; + this.model.save_changes(_.toArray(ev.data)).then(function(results){ + self.renderer.resetSaveState(); }); }, @@ -91,7 +92,6 @@ var MPMSCalendarController = AbstractController.extend({ }) self.renderer.create_calendar(rooms); - console.log(results); self.renderer.setCalendarData(results['prices'], results['restrictions'], results['availability'], results['count_reservations']); }); }, @@ -99,11 +99,12 @@ var MPMSCalendarController = AbstractController.extend({ _onLoadCalendarSettings: function (ev) { var self = this; this.model.get_hcalendar_settings().then(function(results){ + console.log(results); self.renderer.setHCalendarSettings(results); }); }, - _onBusNotification: function () { + _onBusNotification: function (notifications) { if (!this.renderer._hcalendar) { return; } @@ -117,7 +118,7 @@ var MPMSCalendarController = AbstractController.extend({ var dt = HotelCalendarManagement.toMoment(day); var availability = {}; availability[room_type] = [{ - 'date': dt.format(ODOO_DATE_MOMENT_FORMAT), + 'date': dt.format(HotelConstants.ODOO_DATE_MOMENT_FORMAT), 'avail': avail[room_type][day][0], 'no_ota': avail[room_type][day][1], 'id': avail[room_type][day][2] @@ -134,7 +135,7 @@ var MPMSCalendarController = AbstractController.extend({ for (var day of days) { var dt = HotelCalendarManagement.toMoment(day); pr[price['room']].push({ - 'date': dt.format(ODOO_DATE_MOMENT_FORMAT), + 'date': dt.format(HotelConstants.ODOO_DATE_MOMENT_FORMAT), 'price': price['days'][day], 'id': price['id'] }); @@ -150,7 +151,7 @@ var MPMSCalendarController = AbstractController.extend({ var dt = HotelCalendarManagement.toMoment(day); var rest = {}; rest[room_type] = [{ - 'date': dt.format(ODOO_DATE_MOMENT_FORMAT), + 'date': dt.format(HotelConstants.ODOO_DATE_MOMENT_FORMAT), 'min_stay': restriction[room_type][day][0], 'min_stay_arrival': restriction[room_type][day][1], 'max_stay': restriction[room_type][day][2], diff --git a/hotel_calendar/static/src/js/views/calendar_management/hotel_calendar_management_model.js b/hotel_calendar/static/src/js/views/calendar_management/hotel_calendar_management_model.js index f57a57700..03629c039 100644 --- a/hotel_calendar/static/src/js/views/calendar_management/hotel_calendar_management_model.js +++ b/hotel_calendar/static/src/js/views/calendar_management/hotel_calendar_management_model.js @@ -21,6 +21,7 @@ return AbstractModel.extend({ }, save_changes: function (params) { + console.log(params); return this._rpc({ model: this.modelName, method: 'save_changes', @@ -59,9 +60,8 @@ return AbstractModel.extend({ get_hcalendar_settings: function () { return this._rpc({ model: this.modelName, - method: 'search_read', + method: 'get_hcalendar_settings', args: [false], - context: Session.user_context, }); }, }); diff --git a/hotel_calendar/static/src/js/views/calendar_management/hotel_calendar_management_renderer.js b/hotel_calendar/static/src/js/views/calendar_management/hotel_calendar_management_renderer.js index 686f362f7..0cf0ac731 100644 --- a/hotel_calendar/static/src/js/views/calendar_management/hotel_calendar_management_renderer.js +++ b/hotel_calendar/static/src/js/views/calendar_management/hotel_calendar_management_renderer.js @@ -81,7 +81,11 @@ var HotelCalendarManagementView = AbstractRenderer.extend({ var availability = this._hcalendar.getAvailability(true); var params = this.generate_params(); - var oparams = [false, params['prices'], params['restrictions'], pricelist, restrictions, availability]; + console.log("---- PARAMS"); + console.log(params); + var oparams = [params['prices'], params['restrictions'], pricelist, restrictions, availability]; + console.log("---- OPARAMS"); + console.log(oparams); this.trigger_up('onSaveChanges', oparams); }, diff --git a/hotel_calendar/static/src/lib/hcalendar/css/hcalendar_management.css b/hotel_calendar/static/src/lib/hcalendar/css/hcalendar_management.css index 5ff23e8a0..083903071 100644 --- a/hotel_calendar/static/src/lib/hcalendar/css/hcalendar_management.css +++ b/hotel_calendar/static/src/lib/hcalendar/css/hcalendar_management.css @@ -90,19 +90,19 @@ visibility: hidden; } -.table-vrooms { - float: left; +.table-room_types { + flex: 1 1 auto; margin-top: 1.6em; } #hcal_management_widget { overflow: auto; - height: 84vh; + display:flex; } #hcal-management-container-dd { overflow: auto; - position: relative; + flex: 1 1 auto; } #btn_save_changes, #btn_massive_changes {