FIX bug
This commit is contained in:
parent
fa8765515a
commit
97f033f09e
|
|
@ -8,7 +8,7 @@
|
|||
'license': 'GPL-3',
|
||||
'author': 'Expert Ltd',
|
||||
'depends': ['base', 'takaful_core', 'website', 'account', 'report_xlsx', 'sale', 'product', 'stock', 'hr',
|
||||
'purchase','web_google_maps','odex25_account_payment_fix'],
|
||||
'purchase','web_google_maps','odex25_account_payment_fix','otp_sms_auth_custom'],
|
||||
'data': [
|
||||
'security/security_view.xml',
|
||||
'security/ir.model.access.csv',
|
||||
|
|
|
|||
|
|
@ -107,30 +107,141 @@
|
|||
<field name="category_id" ref="module_category_benefit"/>
|
||||
</record>
|
||||
|
||||
<!-- <!– Add rules for grant.benefit –>-->
|
||||
<!-- <record id="grant_benefit_show_all_rule" model="ir.rule">-->
|
||||
<!-- <field name="name">Show All Benefits Profiles</field>-->
|
||||
<!-- <field name="model_id" ref="model_grant_benefit"/>-->
|
||||
<!-- <field name="domain_force">[(1, '=', 1)]</field>-->
|
||||
<!-- <field name="groups" eval="[(4, ref('group_benefit_manager'))]"/>-->
|
||||
<!-- <field name="active" eval="True" />-->
|
||||
<!-- </record>-->
|
||||
|
||||
<!-- <record id="grant_benefit_rule_branch_manager" model="ir.rule">-->
|
||||
<!-- <field name="name">Show Benefits Profiles of Own Branch</field>-->
|
||||
<!-- <field name="model_id" ref="model_grant_benefit"/>-->
|
||||
<!-- <field name="domain_force">[('branch_custom_id.branch.manager_id', '=', user.employee_id.id)]</field>-->
|
||||
<!-- <field name="groups" eval="[(4, ref('group_benefit_branch_manager'))]"/>-->
|
||||
<!-- <field name="active" eval="True" />-->
|
||||
<!-- </record>-->
|
||||
|
||||
<!-- <record id="grant_benefit_rule_operation_manager" model="ir.rule">-->
|
||||
<!-- <field name="name">Show Benefits Profiles of Assigned Branch (Operation Manager)</field>-->
|
||||
<!-- <field name="model_id" ref="model_grant_benefit"/>-->
|
||||
<!-- <field name="domain_force">['|',('branch_custom_id.branch.operation_manager_id', '=', user.employee_id.id),('state', '=','new')]</field>-->
|
||||
<!-- <field name="groups" eval="[(4, ref('group_benefit_woman_commitee'))]"/>-->
|
||||
<!-- <field name="active" eval="True" />-->
|
||||
<!-- </record>-->
|
||||
|
||||
<!-- <record id="grant_benefit_rule_researcher" model="ir.rule">-->
|
||||
<!-- <field name="name">Show Benefits Profiles Created or Assigned (Researcher)</field>-->
|
||||
<!-- <field name="model_id" ref="model_grant_benefit"/>-->
|
||||
<!-- <field name="domain_force">[-->
|
||||
<!-- '|',-->
|
||||
<!-- ('create_uid','=',user.id),-->
|
||||
<!-- ('researcher_id.employee_id', 'in', user.employee_id.ids)-->
|
||||
<!-- ]</field>-->
|
||||
<!-- <field name="groups" eval="[(4, ref('group_benefit_researcher'))]"/>-->
|
||||
<!-- <field name="active" eval="True" />-->
|
||||
<!-- </record>-->
|
||||
|
||||
<!-- <!– Add rules for visit.location –>-->
|
||||
<!-- <record id="visit_location_show_all_rule" model="ir.rule">-->
|
||||
<!-- <field name="name">Show All Visit Location</field>-->
|
||||
<!-- <field name="model_id" ref="model_visit_location"/>-->
|
||||
<!-- <field name="domain_force">[(1, '=', 1)]</field>-->
|
||||
<!-- <field name="groups" eval="[(4, ref('group_benefit_manager'))]"/>-->
|
||||
<!-- <field name="active" eval="True" />-->
|
||||
<!-- </record>-->
|
||||
|
||||
<!-- <record id="visit_location_rule_branch_manager" model="ir.rule">-->
|
||||
<!-- <field name="name">Show Visit Location of Own Branch</field>-->
|
||||
<!-- <field name="model_id" ref="model_visit_location"/>-->
|
||||
<!-- <field name="domain_force">[('benefit_id.branch_custom_id.branch.manager_id', '=', user.employee_id.id)]</field>-->
|
||||
<!-- <field name="groups" eval="[(4, ref('group_benefit_branch_manager'))]"/>-->
|
||||
<!-- <field name="active" eval="True" />-->
|
||||
<!-- </record>-->
|
||||
|
||||
<!-- <record id="visit_location_rule_operation_manager" model="ir.rule">-->
|
||||
<!-- <field name="name">Show Visit Location of Assigned Branch (Operation Manager)</field>-->
|
||||
<!-- <field name="model_id" ref="model_visit_location"/>-->
|
||||
<!-- <field name="domain_force">[('benefit_id.branch_custom_id.branch.operation_manager_id', '=', user.employee_id.id)]</field>-->
|
||||
<!-- <field name="groups" eval="[(4, ref('group_benefit_woman_commitee'))]"/>-->
|
||||
<!-- <field name="active" eval="True" />-->
|
||||
<!-- </record>-->
|
||||
|
||||
<!-- <record id="visit_location_rule_researcher" model="ir.rule">-->
|
||||
<!-- <field name="name">Show Visit Location Created or Assigned (Researcher)</field>-->
|
||||
<!-- <field name="model_id" ref="model_visit_location"/>-->
|
||||
<!-- <field name="domain_force">[-->
|
||||
<!-- '|',-->
|
||||
<!-- ('create_uid','=',user.id),-->
|
||||
<!-- ('researcher_team.employee_id', 'in', user.employee_id.ids)-->
|
||||
<!-- ]</field>-->
|
||||
<!-- <field name="groups" eval="[(4, ref('group_benefit_researcher'))]"/>-->
|
||||
<!-- <field name="active" eval="True" />-->
|
||||
<!-- </record>-->
|
||||
|
||||
<!-- <!– Add rules for family.complaints –>-->
|
||||
<!-- <record id="family_complaints_show_all_rule" model="ir.rule">-->
|
||||
<!-- <field name="name">Show All Family Complaints</field>-->
|
||||
<!-- <field name="model_id" ref="model_family_complaints"/>-->
|
||||
<!-- <field name="domain_force">[(1, '=', 1)]</field>-->
|
||||
<!-- <field name="groups" eval="[(4, ref('group_benefit_manager'))]"/>-->
|
||||
<!-- <field name="active" eval="True" />-->
|
||||
<!-- </record>-->
|
||||
|
||||
<!-- <record id="family_complaints_rule_branch_manager" model="ir.rule">-->
|
||||
<!-- <field name="name">Show Family Complaints of Own Branch</field>-->
|
||||
<!-- <field name="model_id" ref="model_family_complaints"/>-->
|
||||
<!-- <field name="domain_force">[('branch_custom_id.branch.manager_id', '=', user.employee_id.id)]</field>-->
|
||||
<!-- <field name="groups" eval="[(4, ref('group_benefit_branch_manager'))]"/>-->
|
||||
<!-- <field name="active" eval="True" />-->
|
||||
<!-- </record>-->
|
||||
|
||||
<!-- <record id="family_complaints_rule_operation_manager" model="ir.rule">-->
|
||||
<!-- <field name="name">Show Family Complaints of Assigned Branch (Operation Manager)</field>-->
|
||||
<!-- <field name="model_id" ref="model_family_complaints"/>-->
|
||||
<!-- <field name="domain_force">[('branch_custom_id.branch.operation_manager_id', '=', user.employee_id.id)]</field>-->
|
||||
<!-- <field name="groups" eval="[(4, ref('group_benefit_woman_commitee'))]"/>-->
|
||||
<!-- <field name="active" eval="True" />-->
|
||||
<!-- </record>-->
|
||||
|
||||
<!-- <record id="family_complaints_rule_researcher" model="ir.rule">-->
|
||||
<!-- <field name="name">Show Family Complaints Created or Assigned (Researcher)</field>-->
|
||||
<!-- <field name="model_id" ref="model_family_complaints"/>-->
|
||||
<!-- <field name="domain_force">[-->
|
||||
<!-- '|',-->
|
||||
<!-- ('create_uid','=',user.id),-->
|
||||
<!-- ('researcher_id.employee_id', 'in', user.employee_id.ids)-->
|
||||
<!-- ]</field>-->
|
||||
<!-- <field name="groups" eval="[(4, ref('group_benefit_researcher'))]"/>-->
|
||||
<!-- <field name="active" eval="True" />-->
|
||||
<!-- </record>-->
|
||||
|
||||
<!-- Add rules for service.request -->
|
||||
<record id="service_request_restrict_all_requests_by_rule" model="ir.rule">
|
||||
<field name="name">Show All Service Requests</field>
|
||||
<field name="model_id" ref="model_service_request"/>
|
||||
<field name="global" eval="True" />
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4, ref('group_benefit_requests_manager'))]"/>
|
||||
<field name="active" eval="True" />
|
||||
</record>
|
||||
|
||||
<record id="service_request_restrict_only_created_by_rule" model="ir.rule">
|
||||
<field name="name">Show Service Requests That Own</field>
|
||||
<field name="model_id" ref="model_service_request"/>
|
||||
<field name="global" eval="True" />
|
||||
<field name="domain_force">[
|
||||
'|',
|
||||
('create_uid','=',user.id),
|
||||
('family_id.researcher_id.employee_id', '=', user.employee_id.id)
|
||||
('researcher_id.employee_id', 'in', user.employee_id.ids)
|
||||
]</field>
|
||||
<field name="groups" eval="[(4, ref('group_benefit_researcher'))]"/>
|
||||
<field name="active" eval="True" />
|
||||
</record>
|
||||
|
||||
<record id="service_request_restrict_only_his_branch_rule" model="ir.rule">
|
||||
<field name="name">Show Service Requests That Own</field>
|
||||
<field name="model_id" ref="model_service_request"/>
|
||||
<field name="global" eval="True" />
|
||||
<field name="domain_force">[
|
||||
'|',
|
||||
('family_id.branch_custom_id.branch.manager_id', '=', user.employee_id.id),
|
||||
|
|
@ -139,17 +250,22 @@
|
|||
<field name="groups" eval="[(4, ref('group_benefit_branch_manager')), (4, ref('group_benefit_woman_commitee'))]"/>
|
||||
<field name="active" eval="True" />
|
||||
</record>
|
||||
<!-- <record id="rule_hide_draft_records" model="ir.rule">-->
|
||||
<!-- <field name="name">Hide Draft Records for Non-Members</field>-->
|
||||
<!-- <field name="model_id" ref="odex_benefit.model_grant_benefit"/>-->
|
||||
<!-- <field name="domain_force">[('state', '!=', 'draft')]</field>-->
|
||||
<!--</record>-->
|
||||
|
||||
<!--<record id="rule_show_draft_records" model="ir.rule">-->
|
||||
<!-- <field name="name">Show Draft Records for Group Members</field>-->
|
||||
<!-- <field name="model_id" ref="odex_benefit.model_grant_benefit"/>-->
|
||||
<!-- <field name="groups" eval="[(4, ref('odex_benefit.group_show_draft_records'))]"/>-->
|
||||
<!-- <field name="domain_force">[(1, '=', 1)]</field>-->
|
||||
<!--</record>-->
|
||||
<!-- <!– Add rules for grant benefit draft state–>-->
|
||||
<!-- <record id="grant_benefit_no_draft_rule" model="ir.rule">-->
|
||||
<!-- <field name="name">Hide Draft Benefits</field>-->
|
||||
<!-- <field name="model_id" ref="model_grant_benefit"/>-->
|
||||
<!-- <field name="domain_force">[('state', '!=', 'draft')]</field>-->
|
||||
<!-- <field name="global" eval="True"/>-->
|
||||
<!-- <field name="active" eval="True"/>-->
|
||||
<!-- </record>-->
|
||||
|
||||
<!-- <record id="grant_benefit_show_draft_rule" model="ir.rule">-->
|
||||
<!-- <field name="name">Show Draft Benefits (Special Group)</field>-->
|
||||
<!-- <field name="model_id" ref="model_grant_benefit"/>-->
|
||||
<!-- <field name="domain_force">[(1, '=', 1)]</field>-->
|
||||
<!-- <field name="groups" eval="[(4, ref('odex_benefit.group_benefit_show_draft_record')),(4, ref('base.public_user')),(4, ref('base.group_portal'))]"/>-->
|
||||
<!-- <field name="active" eval="True"/>-->
|
||||
<!-- </record>-->
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
|
|||
|
|
@ -196,7 +196,6 @@
|
|||
/>
|
||||
<button name="action_set_to_draft" type="object"
|
||||
string="Set to Draft" class="oe_highlight"
|
||||
confirm="Are you sure you want to set the state to Draft?"
|
||||
groups="odex_benefit.group_benefit_back_to_draft"
|
||||
attrs="{'invisible':[('state','in',['draft','first_approve','second_approve'])]}"/>
|
||||
<!-- <button name="action_finish_edit" type="object"-->
|
||||
|
|
|
|||
|
|
@ -176,6 +176,6 @@ class EntityReturnReasonWizard(models.TransientModel):
|
|||
rec.entity_id.sudo().write({"state": target_state})
|
||||
if rec.entity_id.state == 'draft':
|
||||
message = rec.entity_id.create_message(target_state)
|
||||
rec.entity_id.partner_id.send_sms_notification(message, rec.entity_id.phone)
|
||||
rec.entity_id.user_id.send_sms_to_user(message, rec.entity_id.phone)
|
||||
|
||||
return {'type': 'ir.actions.act_window_close'}
|
||||
|
|
@ -15,6 +15,40 @@ class ResUsersInherit(models.Model):
|
|||
otp_mobile_phone = fields.Char(string="Mobile Phone")
|
||||
otp_code = fields.Char(string="OTP Code", readonly=True)
|
||||
|
||||
def send_sms_to_user(self, body=None, phone=None):
|
||||
company = self.env.company
|
||||
# Check the SMS mode
|
||||
if company.sms_mode == 'test':
|
||||
_logger.info(f"--- SMS TEST MODE --- for user {self.name} is {body}. SMS not sent.")
|
||||
return
|
||||
|
||||
# --- Production Mode Logic ---
|
||||
# Validate that all configuration fields are set
|
||||
if not all([company.sms_api_url, company.sms_api_token, company.sms_sender_name]):
|
||||
raise ValidationError(
|
||||
"SMS API settings (URL, Token, Sender Name) are not fully configured in General Settings.")
|
||||
|
||||
# SMS payload
|
||||
payload = {
|
||||
"recipients": [self.phone],
|
||||
"body": body,
|
||||
"sender": company.sms_sender_name,
|
||||
}
|
||||
|
||||
# Headers for authentication
|
||||
headers = {
|
||||
"Authorization": f"Bearer {company.sms_api_token}",
|
||||
"Content-Type": "application/json",
|
||||
}
|
||||
|
||||
# Send the SMS
|
||||
try:
|
||||
response = requests.post(company.sms_api_url, json=payload, headers=headers, timeout=10)
|
||||
response.raise_for_status() # Raise an error for non-2xx responses
|
||||
_logger.info(f"{body} sent successfully to {phone}")
|
||||
except requests.exceptions.RequestException as e:
|
||||
_logger.error(f"Failed to send sms to {phone}: {e}")
|
||||
raise ValidationError("Failed to send sms. Please check API configuration or try again later.")
|
||||
|
||||
def generate_otp(self):
|
||||
"""
|
||||
|
|
|
|||
Loading…
Reference in New Issue