From 5cd69c498c1c38ce9b2eaf32c1f0d5711bc0a0aa Mon Sep 17 00:00:00 2001 From: braisab Date: Fri, 10 Dec 2021 21:06:02 +0100 Subject: [PATCH] [REF] changed field is_mail_send to to_send_mail --- pms/migrations/14.0.2.22.1/post-migrate.py | 2 ++ pms/models/mail_compose_message.py | 15 +------------ pms/models/pms_folio.py | 25 ++++++++-------------- pms/models/pms_reservation.py | 14 ++++++------ pms/tests/test_pms_reservation.py | 4 ++-- pms/views/pms_reservation_views.xml | 8 +++---- 6 files changed, 25 insertions(+), 43 deletions(-) create mode 100644 pms/migrations/14.0.2.22.1/post-migrate.py diff --git a/pms/migrations/14.0.2.22.1/post-migrate.py b/pms/migrations/14.0.2.22.1/post-migrate.py new file mode 100644 index 000000000..73a658c1e --- /dev/null +++ b/pms/migrations/14.0.2.22.1/post-migrate.py @@ -0,0 +1,2 @@ +def migrate(cr, version): + cr.execute("UPDATE pms_reservation SET to_send_mail = NOT is_mail_send") diff --git a/pms/models/mail_compose_message.py b/pms/models/mail_compose_message.py index 0e74c8757..3f2070e04 100644 --- a/pms/models/mail_compose_message.py +++ b/pms/models/mail_compose_message.py @@ -21,19 +21,6 @@ class MailComposeMessage(models.TransientModel): return res def send_mail(self, auto_commit=False): - # if ( - # self._context.get("default_model") == "pms.folio" - # and self._context.get("default_res_id") - # and self._context.get("mark_so_as_sent") - # ): - # # TODO: WorkFlow Mails - # folio = self.env["pms.folio"].browse([self._context["default_res_id"]]) - # if folio: - # cmds = [ - # (1, lid, {"to_send": False}) for lid in folio.reservation_ids.ids - # ] - # if any(cmds): - # folio.reservation_ids = cmds res = super(MailComposeMessage, self).send_mail(auto_commit=auto_commit) if self._context.get("record_id"): folio = self.env["pms.folio"].search( @@ -41,5 +28,5 @@ class MailComposeMessage(models.TransientModel): ) reservations = folio.reservation_ids for reservation in reservations: - reservation.is_mail_send = True + reservation.to_send_mail = False return res diff --git a/pms/models/pms_folio.py b/pms/models/pms_folio.py index 9c7ec3fc7..07b7b4c9f 100644 --- a/pms/models/pms_folio.py +++ b/pms/models/pms_folio.py @@ -516,13 +516,6 @@ class PmsFolio(models.Model): compute="_compute_last_checkout", ) - date_creation = fields.Date( - string="Creation Date", - readonly=False, - store=True, - compute="_compute_date_creation", - ) - def name_get(self): result = [] for folio in self: @@ -1302,18 +1295,17 @@ class PmsFolio(models.Model): @api.model def send_confirmation_mail(self): - today = fields.Date.today() folios = self.env["pms.folio"].search( [ ("reservation_type", "!=", "out"), ("pms_property_id.is_confirmed_auto_mail", "=", True), - ("reservation_ids.is_mail_send", "=", False), + ("reservation_ids.to_send_mail", "=", True), ("reservation_ids.is_modified_reservation", "=", False), - ("date_creation", "=", today), + ("reservation_ids.state", "!=", "cancel"), ] ) for folio in folios: - if folio.email: + if folio.email and folio.create_date.date() == fields.Date.today(): template = folio.pms_property_id.property_confirmed_template subject = template._render_field( "subject", @@ -1352,7 +1344,7 @@ class PmsFolio(models.Model): } ) for reservation in folio.reservation_ids: - reservation.is_mail_send = True + reservation.to_send_mail = False @api.model def send_modification_mail(self): @@ -1360,8 +1352,9 @@ class PmsFolio(models.Model): [ ("reservation_type", "!=", "out"), ("pms_property_id.is_modified_auto_mail", "=", True), - ("reservation_ids.is_mail_send", "=", False), + ("reservation_ids.to_send_mail", "=", True), ("reservation_ids.is_modified_reservation", "=", True), + ("reservation_ids.state", "!=", "cancel"), ] ) for folio in folios: @@ -1406,7 +1399,7 @@ class PmsFolio(models.Model): } ) for reservation in folio.reservation_ids: - reservation.is_mail_send = True + reservation.to_send_mail = False @api.model def send_cancelation_mail(self): @@ -1418,7 +1411,7 @@ class PmsFolio(models.Model): for reservation in reservations: if reservation.email: if ( - not reservation.is_mail_send + not reservation.to_send_mail and reservation.email and reservation.state not in "out" ): @@ -1463,7 +1456,7 @@ class PmsFolio(models.Model): "message": "Cancellation Mail Delivery Failed", } ) - reservation.is_mail_send = True + reservation.to_send_mail = False def action_view_invoice(self): invoices = self.mapped("move_ids") diff --git a/pms/models/pms_reservation.py b/pms/models/pms_reservation.py index 388e9a529..57ebca0a1 100644 --- a/pms/models/pms_reservation.py +++ b/pms/models/pms_reservation.py @@ -643,7 +643,7 @@ class PmsReservation(models.Model): comodel_name="res.partner", inverse_name="reservation_possible_customer_id", ) - is_mail_send = fields.Boolean(string="Mail Sent", default=False) + to_send_mail = fields.Boolean(string="Mail Sent", default=True) is_modified_reservation = fields.Boolean( string="Is A Modified Reservation", @@ -1470,9 +1470,9 @@ class PmsReservation(models.Model): for record in self: if record.state in "draft": record.is_modified_reservation = False - elif record.state in ("confirm", "onboard") and record.is_mail_send: + elif record.state in ("confirm", "onboard") and not record.to_send_mail: record.is_modified_reservation = True - record.is_mail_send = False + record.to_send_mail = True else: record.is_modified_reservation = False @@ -1730,20 +1730,20 @@ class PmsReservation(models.Model): template = False pms_property = self.pms_property_id if ( - not self.is_mail_send + self.to_send_mail and not self.is_modified_reservation and self.state not in "cancel" ): if pms_property.property_confirmed_template: template = pms_property.property_confirmed_template elif ( - not self.is_mail_send + self.to_send_mail and self.is_modified_reservation and self.state not in "cancel" ): if pms_property.property_modified_template: template = pms_property.property_modified_template - elif not self.is_mail_send and self.state in "cancel": + elif self.to_send_mail and self.state in "cancel": if pms_property.property_canceled_template: template = pms_property.property_canceled_template compose_form = self.env.ref( @@ -1931,7 +1931,7 @@ class PmsReservation(models.Model): else: record.state = "cancel" record.folio_id._compute_amount() - record.is_mail_send = False + record.to_send_mail = True def action_assign(self): for record in self: diff --git a/pms/tests/test_pms_reservation.py b/pms/tests/test_pms_reservation.py index 939df2aae..7cee7e2cf 100644 --- a/pms/tests/test_pms_reservation.py +++ b/pms/tests/test_pms_reservation.py @@ -3462,7 +3462,7 @@ class TestPmsReservations(TestPms): ---------------------- A reservation is created. The checkin and checkout fields of the reservation are modified. The state of the boolean - is_mail_send is changed to True so that the compute of + to_send_mail is changed to False so that the compute of the is_modified_reservation field is activated correctly and it is verified that the state of this field is True. """ @@ -3482,7 +3482,7 @@ class TestPmsReservations(TestPms): # ACT writed_checkin = fields.date.today() + datetime.timedelta(days=4) writed_checkout = fields.date.today() + datetime.timedelta(days=6) - reservation.is_mail_send = True + reservation.to_send_mail = False reservation.update( { "checkin": writed_checkin, diff --git a/pms/views/pms_reservation_views.xml b/pms/views/pms_reservation_views.xml index 53216b050..3aa79c172 100644 --- a/pms/views/pms_reservation_views.xml +++ b/pms/views/pms_reservation_views.xml @@ -47,22 +47,22 @@ name="action_open_mail_composer" string="Send Confirmation Email " type="object" - attrs="{'invisible':['|','|',('is_mail_send', '=', True),('is_modified_reservation', '=', True),('state', 'in', 'cancel')]}" + attrs="{'invisible':['|','|',('to_send_mail', '=', False),('is_modified_reservation', '=', True),('state', 'in', 'cancel')]}" />