diff --git a/pms/controllers/pms_portal.py b/pms/controllers/pms_portal.py index afbca3a70..54ed8a2bb 100644 --- a/pms/controllers/pms_portal.py +++ b/pms/controllers/pms_portal.py @@ -109,6 +109,30 @@ class PortalFolio(CustomerPortal): values = self._folio_get_page_view_values(folio_sudo, access_token, **kw) return request.render("pms.folio_portal_template", values) + @http.route( + ["/my/folios/precheckin/"], type="http", auth="user", website=True + ) + def portal_my_folio_precheckin( + self, folio_id, access_token=None, report_type=None, download=False, **kw + ): + try: + folio_sudo = self._document_check_access( + "pms.folio", + folio_id, + access_token=access_token, + ) + except (AccessError, MissingError): + return request.redirect("/my") + if report_type in ("html", "pdf", "text"): + return self._show_report( + model=folio_sudo, + report_type=report_type, + report_ref="pms.action_report_folio", + download=download, + ) + values = self._folio_get_page_view_values(folio_sudo, access_token, **kw) + return request.render("pms.portal_my_folio_precheckin", values) + class PortalReservation(CustomerPortal): def _prepare_home_portal_values(self, counters): @@ -215,6 +239,28 @@ class PortalReservation(CustomerPortal): ) return request.render("pms.portal_my_reservation_detail", values) + @http.route( + ["/my/reservations/precheckin/"], + type="http", + auth="user", + website=True, + ) + def portal_my_reservation_precheckin(self, reservation_id, access_token=None, **kw): + try: + reservation_sudo = self._document_check_access( + "pms.reservation", + reservation_id, + access_token=access_token, + ) + except (AccessError, MissingError): + return request.redirect("/my") + # for attachment in reservation_sudo.attachment_ids: + # attachment.generate_access_token() + values = self._reservation_get_page_view_values( + reservation_sudo, access_token, **kw + ) + return request.render("pms.portal_my_reservation_precheckin", values) + class PortalPrecheckin(CustomerPortal): def _prepare_home_portal_values(self, counters): diff --git a/pms/models/pms_folio.py b/pms/models/pms_folio.py index b49ecaab5..81d327657 100644 --- a/pms/models/pms_folio.py +++ b/pms/models/pms_folio.py @@ -770,10 +770,40 @@ class PmsFolio(models.Model): # else: # raise UserError(_("Some reservations have different currency")) + is_checkin = fields.Boolean(default=False) + def _compute_access_url(self): super(PmsFolio, self)._compute_access_url() + print(self.is_checkin) for folio in self: folio.access_url = "/my/folios/%s" % (folio.id) + if self.is_checkin: + folio.access_url = "/my/folios/precheckin/%s" % (folio.id) + self.is_checkin = False + + + def get_portal_url( + self, + suffix=None, + report_type=None, + download=None, + query_string=None, + anchor=None, + bol=None, + ): + self.ensure_one() + if bol: + self.is_checkin = True + + url = self.access_url + '%s?access_token=%s%s%s%s%s' % ( + suffix if suffix else '', + self._portal_ensure_token(), + '&report_type=%s' % report_type if report_type else '', + '&download=true' if download else '', + query_string if query_string else '', + '#%s' % anchor if anchor else '' + ) + return url @api.depends("state", "sale_line_ids.invoice_status") def _compute_get_invoice_status(self): diff --git a/pms/models/pms_reservation.py b/pms/models/pms_reservation.py index 8b7b15701..e9cd685b8 100644 --- a/pms/models/pms_reservation.py +++ b/pms/models/pms_reservation.py @@ -1134,6 +1134,10 @@ class PmsReservation(models.Model): record.checkout = False # date checking record.check_in_out_dates() + def _compute_precheckin_url(self): + super(PmsReservation, self)._compute_access_url() + for reservation in self: + reservation.access_url = "/my/reservations/precheckin/%s" % (reservation.id) @api.depends("pms_property_id", "folio_id") def _compute_arrival_hour(self): diff --git a/pms/views/folio_portal_templates.xml b/pms/views/folio_portal_templates.xml index 3822a8c29..34fe59bdb 100644 --- a/pms/views/folio_portal_templates.xml +++ b/pms/views/folio_portal_templates.xml @@ -63,6 +63,10 @@ > + Precheckin + diff --git a/pms/views/precheckin_portal_templates.xml b/pms/views/precheckin_portal_templates.xml index a3ea82c54..45199954e 100644 --- a/pms/views/precheckin_portal_templates.xml +++ b/pms/views/precheckin_portal_templates.xml @@ -35,8 +35,6 @@ +