From c0e690d24a27d7a782e78fb12df5962d78aa34cf Mon Sep 17 00:00:00 2001 From: braisab Date: Fri, 23 Apr 2021 19:15:23 +0200 Subject: [PATCH 01/23] [IMP]pms: Added precheckin option in portal --- pms/__manifest__.py | 1 + pms/controllers/pms_portal.py | 68 +++++++++++++++++ pms/models/pms_checkin_partner.py | 21 ++++++ pms/security/ir.model.access.csv | 1 + pms/security/pms_security.xml | 7 ++ pms/views/precheckin_portal_templates.xml | 92 +++++++++++++++++++++++ 6 files changed, 190 insertions(+) create mode 100644 pms/views/precheckin_portal_templates.xml diff --git a/pms/__manifest__.py b/pms/__manifest__.py index 894b682d3..a3b39364e 100644 --- a/pms/__manifest__.py +++ b/pms/__manifest__.py @@ -83,6 +83,7 @@ "views/traveller_report_template.xml", "wizards/wizard_split_join_swap_reservation.xml", "views/pms_automated_mails_views.xml", + "views/precheckin_portal_templates.xml", "wizards/wizard_massive_changes.xml", "wizards/wizard_advanced_filters.xml", ], diff --git a/pms/controllers/pms_portal.py b/pms/controllers/pms_portal.py index 3eeffcd74..4f854a17e 100644 --- a/pms/controllers/pms_portal.py +++ b/pms/controllers/pms_portal.py @@ -214,3 +214,71 @@ class PortalReservation(CustomerPortal): reservation_sudo, access_token, **kw ) return request.render("pms.portal_my_reservation_detail", values) + + +class PortalPrecheckin(CustomerPortal): + def _prepare_home_portal_values(self, counters): + partner = request.env.user.partner_id + values = super()._prepare_home_portal_values(counters) + Reservation = request.env["pms.reservation"].search([("partner_id", "=", partner.id)]) + if "checkin_count" in counters: + checkin_partner_count = len(Reservation.checkin_partner_ids) + values["checkin_count"] = checkin_partner_count if Reservation.check_access_rights("read", raise_exception=False) else 0 + return values + + def _precheckin_get_page_view_values(self, precheckin, access_token, **kwargs): + values = {"precheckin": precheckin, "token": access_token} + return self._get_page_view_values( + precheckin, + access_token, + values, + "my_precheckins_history", + False, + **kwargs + ) + + @http.route( + ["/my/precheckins", "/my/precheckins/page/"], + type="http", + auth="user", + website=True, + ) + def portal_my_precheckin( + self, page=1, date_begin=None, date_end=None, sortby=None, filterby=None, **kw + ): + partner = request.env.user.partner_id + values = self._prepare_portal_layout_values() + Reservation = request.env["pms.reservation"] + values["reservations"] = Reservation.search( + [ + ("partner_id", "child_of", partner.id), + ] + ) + domain = [ + ("partner_id", "child_of", partner.id), + ] + if date_begin and date_end: + domain += [ + ("create_date", ">", date_begin), + ("create_date", "<=", date_end), + ] + + reservations = Reservation.search(domain) + checkin_count = len(reservations.checkin_partner_ids) + pager = portal_pager( + url="/my/precheckins", + url_args={"date_begin": date_begin, "date_end": date_end}, + total=checkin_count, + page=page, + step=self._items_per_page, + ) + request.session["my_precheckins_history"] = reservations.ids[:100] + values.update( + { + "date": date_begin, + "page_name": "precheckins", + "pager": pager, + "default_url": "/my/precheckins", + } + ) + return request.render("pms.portal_my_precheckin", values) diff --git a/pms/models/pms_checkin_partner.py b/pms/models/pms_checkin_partner.py index 1621615ea..a46ed8e7f 100644 --- a/pms/models/pms_checkin_partner.py +++ b/pms/models/pms_checkin_partner.py @@ -459,6 +459,27 @@ class PmsCheckinPartner(models.Model): else: record.partner_incongruences = False + def _compute_access_url(self): + super(PmsCheckinPartner, self)._compute_access_url() + for checkin in self: + checkin.access_url = "/my/precheckin/%s" % (checkin.id) + + @api.model + def _checkin_mandatory_fields(self, depends=False): + # api.depends need "reservation_id.state" in the lambda function + if depends: + return ["reservation_id.state", "name"] + return ["name"] + + @api.model + def _checkin_partner_fields(self): + # api.depends need "reservation_id.state" in the lambda function + checkin_fields = self._checkin_mandatory_fields() + checkin_fields.extend(["mobile", "email"]) + return checkin_fields + + # Constraints and onchanges + @api.constrains("departure", "arrival") def _check_departure(self): for record in self: diff --git a/pms/security/ir.model.access.csv b/pms/security/ir.model.access.csv index 4897a7e30..99fe61d03 100644 --- a/pms/security/ir.model.access.csv +++ b/pms/security/ir.model.access.csv @@ -62,3 +62,4 @@ user_access_pms_folio_portal,user_access_pms_folio_portal,model_pms_folio,base.g user_access_pms_reservation_portal,user_access_pms_reservation_portal,model_pms_reservation,base.group_portal,1,0,0,0 user_access_pms_automated_mails,user_access_pms_automated_mails,model_pms_automated_mails,pms.group_pms_user,1,1,1,1 access_pms_several_partners_wizard,access_pms_several_partners_wizard,model_pms_several_partners_wizard,base.group_user,1,1,1,1 +user_access_pms_precheckin_portal,user_access_pms_precheckin_portal,model_pms_checkin_partner,base.group_portal,1,0,0,0 diff --git a/pms/security/pms_security.xml b/pms/security/pms_security.xml index c16ee839f..d00ac1e23 100644 --- a/pms/security/pms_security.xml +++ b/pms/security/pms_security.xml @@ -237,5 +237,12 @@ + + Portal Personal Pre-checkin + + [] + + + diff --git a/pms/views/precheckin_portal_templates.xml b/pms/views/precheckin_portal_templates.xml new file mode 100644 index 000000000..881ff24dc --- /dev/null +++ b/pms/views/precheckin_portal_templates.xml @@ -0,0 +1,92 @@ + + + + + + From 9175167a9c37198fd41c09818e81d593373b4c54 Mon Sep 17 00:00:00 2001 From: braisab Date: Mon, 26 Apr 2021 17:04:31 +0200 Subject: [PATCH 02/23] [WIP] precheckin detail --- pms/controllers/pms_portal.py | 36 ++++- pms/models/pms_checkin_partner.py | 1 + pms/views/precheckin_portal_templates.xml | 177 ++++++++++++++++++++-- 3 files changed, 198 insertions(+), 16 deletions(-) diff --git a/pms/controllers/pms_portal.py b/pms/controllers/pms_portal.py index 4f854a17e..afbca3a70 100644 --- a/pms/controllers/pms_portal.py +++ b/pms/controllers/pms_portal.py @@ -220,16 +220,22 @@ class PortalPrecheckin(CustomerPortal): def _prepare_home_portal_values(self, counters): partner = request.env.user.partner_id values = super()._prepare_home_portal_values(counters) - Reservation = request.env["pms.reservation"].search([("partner_id", "=", partner.id)]) + Reservation = request.env["pms.reservation"].search( + [("partner_id", "=", partner.id)] + ) if "checkin_count" in counters: checkin_partner_count = len(Reservation.checkin_partner_ids) - values["checkin_count"] = checkin_partner_count if Reservation.check_access_rights("read", raise_exception=False) else 0 + values["checkin_count"] = ( + checkin_partner_count + if Reservation.check_access_rights("read", raise_exception=False) + else 0 + ) return values - def _precheckin_get_page_view_values(self, precheckin, access_token, **kwargs): - values = {"precheckin": precheckin, "token": access_token} + def _precheckin_get_page_view_values(self, checkin_partner, access_token, **kwargs): + values = {"checkin_partner": checkin_partner, "token": access_token} return self._get_page_view_values( - precheckin, + checkin_partner, access_token, values, "my_precheckins_history", @@ -282,3 +288,23 @@ class PortalPrecheckin(CustomerPortal): } ) return request.render("pms.portal_my_precheckin", values) + + @http.route( + ["/my/precheckin/"], + type="http", + auth="user", + website=True, + ) + def portal_my_precheckin_detail(self, checkin_partner_id, access_token=None, **kw): + try: + checkin_sudo = self._document_check_access( + "pms.checkin.partner", + checkin_partner_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._precheckin_get_page_view_values(checkin_sudo, access_token, **kw) + return request.render("pms.portal_my_precheckin_detail", values) diff --git a/pms/models/pms_checkin_partner.py b/pms/models/pms_checkin_partner.py index a46ed8e7f..7603a2575 100644 --- a/pms/models/pms_checkin_partner.py +++ b/pms/models/pms_checkin_partner.py @@ -12,6 +12,7 @@ from odoo.tools.safe_eval import safe_eval class PmsCheckinPartner(models.Model): _name = "pms.checkin.partner" _description = "Partner Checkins" + _inherit = ["portal.mixin"] _rec_name = "identifier" _check_pms_properties_auto = True diff --git a/pms/views/precheckin_portal_templates.xml b/pms/views/precheckin_portal_templates.xml index 881ff24dc..a3ea82c54 100644 --- a/pms/views/precheckin_portal_templates.xml +++ b/pms/views/precheckin_portal_templates.xml @@ -1,4 +1,4 @@ - + + + From 78dd8e324d57c9cdd2acae54582e428c737b786c Mon Sep 17 00:00:00 2001 From: Sara Lago Date: Wed, 28 Apr 2021 13:26:28 +0200 Subject: [PATCH 03/23] [IMP] Add folio precheckin views --- pms/controllers/pms_portal.py | 46 ++++++++++++++++ pms/models/pms_folio.py | 30 ++++++++++ pms/models/pms_reservation.py | 4 ++ pms/views/folio_portal_templates.xml | 64 ++++++++++++++++++++++ pms/views/precheckin_portal_templates.xml | 2 - pms/views/reservation_portal_templates.xml | 5 ++ 6 files changed, 149 insertions(+), 2 deletions(-) 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 @@ + From e173ca4c983acc2bec7e93fcc804089e82f6873f Mon Sep 17 00:00:00 2001 From: braisab Date: Wed, 28 Apr 2021 19:53:45 +0200 Subject: [PATCH 04/23] [IMP]pms:Added precheckin option in folio portal --- pms/controllers/pms_portal.py | 9 +------ pms/models/pms_folio.py | 30 +--------------------- pms/views/folio_portal_templates.xml | 38 +++++++++++++++------------- 3 files changed, 22 insertions(+), 55 deletions(-) diff --git a/pms/controllers/pms_portal.py b/pms/controllers/pms_portal.py index 54ed8a2bb..e6bd85914 100644 --- a/pms/controllers/pms_portal.py +++ b/pms/controllers/pms_portal.py @@ -110,7 +110,7 @@ class PortalFolio(CustomerPortal): return request.render("pms.folio_portal_template", values) @http.route( - ["/my/folios/precheckin/"], type="http", auth="user", website=True + ["/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 @@ -123,13 +123,6 @@ class PortalFolio(CustomerPortal): ) 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) diff --git a/pms/models/pms_folio.py b/pms/models/pms_folio.py index 81d327657..0094dcb2b 100644 --- a/pms/models/pms_folio.py +++ b/pms/models/pms_folio.py @@ -770,40 +770,12 @@ class PmsFolio(models.Model): # else: # raise UserError(_("Some reservations have different currency")) - is_checkin = fields.Boolean(default=False) + # is_checkin = fields.Boolean() 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/views/folio_portal_templates.xml b/pms/views/folio_portal_templates.xml index 34fe59bdb..a2d4c20d2 100644 --- a/pms/views/folio_portal_templates.xml +++ b/pms/views/folio_portal_templates.xml @@ -64,7 +64,7 @@ Precheckin @@ -488,7 +488,8 @@ Precheckins -

There are currently no reservations in this folio for your account.

+

There are currently no reservations in this folio for your account.

@@ -499,20 +500,21 @@ - Reservation: + Reservation: + t-att-href="reservation.get_portal_url()" + t-att-title="reservation.name" + > + t-foreach="reservation.checkin_partner_ids" + t-as="checkin_partner" + > @@ -521,15 +523,15 @@
+ class="col-form-label" + for="name" + >Name: + type="text" + name="name" + t-attf-class="form-control" + t-att-value="name or checkin_partner.name" + />
From c74cb6050001295d117cc4922cdcb53490d031a6 Mon Sep 17 00:00:00 2001 From: braisab Date: Thu, 29 Apr 2021 11:27:56 +0200 Subject: [PATCH 05/23] [IMP] added precheckin option for reservation in portal --- pms/controllers/pms_portal.py | 56 +------ pms/views/folio_portal_templates.xml | 135 +++++++++++++--- pms/views/precheckin_portal_templates.xml | 127 +-------------- pms/views/reservation_portal_templates.xml | 173 ++++++++++++++++++++- 4 files changed, 295 insertions(+), 196 deletions(-) diff --git a/pms/controllers/pms_portal.py b/pms/controllers/pms_portal.py index e6bd85914..083914c49 100644 --- a/pms/controllers/pms_portal.py +++ b/pms/controllers/pms_portal.py @@ -233,12 +233,14 @@ class PortalReservation(CustomerPortal): return request.render("pms.portal_my_reservation_detail", values) @http.route( - ["/my/reservations/precheckin/"], + ["/my/reservations//precheckin"], type="http", auth="user", website=True, ) - def portal_my_reservation_precheckin(self, reservation_id, access_token=None, **kw): + def portal_my_reservation_precheckin( + self, reservation_id, access_token=None, report_type=None, download=False, **kw + ): try: reservation_sudo = self._document_check_access( "pms.reservation", @@ -247,8 +249,6 @@ class PortalReservation(CustomerPortal): ) 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 ) @@ -282,52 +282,6 @@ class PortalPrecheckin(CustomerPortal): **kwargs ) - @http.route( - ["/my/precheckins", "/my/precheckins/page/"], - type="http", - auth="user", - website=True, - ) - def portal_my_precheckin( - self, page=1, date_begin=None, date_end=None, sortby=None, filterby=None, **kw - ): - partner = request.env.user.partner_id - values = self._prepare_portal_layout_values() - Reservation = request.env["pms.reservation"] - values["reservations"] = Reservation.search( - [ - ("partner_id", "child_of", partner.id), - ] - ) - domain = [ - ("partner_id", "child_of", partner.id), - ] - if date_begin and date_end: - domain += [ - ("create_date", ">", date_begin), - ("create_date", "<=", date_end), - ] - - reservations = Reservation.search(domain) - checkin_count = len(reservations.checkin_partner_ids) - pager = portal_pager( - url="/my/precheckins", - url_args={"date_begin": date_begin, "date_end": date_end}, - total=checkin_count, - page=page, - step=self._items_per_page, - ) - request.session["my_precheckins_history"] = reservations.ids[:100] - values.update( - { - "date": date_begin, - "page_name": "precheckins", - "pager": pager, - "default_url": "/my/precheckins", - } - ) - return request.render("pms.portal_my_precheckin", values) - @http.route( ["/my/precheckin/"], type="http", @@ -343,7 +297,5 @@ class PortalPrecheckin(CustomerPortal): ) except (AccessError, MissingError): return request.redirect("/my") - # for attachment in reservation_sudo.attachment_ids: - # attachment.generate_access_token() values = self._precheckin_get_page_view_values(checkin_sudo, access_token, **kw) return request.render("pms.portal_my_precheckin_detail", values) diff --git a/pms/views/folio_portal_templates.xml b/pms/views/folio_portal_templates.xml index a2d4c20d2..13901751b 100644 --- a/pms/views/folio_portal_templates.xml +++ b/pms/views/folio_portal_templates.xml @@ -171,11 +171,6 @@ - From a200ef591c5c023b1eb2b7b17c2937d1e3102af0 Mon Sep 17 00:00:00 2001 From: Sara Lago Date: Thu, 29 Apr 2021 13:28:33 +0200 Subject: [PATCH 06/23] [IMP] Add submit button for precheckin --- pms/controllers/pms_portal.py | 10 +++++ pms/security/ir.model.access.csv | 1 + pms/views/precheckin_portal_templates.xml | 50 +++++++++++++++-------- 3 files changed, 45 insertions(+), 16 deletions(-) diff --git a/pms/controllers/pms_portal.py b/pms/controllers/pms_portal.py index 083914c49..0e16fb730 100644 --- a/pms/controllers/pms_portal.py +++ b/pms/controllers/pms_portal.py @@ -299,3 +299,13 @@ class PortalPrecheckin(CustomerPortal): return request.redirect("/my") values = self._precheckin_get_page_view_values(checkin_sudo, access_token, **kw) return request.render("pms.portal_my_precheckin_detail", values) + + @http.route(["/my/precheckin"], type="http", auth="user", website=True, csrf=False) + def portal_precheckin_submit(self, **kw): + if "id" in kw: + checkin_partner = request.env["pms.checkin.partner"].browse( + int(kw.get("id")) + ) + checkin_partner.write(kw) + + # return request.render("pms.portal_my_reservation_precheckin", kw) diff --git a/pms/security/ir.model.access.csv b/pms/security/ir.model.access.csv index 99fe61d03..0f7d27ad6 100644 --- a/pms/security/ir.model.access.csv +++ b/pms/security/ir.model.access.csv @@ -63,3 +63,4 @@ user_access_pms_reservation_portal,user_access_pms_reservation_portal,model_pms_ user_access_pms_automated_mails,user_access_pms_automated_mails,model_pms_automated_mails,pms.group_pms_user,1,1,1,1 access_pms_several_partners_wizard,access_pms_several_partners_wizard,model_pms_several_partners_wizard,base.group_user,1,1,1,1 user_access_pms_precheckin_portal,user_access_pms_precheckin_portal,model_pms_checkin_partner,base.group_portal,1,0,0,0 +user_access_res_partner_portal,user_access_res_partner_portal,model_res_partner,base.group_portal,1,1,1,1 diff --git a/pms/views/precheckin_portal_templates.xml b/pms/views/precheckin_portal_templates.xml index 402010043..bc3af4d9b 100644 --- a/pms/views/precheckin_portal_templates.xml +++ b/pms/views/precheckin_portal_templates.xml @@ -5,13 +5,25 @@ Contact Details
+
+ + +
- + @@ -19,7 +31,7 @@
@@ -43,17 +55,20 @@
- + @@ -76,11 +91,11 @@
@@ -88,17 +103,20 @@
- +
- + Date: Thu, 29 Apr 2021 20:07:25 +0200 Subject: [PATCH 07/23] [IMP] precheckin portal controller and select fields in views --- pms/controllers/pms_portal.py | 16 +- pms/views/folio_portal_templates.xml | 177 +++++++++++++-------- pms/views/precheckin_portal_templates.xml | 26 +-- pms/views/reservation_portal_templates.xml | 85 ++++++---- 4 files changed, 189 insertions(+), 115 deletions(-) diff --git a/pms/controllers/pms_portal.py b/pms/controllers/pms_portal.py index 0e16fb730..eaf06a72f 100644 --- a/pms/controllers/pms_portal.py +++ b/pms/controllers/pms_portal.py @@ -302,10 +302,12 @@ class PortalPrecheckin(CustomerPortal): @http.route(["/my/precheckin"], type="http", auth="user", website=True, csrf=False) def portal_precheckin_submit(self, **kw): - if "id" in kw: - checkin_partner = request.env["pms.checkin.partner"].browse( - int(kw.get("id")) - ) - checkin_partner.write(kw) - - # return request.render("pms.portal_my_reservation_precheckin", kw) + checkin_partner = request.env["pms.checkin.partner"].browse(int(kw.get("id"))) + checkin_partner.write(kw) + reservation = request.env["pms.reservation"].browse( + checkin_partner.reservation_id + ) + values = { + "reservation": reservation.id, + } + return request.render("pms.portal_my_reservation_precheckin", values) diff --git a/pms/views/folio_portal_templates.xml b/pms/views/folio_portal_templates.xml index 13901751b..29081f2d9 100644 --- a/pms/views/folio_portal_templates.xml +++ b/pms/views/folio_portal_templates.xml @@ -516,123 +516,170 @@ Checkin
-
-
-
- - +
+
+ + -
-
-
+ + +
+ +
+ + diff --git a/pms/views/precheckin_portal_templates.xml b/pms/views/precheckin_portal_templates.xml index bc3af4d9b..6ad62c20d 100644 --- a/pms/views/precheckin_portal_templates.xml +++ b/pms/views/precheckin_portal_templates.xml @@ -69,24 +69,28 @@ class="col-form-label" for="gender" >Gender - +
- + > + + + + + +
@@ -350,11 +350,11 @@
@@ -362,35 +362,53 @@
- + > + + + +
- +
@@ -398,11 +416,11 @@
@@ -410,7 +428,7 @@
- +
+ +
From 71bd2ef095e35d5f1ad33d1e2b42fb47970f08bf Mon Sep 17 00:00:00 2001 From: braisab Date: Fri, 30 Apr 2021 18:26:30 +0200 Subject: [PATCH 08/23] [IMP] buttons to send checkin data in reservation and folio;collapse button in views --- pms/controllers/pms_portal.py | 3 + pms/views/folio_portal_templates.xml | 209 -------- pms/views/precheckin_portal_templates.xml | 578 +++++++++++++++++++-- pms/views/reservation_portal_templates.xml | 193 ------- 4 files changed, 524 insertions(+), 459 deletions(-) diff --git a/pms/controllers/pms_portal.py b/pms/controllers/pms_portal.py index eaf06a72f..334ad86d0 100644 --- a/pms/controllers/pms_portal.py +++ b/pms/controllers/pms_portal.py @@ -124,6 +124,7 @@ class PortalFolio(CustomerPortal): except (AccessError, MissingError): return request.redirect("/my") values = self._folio_get_page_view_values(folio_sudo, access_token, **kw) + values.update({"no_breadcrumbs": True}) return request.render("pms.portal_my_folio_precheckin", values) @@ -252,6 +253,7 @@ class PortalReservation(CustomerPortal): values = self._reservation_get_page_view_values( reservation_sudo, access_token, **kw ) + values.update({"no_breadcrumbs": True}) return request.render("pms.portal_my_reservation_precheckin", values) @@ -298,6 +300,7 @@ class PortalPrecheckin(CustomerPortal): except (AccessError, MissingError): return request.redirect("/my") values = self._precheckin_get_page_view_values(checkin_sudo, access_token, **kw) + values.update({"no_breadcrumbs": True}) return request.render("pms.portal_my_precheckin_detail", values) @http.route(["/my/precheckin"], type="http", auth="user", website=True, csrf=False) diff --git a/pms/views/folio_portal_templates.xml b/pms/views/folio_portal_templates.xml index 29081f2d9..174393b3a 100644 --- a/pms/views/folio_portal_templates.xml +++ b/pms/views/folio_portal_templates.xml @@ -475,213 +475,4 @@

- diff --git a/pms/views/precheckin_portal_templates.xml b/pms/views/precheckin_portal_templates.xml index 6ad62c20d..0e6f83ca0 100644 --- a/pms/views/precheckin_portal_templates.xml +++ b/pms/views/precheckin_portal_templates.xml @@ -14,132 +14,145 @@ />
-
-
-
-
+
+ - -
-
-
-
-
- @@ -88,6 +89,7 @@ class="form-control" id="doc_type_id" name="document_type" + t-att-value="document_type or checkin_partner.document_type" > @@ -186,7 +188,7 @@ - + @@ -258,6 +260,7 @@ class="form-control" id="gender" name="gender" + t-att-value="gender or checkin_partner.gender" > - - - - - - - - - - - - - - - Checkin - - -
-
-
-
-