Add return reason wizard

This commit is contained in:
younes 2025-07-06 12:43:18 +01:00
parent b57d340704
commit 3de44edc6f
7 changed files with 158 additions and 5 deletions

View File

@ -2068,6 +2068,8 @@ msgstr "عائلات المستفيدين"
#. module: odex_benefit
#: code:addons/odex_benefit/wizards/entity_refused_wizard.py:0
#: code:addons/odex_benefit/wizards/entity_refused_wizard.py:0
#: code:addons/odex_benefit/wizards/entity_refused_wizard.py:0
#: model:ir.model.fields,field_description:odex_benefit.field_appliances_furniture__benefit_id
#: model:ir.model.fields,field_description:odex_benefit.field_appliances_furniture__benefit_ids
#: model:ir.model.fields,field_description:odex_benefit.field_appliances_furniture_need__benefit_id
@ -2087,6 +2089,7 @@ msgstr "عائلات المستفيدين"
#: model:ir.model.fields,field_description:odex_benefit.field_craft_skills__benefit_id
#: model:ir.model.fields,field_description:odex_benefit.field_divorcee_family__benefit_id
#: model:ir.model.fields,field_description:odex_benefit.field_entity_refused_reason_wizard__entity_id
#: model:ir.model.fields,field_description:odex_benefit.field_entity_return_reason_wizard__entity_id
#: model:ir.model.fields,field_description:odex_benefit.field_expenses_line__benefit_id
#: model:ir.model.fields,field_description:odex_benefit.field_family_debits__benefit_id
#: model:ir.model.fields,field_description:odex_benefit.field_food_surplus_line__benefit_ids
@ -2095,6 +2098,7 @@ msgstr "عائلات المستفيدين"
#: model:ir.model.fields,field_description:odex_benefit.field_housing_need__benefit_id
#: model:ir.model.fields,field_description:odex_benefit.field_housing_rooms_members__benefit_id
#: model:ir.model.fields,field_description:odex_benefit.field_ir_attachment__benefit_id
#: model:ir.model.fields,field_description:odex_benefit.field_mrp_document__benefit_id
#: model:ir.model.fields,field_description:odex_benefit.field_program_plane_line__benefit_ids
#: model:ir.model.fields,field_description:odex_benefit.field_researcher_family_wizard__benefit_id
#: model:ir.model.fields,field_description:odex_benefit.field_salary_line__benefit_id
@ -2719,6 +2723,7 @@ msgstr "بإمكانه النشر "
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_entity_black_list_wizard_form
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_entity_final_refused_reason_wizard_form
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_entity_refused_reason_wizard_form
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_entity_return_reason_wizard_form
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_exception_member_wizard_form
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_exception_wizard_form
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_resarcher_member_wizard_form
@ -11954,6 +11959,7 @@ msgstr "مدير اللجنة النسائية"
#. module: odex_benefit
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__state__new
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__state__new
msgid "New"
msgstr "جديد"
@ -14334,3 +14340,49 @@ msgstr ""
msgid "${object.benefit_id.name or 'New Visit Assigned'}"
msgstr "${object.benefit_id.name or 'تم تعيين زيارة جديدة'}"
#. module: odex_benefit
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
msgid "Return to Waiting Approval"
msgstr "إرجاع إلى انتظار الموافقة"
#. module: odex_benefit
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
msgid "Are you sure you want to return this record to Waiting Approval?"
msgstr "هل أنت متأكد أنك تريد إرجاع هذا السجل إلى حالة انتظار الموافقة؟"
#. module: odex_benefit
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
msgid "Set To new"
msgstr "إرجاع إلى جديد"
#. module: odex_benefit
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
msgid "Are you sure you want to set the state to New?"
msgstr "هل أنت متأكد أنك تريد تعيين الحالة إلى جديد؟"
#. module: odex_benefit
#: code:addons/odex_benefit/models/benefit.py:0
#: code:addons/odex_benefit/models/benefit.py:0
#: model:ir.model,name:odex_benefit.model_entity_return_reason_wizard
#, python-format
msgid "Return Reason Wizard"
msgstr "سبب الإرجاع"
#. module: odex_benefit
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_entity_return_reason_wizard_form
msgid "Retrun"
msgstr "إرجاع"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_entity_return_reason_wizard__return_reason
msgid "Return Reason"
msgstr "سبب الإرجاع"
#. module: odex_benefit
#: code:addons/odex_benefit/wizards/entity_refused_wizard.py:0
#, python-format
msgid ""
"The benefit record <b>%s</b> state has been changed to <b>%s</b>.<br/>Return"
" Reason: <b>%s</b>"
msgstr ""
"تم تغيير حالة المستفيد <b>%s</b> إلى <b>%s</b>.<br/>سبب الإرجاع: <b>%s</b>"

View File

@ -1040,8 +1040,8 @@ class GrantBenefitProfile(models.Model):
record.partner_id.get_partner_name() # Force recomputation of name
if record.user_id:
record.sudo().user_id.write({"name": record.partner_id.name})
if not self.env.context.get('force_website', False):
self._validate_required_attachments()
# if not self.env.context.get('force_website', False):
# self._validate_required_attachments()
return res
@api.model
@ -1158,6 +1158,37 @@ class GrantBenefitProfile(models.Model):
'context': context,
}
def action_set_to_new(self):
context = dict(self.env.context or {})
context['target_state'] = "new"
context['active_id'] = self.id
return {
'name': _('Return Reason Wizard'),
'view_mode': 'form',
'view_type': 'form',
'type': 'ir.actions.act_window',
'res_model': 'entity.return.reason.wizard',
'view_id': self.env.ref('odex_benefit.view_entity_return_reason_wizard_form').id,
'target': 'new',
'context': context,
}
def action_set_waiting_approve(self):
context = dict(self.env.context or {})
context['target_state'] = "waiting_approve"
context['active_id'] = self.id
return {
'name': _('Return Reason Wizard'),
'view_mode': 'form',
'view_type': 'form',
'type': 'ir.actions.act_window',
'res_model': 'entity.return.reason.wizard',
'view_id': self.env.ref('odex_benefit.view_entity_return_reason_wizard_form').id,
'target': 'new',
'context': context,
}
# @api.multi
def action_refuse(self):
"""Refuse entity registration"""

View File

@ -196,6 +196,7 @@ class FamilyMemberProfile(models.Model):
# ], string='state', default="draft", tracking=True,related="benefit_id.state")
state = fields.Selection([
('draft', 'Draft'),
('new', 'New'),
('complete_info', 'Complete Information'),
('waiting_approve', 'Waiting Approved'),
('woman_manager', 'Woman Manager'),

View File

@ -97,6 +97,7 @@ access_member_diseases,access_member_diseases,model_member_diseases,,1,1,1,1
access_member_hobbies,access_member_hobbies,model_member_hobbies,,1,1,1,1
access_family_debits,access_family_debits,model_family_debits,,1,1,1,1
access_entity_refused_reason_wizard,access_entity_refused_reason_wizard,model_entity_refused_reason_wizard,,1,1,1,1
access_entity_return_reason_wizard,access_entity_return_reason_wizard,model_entity_return_reason_wizard,,1,1,1,1
access_family_validation_setting,access_family_validation_setting,model_family_validation_setting,,1,1,1,1
access_expenses_type,access_expenses_type,model_expenses_type,base.group_user,1,1,1,1
access_survey_setting,access_survey_setting,model_survey_setting,,1,1,1,1

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
97 access_member_hobbies access_member_hobbies model_member_hobbies 1 1 1 1
98 access_family_debits access_family_debits model_family_debits 1 1 1 1
99 access_entity_refused_reason_wizard access_entity_refused_reason_wizard model_entity_refused_reason_wizard 1 1 1 1
100 access_entity_return_reason_wizard access_entity_return_reason_wizard model_entity_return_reason_wizard 1 1 1 1
101 access_family_validation_setting access_family_validation_setting model_family_validation_setting 1 1 1 1
102 access_expenses_type access_expenses_type model_expenses_type base.group_user 1 1 1 1
103 access_survey_setting access_survey_setting model_survey_setting 1 1 1 1

View File

@ -9,8 +9,7 @@
<field name="lon"/>
<field name="partner_id"/>
<field name="user_id"/>
<progressbar field="activity_state"
colors='{"planned": "success", "today": "warning", "overdue": "danger"}'/>
<progressbar field="activity_state" colors='{"planned": "success", "today": "warning", "overdue": "danger"}'/>
<templates>
<t t-name="kanban-box">
<div t-attf-class="oe_kanban_content">
@ -47,7 +46,7 @@
<field name="name"/>
<templates>
<t t-name="kanban-box">
<div t-attf-class="oe_kanban_global_click">
<div t-attf-class="oe_kanban_content oe_kanban_global_click">
<div class="oe_kanban_details">
<strong class="o_kanban_record_title">
<strong>: Family Name
@ -113,6 +112,11 @@
confirm="Are you sure you want to accept ?"
groups="odex_benefit.group_benefit_branch_manager,odex_benefit.group_benefit_manager"
attrs="{'invisible': [('state','not in',['first_approve','first_refusal'])]}"/>
<button name="action_set_waiting_approve" type="object"
string="Return to Waiting Approval" class="oe_highlight"
confirm="Are you sure you want to return this record to Waiting Approval?"
groups="odex_benefit.group_benefit_branch_manager,odex_benefit.group_benefit_manager"
states="first_approve"/>
<!-- <button name="action_view_beneficiary_guardian" type="object"-->
<!-- string="create" class="oe_highlight"/>-->
<button name="action_refuse" type="object"
@ -126,6 +130,11 @@
confirm="Are you sure you want to refuse ?"
groups="odex_benefit.group_benefit_manager,odex_benefit.group_benefit_branch_manager,odex_benefit.group_benefit_woman_commitee"
states="waiting_approve"/>
<button name="action_set_to_new" type="object"
string="Set To new" class="oe_highlight"
confirm="Are you sure you want to set the state to New?"
groups="odex_benefit.group_benefit_manager,odex_benefit.group_benefit_branch_manager,odex_benefit.group_benefit_woman_commitee"
states="waiting_approve"/>
<button name="complete_data" type="object"
string="Complete Information" class="oe_highlight"
confirm="Are you sure you want to Complete data ?"

View File

@ -139,3 +139,40 @@ class EntityRefusedReasonWizard(models.TransientModel):
# }
#
class EntityReturnReasonWizard(models.TransientModel):
_name = 'entity.return.reason.wizard'
_description = "Return Reason Wizard"
def _default_entity(self):
return self._context.get('active_id')
def _get_target_state(self):
return self._context.get('target_state', 'new')
entity_id = fields.Many2one("grant.benefit", string="Benefit", default=_default_entity)
return_reason = fields.Text(string='Return Reason', required=True)
target_state = fields.Char(string='Target State', default=_get_target_state)
def action_confirm_return(self):
for rec in self:
if rec.entity_id:
target_state = rec.target_state
state_label = dict(rec.entity_id.fields_get(['state'])['state']['selection']).get(target_state,
target_state)
subject = _('Benefit')
body = _(
"The benefit record <b>%s</b> state has been changed to <b>%s</b>.<br/>"
"Return Reason: <b>%s</b>"
) % (rec.entity_id.name, state_label, rec.return_reason)
rec.entity_id.message_post(
body=body,
subject=subject,
message_type='notification'
)
rec.entity_id.sudo().write({"state": target_state})
return {'type': 'ir.actions.act_window_close'}

View File

@ -44,6 +44,28 @@
</field>
</record>
<record id="view_entity_return_reason_wizard_form" model="ir.ui.view">
<field name="name">view.entity.return.reason.wizard.form</field>
<field name="model">entity.return.reason.wizard</field>
<field name="arch" type="xml">
<form string="سبب الإرجاع">
<sheet>
<group>
<field name="entity_id" invisible="1"/>
<field name="return_reason"/>
</group>
<footer>
<button name="action_confirm_return" type="object" string="Retrun" class="oe_highlight"/>
or
<button special="cancel" string="Cancel"/>
</footer>
</sheet>
</form>
</field>
</record>
<!-- <record id="view_grant_refused_reason_wizard_form" model="ir.ui.view">-->
<!-- <field name="name">view.entity.refused.reason.wizard.form</field>-->
<!-- <field name="model">grant.refused.reason.wizard</field>-->