[UPD] odex_benefit

This commit is contained in:
Samir Ladoui 2025-09-01 11:25:38 +01:00
parent 97af5d0bc6
commit 6e2a54d389
11 changed files with 217 additions and 6 deletions

View File

@ -50,6 +50,8 @@
'views/generate_reports.xml',
'views/service_refuse_reason.xml',
'views/res_city.xml',
'views/job_settings_views.xml',
'views/death_reason_settings_views.xml',
'views/res_country.xml',
'templates/benefit_email.xml',

View File

@ -4012,6 +4012,7 @@ msgstr "مدينة الوفاة"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__father_dead_reason
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__father_dead_reason_id
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__mother_dead_reason
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__replacement_mother_dead_reason
msgid "Dead Reason"
@ -4024,8 +4025,9 @@ msgstr "بلد وفاة الأب"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__father_job
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__father_job_id
msgid "Father Job"
msgstr "وظيفة الأب "
msgstr "وظيفة الأب"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__father_id_number_type
@ -7004,6 +7006,11 @@ msgstr "حالة محتويات الغرف"
msgid "Items"
msgstr "العناصر"
#. module: odex_benefit
#: model_terms:ir.ui.view,arch_db:odex_benefit.job_settings_view_form
msgid "Job"
msgstr "وظيفة"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__job_company
msgid "Job Company"
@ -7022,6 +7029,17 @@ msgstr ""
msgid "Job Position"
msgstr "المنصب الوظيفي"
#. module: odex_benefit
#: model:ir.actions.act_window,name:odex_benefit.action_job_settings_act_window
#: model_terms:ir.ui.view,arch_db:odex_benefit.job_settings_view_tree
msgid "Jobs"
msgstr "وظائف"
#. module: odex_benefit
#: model:ir.ui.menu,name:odex_benefit.menu_jobs_settings
msgid "Jobs Settings"
msgstr "إعدادات الوظائف"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_loans__journal_id
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_zkat__journal_id
@ -8390,6 +8408,7 @@ msgstr "نهاية الوقت المعين للنشاط"
#: model:ir.model.fields,field_description:odex_benefit.field_committees_line__name
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__name
#: model:ir.model.fields,field_description:odex_benefit.field_craft_skills__name
#: model:ir.model.fields,field_description:odex_benefit.field_death_reason_settings__name
#: model:ir.model.fields,field_description:odex_benefit.field_disabilities_settings__name
#: model:ir.model.fields,field_description:odex_benefit.field_diseases_settings__name
#: model:ir.model.fields,field_description:odex_benefit.field_donations_type__name
@ -8411,10 +8430,12 @@ msgstr "نهاية الوقت المعين للنشاط"
#: model:ir.model.fields,field_description:odex_benefit.field_insurance_company__name
#: model:ir.model.fields,field_description:odex_benefit.field_insurance_type__name
#: model:ir.model.fields,field_description:odex_benefit.field_item_status__name
#: model:ir.model.fields,field_description:odex_benefit.field_job_settings__name
#: model:ir.model.fields,field_description:odex_benefit.field_main_service__name
#: model:ir.model.fields,field_description:odex_benefit.field_marital_status__name
#: model:ir.model.fields,field_description:odex_benefit.field_member_disabilities__name
#: model:ir.model.fields,field_description:odex_benefit.field_member_diseases__name
#: model:ir.model.fields,field_description:odex_benefit.field_member_education_status__name
#: model:ir.model.fields,field_description:odex_benefit.field_member_hobbies__name
#: model:ir.model.fields,field_description:odex_benefit.field_member_location__name
#: model:ir.model.fields,field_description:odex_benefit.field_needs_categories__name
@ -8730,7 +8751,11 @@ msgid "Not Benefit"
msgstr "غير مستفيد"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_death_reason_settings__not_defined
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__father_dead_reason_id_not_defined
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__father_dead_res_city_id_not_defined
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__father_job_id_not_defined
#: model:ir.model.fields,field_description:odex_benefit.field_job_settings__not_defined
#: model:ir.model.fields,field_description:odex_benefit.field_res_city__not_defined
msgid "Not Defined"
msgstr "غير محدد"
@ -11252,6 +11277,20 @@ msgstr ""
msgid "The account number already exists!"
msgstr ""
#. module: odex_benefit
#: code:addons/odex_benefit/models/death_reason_settings.py:0
#: model:ir.model.constraint,message:odex_benefit.constraint_death_reason_settings_uniq_name
#, python-format
msgid "This death reason already exists!"
msgstr "سبب الوفاة هذا موجود بالفعل!"
#. module: odex_benefit
#: code:addons/odex_benefit/models/job_settings.py:0
#: model:ir.model.constraint,message:odex_benefit.constraint_job_settings_uniq_name
#, python-format
msgid "This job already exists!"
msgstr "هذه الوظيفة موجودة بالفعل!"
#. module: odex_benefit
#: code:addons/odex_benefit/models/benefit.py:0
#, python-format
@ -14529,6 +14568,22 @@ msgstr "إسناد ملف جديد"
msgid "Dear"
msgstr "عزيزي"
#. module: odex_benefit
#: model_terms:ir.ui.view,arch_db:odex_benefit.death_reason_settings_view_form
msgid "Death Reason"
msgstr "سبب الوفاة"
#. module: odex_benefit
#: model:ir.ui.menu,name:odex_benefit.menu_death_reasons_settings
msgid "Death Reason Settings"
msgstr "إعدادات أسباب الوفاة"
#. module: odex_benefit
#: model:ir.actions.act_window,name:odex_benefit.action_death_reason_settings_act_window
#: model_terms:ir.ui.view,arch_db:odex_benefit.death_reason_settings_view_tree
msgid "Death Reasons"
msgstr "أسباب الوفاة"
#. module: odex_benefit
#: code:addons/odex_benefit/wizards/researcher_wizard.py:0
#, python-format

View File

@ -34,4 +34,6 @@ from . import res_city
from . import seasonal_service
# from . import res_config_settings
from . import res_users
from . import res_partner
from . import res_partner
from . import job_settings
from . import death_reason_settings

View File

@ -170,12 +170,16 @@ class GrantBenefitProfile(models.Model):
father_marital = fields.Selection(
[('single', _('Single')), ('married', _('Married')), ('widower', _('Widower')), ('divorced', _('Divorced'))],
_('Marital Status'), default='single', tracking=True)
father_job_id = fields.Many2one('job.settings')
father_job_id_not_defined = fields.Boolean(related="father_job_id.not_defined")
father_job = fields.Char(string='Father Job')
father_id_number_type = fields.Selection([('citizen', _('Citizen')),('resident', _('Resident')),('visitor', _('Visitor'))],string='Father ID number type')
father_birth_date = fields.Date(string="Birth Date")
father_age = fields.Integer(string="Age", compute='_compute_get_father_age')
father_country_id = fields.Many2one('res.country', 'Father Nationality', tracking=True)
father_city_id = fields.Many2one('res.country.city', string='City')
father_dead_reason_id = fields.Many2one('death.reason.settings', string='Dead Reason', required=False)
father_dead_reason_id_not_defined = fields.Boolean(related='father_dead_reason_id.not_defined')
father_dead_reason = fields.Char(string='Dead Reason', required=False)
father_dead_date = fields.Date(string="Father Dead Date")
father_dead_country_id = fields.Many2one('res.country', string='Father Dead Country', tracking=True)

View File

@ -0,0 +1,18 @@
from odoo import models, fields, _
class DeathReasonSettings(models.Model):
_name = 'death.reason.settings'
name = fields.Char(required=True)
not_defined = fields.Boolean(default=False)
active = fields.Boolean(default=True)
_sql_constraints = [
(
'uniq_name',
'UNIQUE( name )',
_('This death reason already exists!')
)
]

View File

@ -0,0 +1,18 @@
from odoo import models, fields, _
class JobSettings(models.Model):
_name = 'job.settings'
name = fields.Char(required=True)
not_defined = fields.Boolean(default=False)
active = fields.Boolean(default=True)
_sql_constraints = [
(
'uniq_name',
'UNIQUE( name )',
_('This job already exists!')
)
]

View File

@ -152,6 +152,10 @@ access_reason_for_return_wizard,access_reason_for_return_wizard,model_reason_for
access_transportation_insurance,access_transportation_insurance,model_transportation_insurance,base.group_user,1,1,1,1
access_res_city,access_res_city,model_res_city,base.group_user,1,0,0,0
access_res_city,access_res_city,model_res_city,odex_benefit.group_benefit_manager,1,1,1,1
access_job_settings,access_job_settings,model_job_settings,base.group_user,1,0,0,0
access_job_settings_manager,access_job_settings.manager,model_job_settings,odex_benefit.group_benefit_manager,1,1,1,1
access_death_reason_settings,access_death_reason_settings,model_death_reason_settings,base.group_user,1,0,0,0
access_death_reason_settings_manager,access_death_reason_settings.manager,model_death_reason_settings,odex_benefit.group_benefit_manager,1,1,1,1
access_grant_benefit_portal_user,access_grant_benefit_portal_user,model_grant_benefit,base.group_portal,1,1,1,1
access_visit_location_otp_wizard,access_visit_location_otp_wizard,model_visit_location_otp_wizard,,1,1,1,1
access_visit_skip_otp_wizard,access_visit_skip_otp_wizard,model_visit_skip_otp_wizard,,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
152 access_transportation_insurance access_transportation_insurance model_transportation_insurance base.group_user 1 1 1 1
153 access_res_city access_res_city model_res_city base.group_user 1 0 0 0
154 access_res_city access_res_city model_res_city odex_benefit.group_benefit_manager 1 1 1 1
155 access_job_settings access_job_settings model_job_settings base.group_user 1 0 0 0
156 access_job_settings_manager access_job_settings.manager model_job_settings odex_benefit.group_benefit_manager 1 1 1 1
157 access_death_reason_settings access_death_reason_settings model_death_reason_settings base.group_user 1 0 0 0
158 access_death_reason_settings_manager access_death_reason_settings.manager model_death_reason_settings odex_benefit.group_benefit_manager 1 1 1 1
159 access_grant_benefit_portal_user access_grant_benefit_portal_user model_grant_benefit base.group_portal 1 1 1 1
160 access_visit_location_otp_wizard access_visit_location_otp_wizard model_visit_location_otp_wizard 1 1 1 1
161 access_visit_skip_otp_wizard access_visit_skip_otp_wizard model_visit_skip_otp_wizard 1 1 1 1

View File

@ -845,6 +845,20 @@
action="suspend_reason_action"
sequence="101"
/>
<menuitem
id="menu_jobs_settings"
name="Jobs Settings"
parent="benefit_tools"
action="odex_benefit.action_job_settings_act_window"
sequence="110"
/>
<menuitem
id="menu_death_reasons_settings"
name="Death Reason Settings"
parent="benefit_tools"
action="odex_benefit.action_death_reason_settings_act_window"
sequence="115"
/>
<menuitem
id="menu_member_location"
name="Member Location"

View File

@ -364,8 +364,16 @@
</group>
<group>
<group>
<field name="father_dead_reason"
attrs="{'required':[('state','=','complete_info')],'readonly':[('state','not in',['draft','new','complete_info'])]}"/>
<field name="father_dead_reason_id_not_defined" invisible="1" />
<field name="father_dead_reason_id" attrs="{
'required':[('state','=','complete_info')],
'readonly':[('state','not in',['draft','new','complete_info'])]}
"/>
<field name="father_dead_reason" attrs="{
'required':[('state','=','complete_info'), ('father_dead_reason_id_not_defined', '=', True)],
'invisible':[('father_dead_reason_id_not_defined', '=', False)],
'readonly':[('state','not in',['draft','new','complete_info'])]}
"/>
<field name="father_dead_date" required="1"
attrs="{'readonly':[('state','not in',['draft','new','complete_info'])]}"/>
<field name="father_dead_country_id" required="1"
@ -389,8 +397,12 @@
widget="many2many_attachment_preview"/>
</group>
<group>
<field name="father_job"
attrs="{'readonly':[('state','not in',['draft','new','complete_info'])]}"/>
<field name="father_job_id_not_defined" invisible="1"/>
<field name="father_job_id" attrs="{'readonly':[('state','not in',['draft','new','complete_info'])]}"/>
<field name="father_job" attrs="{
'readonly': [('state', 'not in', ['draft', 'new', 'complete_info'])],
'invisible': [('father_job_id_not_defined', '=', False)]
}"/>
<field name="father_id_number"
attrs="{'readonly':[('state','not in',['draft','new','complete_info'])]}"
required="1"/>

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="death_reason_settings_view_form" model="ir.ui.view">
<field name="name">death.reason.settings.view.form</field>
<field name="model">death.reason.settings</field>
<field name="arch" type="xml">
<form string="Death Reason">
<sheet>
<group>
<field name="name" />
<field name="not_defined" />
</group>
</sheet>
</form>
</field>
</record>
<record id="death_reason_settings_view_tree" model="ir.ui.view">
<field name="name">death.reason.settings.view.tree</field>
<field name="model">death.reason.settings</field>
<field name="arch" type="xml">
<tree string="Death Reasons">
<field name="name" />
<field name="not_defined" />
</tree>
</field>
</record>
<record id="action_death_reason_settings_act_window" model="ir.actions.act_window">
<field name="type">ir.actions.act_window</field>
<field name="name">Death Reasons</field>
<field name="res_model">death.reason.settings</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">Create New Death Reason
</p>
</field>
</record>
</odoo>

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="job_settings_view_form" model="ir.ui.view">
<field name="name">job.settings.view.form</field>
<field name="model">job.settings</field>
<field name="arch" type="xml">
<form string="Job">
<sheet>
<group>
<field name="name" />
<field name="not_defined" />
</group>
</sheet>
</form>
</field>
</record>
<record id="job_settings_view_tree" model="ir.ui.view">
<field name="name">job.settings.view.tree</field>
<field name="model">job.settings</field>
<field name="arch" type="xml">
<tree string="Jobs">
<field name="name" />
<field name="not_defined" />
</tree>
</field>
</record>
<record id="action_job_settings_act_window" model="ir.actions.act_window">
<field name="type">ir.actions.act_window</field>
<field name="name">Jobs</field>
<field name="res_model">job.settings</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">Create New Job
</p>
</field>
</record>
</odoo>