From 564d314d0004f3c6bec57674cbb689a3ff10bb3e Mon Sep 17 00:00:00 2001 From: eslamabady Date: Wed, 9 Oct 2024 10:19:21 +0300 Subject: [PATCH] fix-refuse --- .../models/hr_firebase_notification.py | 29 +++++++++++-------- .../controllers/controllers.py | 7 +++-- .../models/odoo_workflow_mobile.py | 1 + .../views/odoo_workflow_view.xml | 1 + 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/odex25_mobile/odex_mobile/models/hr_firebase_notification.py b/odex25_mobile/odex_mobile/models/hr_firebase_notification.py index 9a9ca7a82..64366c278 100644 --- a/odex25_mobile/odex_mobile/models/hr_firebase_notification.py +++ b/odex25_mobile/odex_mobile/models/hr_firebase_notification.py @@ -49,9 +49,10 @@ class Timesheet(models.Model): if users: partner = users.mapped('partner_id') for part in partner: - part.send_notification( - _("Employee %s Timesheet Waiting Your Approve") % (self.employee_id.name), - " %s - %s" % (self.date_start, self.date_end), data=data, all_device=True) + if not self.env.context.get('refuse'): + part.send_notification( + _("Employee %s Timesheet Waiting Your Approve") % (self.employee_id.name), + " %s - %s" % (self.date_start, self.date_end), data=data, all_device=True) self.employee_id.user_id.partner_id.send_notification( _("Timesheet Has been Updated to %s") % (validator.get_state_name(self, self.state)), " %s - %s" % (self.date_start, self.date_end), @@ -99,8 +100,9 @@ class HrHolidays(models.Model): if users: partner = users.mapped('partner_id') for part in partner: - part.send_notification(_("Employee %s Leave Waiting Your Approve") % (self.employee_id.name), - " %s - %s" % (str(self.date_from), str(self.date_to)), data=data, all_device=True) + if not self.env.context.get('refuse'): + part.send_notification(_("Employee %s Leave Waiting Your Approve") % (self.employee_id.name), + " %s - %s" % (str(self.date_from), str(self.date_to)), data=data, all_device=True) self.employee_id.user_id.partner_id.send_notification( _("Leave Request Has Been Updated to %s") % (validator.get_state_name(self, self.state)), " %s - %s " % (self.date_from, self.date_to), @@ -156,9 +158,10 @@ class Overtime(models.Model): if users: partner = users.mapped('partner_id') for part in partner: - part.send_notification(_("Employee Overtime Request Waiting Your Approve"), - " %s - %s" % (self.date_from, self.date_to), data=data, - all_device=True) + if not self.env.context.get('refuse'): + part.send_notification(_("Employee Overtime Request Waiting Your Approve"), + " %s - %s" % (self.date_from, self.date_to), data=data, + all_device=True) if rec.employee_id.user_id: rec.employee_id.user_id.partner_id.send_notification( _("Overtime Request has been Updated to %s ") % (validator.get_state_name(self, self.state)), " %s - %s" % (self.date_from, self.date_to), @@ -188,8 +191,9 @@ class HrPersonalPermission(models.Model): if users: partner = users.mapped('partner_id') for part in partner: - part.send_notification(_("Employee %s Permission Waiting Your Approve") % (self.employee_id.name), - " %s - %s" % (self.date_from, self.date_to), data=data, all_device=True) + if not self.env.context.get('refuse'): + part.send_notification(_("Employee %s Permission Waiting Your Approve") % (self.employee_id.name), + " %s - %s" % (self.date_from, self.date_to), data=data, all_device=True) self.employee_id.user_id.partner_id.send_notification( _("Permission Request has been updated to %s ") % (validator.get_state_name(self, self.state)) , " %s - %s" % (self.date_from, self.date_to), data=data, all_device=True) @@ -239,8 +243,9 @@ class HrSalaryAdvance(models.Model): if users: partner = users.mapped('partner_id') for part in partner: - part.send_notification(_("Employee %s Loan %s Waiting Your Approve") % (self.employee_id.name, self.code), - _("Loan %s Waiting Your Approve") % (self.code), data=data, all_device=True) + if not self.env.context.get('refuse'): + part.send_notification(_("Employee %s Loan %s Waiting Your Approve") % (self.employee_id.name, self.code), + _("Loan %s Waiting Your Approve") % (self.code), data=data, all_device=True) self.employee_id.user_id.partner_id.send_notification( _("Loan %s") % (self.code), _("Has been updated to %s") % (validator.get_state_name(self, self.state)), data=data, all_device=True) diff --git a/odex25_mobile/odoo_dynamic_workflow_mobile/controllers/controllers.py b/odex25_mobile/odoo_dynamic_workflow_mobile/controllers/controllers.py index 5de99ac88..6d28baa3e 100644 --- a/odex25_mobile/odoo_dynamic_workflow_mobile/controllers/controllers.py +++ b/odex25_mobile/odoo_dynamic_workflow_mobile/controllers/controllers.py @@ -247,10 +247,13 @@ class RestApi(Controller): btn.with_context(context)._run_code(active_id, btn.model, request.env) res = obj.read(["id", "state"])[0] state = res["state"] + refuse=False btn_new = request.env[BTN].sudo().search([("workflow_id", "=", int(btn.workflow_id.id)), (("node_id.node_name", "=", state)), ], [],) + if any(btn.is_refuse for btn in btn_new): + refuse = True if any(btn.send_manager for btn in btn_new): emp_manager = self.get_emp_manager(obj) - obj.firebase_notification(emp_manager.user_id) + obj.with_context(refuse=refuse).firebase_notification(emp_manager.user_id) return http_helper.response(message="Successful", data=res) group_ids = btn_new.mapped("group_ids") rule_groups = btn_new.mapped("group_ids").mapped("rule_groups").filtered(lambda rec:rec.model_id.model == obj._name) @@ -258,7 +261,7 @@ class RestApi(Controller): users = request.env['res.users'].sudo().search([('id', 'in', users_list)]) if reject_reason: obj.write({"reason": reject_reason}) - obj.firebase_notification(users) + obj.with_context(refuse=refuse).firebase_notification(users) return http_helper.response(message="Successful", data=res) except (UserError, AccessError, ValidationError, Warning) as e: diff --git a/odex25_mobile/odoo_dynamic_workflow_mobile/models/odoo_workflow_mobile.py b/odex25_mobile/odoo_dynamic_workflow_mobile/models/odoo_workflow_mobile.py index 03a3d65cb..4e91650f9 100644 --- a/odex25_mobile/odoo_dynamic_workflow_mobile/models/odoo_workflow_mobile.py +++ b/odex25_mobile/odoo_dynamic_workflow_mobile/models/odoo_workflow_mobile.py @@ -388,6 +388,7 @@ class OdooWorkflowBtnWizard(models.Model): btn_hide = fields.Boolean(string="Hide Button if Condition isn't fulfilled", help="If condition is false the button will be hidden.",readonly=True) condition_code = fields.Text(string='Condition Code', default=CONDITION_CODE_TEMP, help="Enter condition to execute button action.",readonly=True) send_manager = fields.Boolean(string="Send Direct Manager", help="Send Direct Manager") + is_refuse= fields.Boolean(string="Send Refuse", help="Send Refuse") action_type = fields.Selection([ ('link', 'Trigger Link'), ('code', 'Python Code'), diff --git a/odex25_mobile/odoo_dynamic_workflow_mobile/views/odoo_workflow_view.xml b/odex25_mobile/odoo_dynamic_workflow_mobile/views/odoo_workflow_view.xml index c5d493a14..e1a6b65f5 100644 --- a/odex25_mobile/odoo_dynamic_workflow_mobile/views/odoo_workflow_view.xml +++ b/odex25_mobile/odoo_dynamic_workflow_mobile/views/odoo_workflow_view.xml @@ -235,6 +235,7 @@ sell it under their names. ###--> +