From 3029e053db99379ae5f55c92cb681054b4f02761 Mon Sep 17 00:00:00 2001 From: younes Date: Sun, 7 Dec 2025 12:06:21 +0100 Subject: [PATCH] [IMP] odex_benefit: IMP benefit --- odex25_benefit/odex_benefit/__manifest__.py | 1 + odex25_benefit/odex_benefit/i18n/ar_001.po | 17 ---- odex25_benefit/odex_benefit/models/benefit.py | 8 +- .../odex_benefit/models/education_period.py | 2 +- .../odex_benefit/models/education_settings.py | 8 -- .../odex_benefit/models/education_status.py | 18 +++- .../odex_benefit/models/family_members.py | 5 +- .../odex_benefit/models/res_partner.py | 12 ++- .../odex_benefit/security/ir.model.access.csv | 1 - .../odex_benefit/views/actions_and_menus.xml | 7 ++ .../odex_benefit/views/education_settings.xml | 31 ------- .../views/education_status_views.xml | 85 ++++++++++++------- .../odex_benefit/views/res_partner_view.xml | 19 +++++ .../security/ir.model.access.csv | 1 - .../takaful_core/views/res_city_view.xml | 2 +- 15 files changed, 114 insertions(+), 103 deletions(-) create mode 100644 odex25_benefit/odex_benefit/views/res_partner_view.xml diff --git a/odex25_benefit/odex_benefit/__manifest__.py b/odex25_benefit/odex_benefit/__manifest__.py index 6abce9800..69012d6b4 100644 --- a/odex25_benefit/odex_benefit/__manifest__.py +++ b/odex25_benefit/odex_benefit/__manifest__.py @@ -66,6 +66,7 @@ 'wizards/visit_location_refused_wizard_view.xml', 'wizards/family_bank_report_wizard.xml', 'views/visit_survey.xml', + 'views/res_partner_view.xml', 'views/actions_and_menus.xml', 'reports/family_bank_report.xml', ], diff --git a/odex25_benefit/odex_benefit/i18n/ar_001.po b/odex25_benefit/odex_benefit/i18n/ar_001.po index faf3f0b4d..bcd589fb8 100644 --- a/odex25_benefit/odex_benefit/i18n/ar_001.po +++ b/odex25_benefit/odex_benefit/i18n/ar_001.po @@ -1793,7 +1793,6 @@ msgstr "اسم المرفق" #: model:ir.model.fields,field_description:odex_benefit.field_domestic_labor__attachment_ids #: model:ir.model.fields,field_description:odex_benefit.field_donations_type__attachment_ids #: model:ir.model.fields,field_description:odex_benefit.field_education_classroom__attachment_ids -#: model:ir.model.fields,field_description:odex_benefit.field_education_entities__attachment_ids #: model:ir.model.fields,field_description:odex_benefit.field_education_illiterate_reason__attachment_ids #: model:ir.model.fields,field_description:odex_benefit.field_education_level__attachment_ids #: model:ir.model.fields,field_description:odex_benefit.field_education_result__attachment_ids @@ -3606,7 +3605,6 @@ msgstr "" #: model:ir.model.fields,field_description:odex_benefit.field_domestic_labor__create_uid #: model:ir.model.fields,field_description:odex_benefit.field_donations_type__create_uid #: model:ir.model.fields,field_description:odex_benefit.field_education_classroom__create_uid -#: model:ir.model.fields,field_description:odex_benefit.field_education_entities__create_uid #: model:ir.model.fields,field_description:odex_benefit.field_education_illiterate_reason__create_uid #: model:ir.model.fields,field_description:odex_benefit.field_education_level__create_uid #: model:ir.model.fields,field_description:odex_benefit.field_education_result__create_uid @@ -3733,7 +3731,6 @@ msgstr "هل تم إنشاءه من البوابة؟" #: model:ir.model.fields,field_description:odex_benefit.field_domestic_labor__create_date #: model:ir.model.fields,field_description:odex_benefit.field_donations_type__create_date #: model:ir.model.fields,field_description:odex_benefit.field_education_classroom__create_date -#: model:ir.model.fields,field_description:odex_benefit.field_education_entities__create_date #: model:ir.model.fields,field_description:odex_benefit.field_education_illiterate_reason__create_date #: model:ir.model.fields,field_description:odex_benefit.field_education_level__create_date #: model:ir.model.fields,field_description:odex_benefit.field_education_result__create_date @@ -4356,7 +4353,6 @@ msgstr "نوع المرض" #: model:ir.model.fields,field_description:odex_benefit.field_domestic_labor__display_name #: model:ir.model.fields,field_description:odex_benefit.field_donations_type__display_name #: model:ir.model.fields,field_description:odex_benefit.field_education_classroom__display_name -#: model:ir.model.fields,field_description:odex_benefit.field_education_entities__display_name #: model:ir.model.fields,field_description:odex_benefit.field_education_illiterate_reason__display_name #: model:ir.model.fields,field_description:odex_benefit.field_education_level__display_name #: model:ir.model.fields,field_description:odex_benefit.field_education_result__display_name @@ -4635,8 +4631,6 @@ msgstr "تاريخ نهاية المرحلة التعليمية" #: model:ir.actions.act_window,name:odex_benefit.education_entities_action #: model:ir.model.fields,field_description:odex_benefit.field_education_period__education_entity_ids #: model:ir.ui.menu,name:odex_benefit.education_entities_menu -#: model_terms:ir.ui.view,arch_db:odex_benefit.education_entities_form -#: model_terms:ir.ui.view,arch_db:odex_benefit.education_entities_tree msgid "Education Entities" msgstr "الجهات التعليمية" @@ -4665,7 +4659,6 @@ msgstr "اسم الجهة التعليمية" #. module: odex_benefit #: model:ir.actions.act_window,name:odex_benefit.education_level_action #: model:ir.model.fields,field_description:odex_benefit.field_education_classroom__education_level_id -#: model:ir.model.fields,field_description:odex_benefit.field_education_entities__education_level_id #: model:ir.ui.menu,name:odex_benefit.education_level_menu #: model_terms:ir.ui.view,arch_db:odex_benefit.education_level_form #: model_terms:ir.ui.view,arch_db:odex_benefit.education_level_tree @@ -6065,7 +6058,6 @@ msgstr "رقم الآي بان" #: model:ir.model.fields,field_description:odex_benefit.field_domestic_labor__id #: model:ir.model.fields,field_description:odex_benefit.field_donations_type__id #: model:ir.model.fields,field_description:odex_benefit.field_education_classroom__id -#: model:ir.model.fields,field_description:odex_benefit.field_education_entities__id #: model:ir.model.fields,field_description:odex_benefit.field_education_illiterate_reason__id #: model:ir.model.fields,field_description:odex_benefit.field_education_level__id #: model:ir.model.fields,field_description:odex_benefit.field_education_result__id @@ -7164,7 +7156,6 @@ msgstr "الجهة التعليمية السابقة" #: model:ir.model.fields,field_description:odex_benefit.field_domestic_labor____last_update #: model:ir.model.fields,field_description:odex_benefit.field_donations_type____last_update #: model:ir.model.fields,field_description:odex_benefit.field_education_classroom____last_update -#: model:ir.model.fields,field_description:odex_benefit.field_education_entities____last_update #: model:ir.model.fields,field_description:odex_benefit.field_education_illiterate_reason____last_update #: model:ir.model.fields,field_description:odex_benefit.field_education_level____last_update #: model:ir.model.fields,field_description:odex_benefit.field_education_result____last_update @@ -7311,7 +7302,6 @@ msgstr "التخصص السابق" #: model:ir.model.fields,field_description:odex_benefit.field_domestic_labor__write_uid #: model:ir.model.fields,field_description:odex_benefit.field_donations_type__write_uid #: model:ir.model.fields,field_description:odex_benefit.field_education_classroom__write_uid -#: model:ir.model.fields,field_description:odex_benefit.field_education_entities__write_uid #: model:ir.model.fields,field_description:odex_benefit.field_education_illiterate_reason__write_uid #: model:ir.model.fields,field_description:odex_benefit.field_education_level__write_uid #: model:ir.model.fields,field_description:odex_benefit.field_education_result__write_uid @@ -7433,7 +7423,6 @@ msgstr "آخر تحديث بواسطة" #: model:ir.model.fields,field_description:odex_benefit.field_domestic_labor__write_date #: model:ir.model.fields,field_description:odex_benefit.field_donations_type__write_date #: model:ir.model.fields,field_description:odex_benefit.field_education_classroom__write_date -#: model:ir.model.fields,field_description:odex_benefit.field_education_entities__write_date #: model:ir.model.fields,field_description:odex_benefit.field_education_illiterate_reason__write_date #: model:ir.model.fields,field_description:odex_benefit.field_education_level__write_date #: model:ir.model.fields,field_description:odex_benefit.field_education_result__write_date @@ -8358,7 +8347,6 @@ msgstr "نهاية الوقت المعين للنشاط" #: model:ir.model.fields,field_description:odex_benefit.field_diseases_settings__name #: model:ir.model.fields,field_description:odex_benefit.field_donations_type__name #: model:ir.model.fields,field_description:odex_benefit.field_education_classroom__name -#: model:ir.model.fields,field_description:odex_benefit.field_education_entities__name #: model:ir.model.fields,field_description:odex_benefit.field_education_level__name #: model:ir.model.fields,field_description:odex_benefit.field_education_result__name #: model:ir.model.fields,field_description:odex_benefit.field_exception_reason__name @@ -12791,11 +12779,6 @@ msgstr "متعلم" msgid "education.classroom" msgstr "" -#. module: odex_benefit -#: model:ir.model,name:odex_benefit.model_education_entities -msgid "education.entities" -msgstr "الجهات التعليمية" - #. module: odex_benefit #: model:ir.model,name:odex_benefit.model_education_level msgid "education.level" diff --git a/odex25_benefit/odex_benefit/models/benefit.py b/odex25_benefit/odex_benefit/models/benefit.py index 98aebe0d1..823b805de 100644 --- a/odex25_benefit/odex_benefit/models/benefit.py +++ b/odex25_benefit/odex_benefit/models/benefit.py @@ -257,8 +257,8 @@ class GrantBenefitProfile(models.Model): last_education_entity = fields.Selection(string='Last Education Entity', selection=[('governmental', 'Governmental'), ('special', 'Special')]) - entities = fields.Many2one("education.entities", string='Entity') - last_entities = fields.Many2one("education.entities", string='Last Entity') + entities = fields.Many2one("res.partner", string='Entity') + last_entities = fields.Many2one("res.partner", string='Last Entity') education_levels = fields.Many2one("education.level", string='Education Levels') last_education_levels = fields.Many2one("education.level", string='Last Education Levels') nearest_literacy_school = fields.Char(string='The Nearest Literacy School', required=False) @@ -560,7 +560,7 @@ class GrantBenefitProfile(models.Model): replacement_intermittent_reason = fields.Many2one('education.illiterate.reason', string='Intermittent Reason') replacement_education_entity = fields.Selection(string='Education Entity', selection=[('governmental', 'Governmental'), ('special', 'Special')]) - replacement_entities = fields.Many2one("education.entities", string='Entity') + replacement_entities = fields.Many2one("res.partner", string='Entity') replacement_specialization_ids = fields.Many2one('specialization.specialization', string='specialization') replacement_classroom = fields.Many2one('education.classroom', string='Classroom') replacement_degree = fields.Many2one('education.result', string='Degree') @@ -571,7 +571,7 @@ class GrantBenefitProfile(models.Model): replacement_last_education_entity = fields.Selection(string='Last Education Entity', selection=[('governmental', 'Governmental'), ('special', 'Special')]) - replacement_last_entities = fields.Many2one("education.entities", string='Last Entity') + replacement_last_entities = fields.Many2one("res.partner", string='Last Entity') replacement_education_levels = fields.Many2one("education.level", string='Education Levels') replacement_last_education_levels = fields.Many2one("education.level", string='Last Education Levels') replacement_last_specialization_ids = fields.Many2one('specialization.specialization', string='Last Specialization') diff --git a/odex25_benefit/odex_benefit/models/education_period.py b/odex25_benefit/odex_benefit/models/education_period.py index 2764011d3..be39b95ec 100644 --- a/odex25_benefit/odex_benefit/models/education_period.py +++ b/odex25_benefit/odex_benefit/models/education_period.py @@ -10,4 +10,4 @@ class EducationPeriod(models.Model): start_date = fields.Date(string='Period Start Date', required=True) end_date = fields.Date(string='Period End Date', required=True) education_level_ids = fields.Many2many('education.level', string='Education Levels') - education_entity_ids = fields.Many2many("education.entities", string='Education Entities') \ No newline at end of file + education_entity_ids = fields.Many2many("res.partner", string='Education Entities') \ No newline at end of file diff --git a/odex25_benefit/odex_benefit/models/education_settings.py b/odex25_benefit/odex_benefit/models/education_settings.py index e3bdcc8ed..a19b63721 100644 --- a/odex25_benefit/odex_benefit/models/education_settings.py +++ b/odex25_benefit/odex_benefit/models/education_settings.py @@ -1,13 +1,5 @@ from odoo import fields, models,api - -class EducationEntities(models.Model): - _name = 'education.entities' - - name = fields.Char(string='Name') - education_level_id = fields.Many2one('education.level', string='Education Level') - - class EducationLevel(models.Model): _name = 'education.level' diff --git a/odex25_benefit/odex_benefit/models/education_status.py b/odex25_benefit/odex_benefit/models/education_status.py index b3970ea30..a43f83266 100644 --- a/odex25_benefit/odex_benefit/models/education_status.py +++ b/odex25_benefit/odex_benefit/models/education_status.py @@ -59,8 +59,8 @@ class EducationStatus(models.Model): string='Educational Certificate' ) education_levels = fields.Many2one("education.level", string='Education Levels') - entities = fields.Many2one("education.entities", string='Entity', - domain="[('education_level_id', '=', education_levels)]") + entities = fields.Many2one("res.partner", string='Entity', + domain="[('education_level_ids', 'in', education_levels)]") education_period_id = fields.Many2one("education.period", string='Education Period', domain="['|', '|', ('education_level_ids', 'in', education_levels), ('education_level_ids', '=', False),'|',('education_entity_ids', 'in', entities), ('education_entity_ids', '=', False)]") classroom = fields.Many2one('education.classroom', string='Classroom', domain="[('education_level_id', '=', education_levels)]") @@ -80,6 +80,20 @@ class EducationStatus(models.Model): delay_reason_id = fields.Many2one('education.delay.reason', string='Delay Reason') weak_course_ids = fields.One2many('weak.course', 'education_status_id') + @api.onchange('percentage', 'rate_type') + def _onchange_percentage_rate_type(self): + for rec in self: + rec.degree = False + + if rec.percentage and rec.rate_type: + degree_rec = self.env['education.result'].search([ + ('rate_type', '=', rec.rate_type), + ('min_degree', '<=', rec.percentage), + ('max_degree', '>=', rec.percentage), + ], limit=1) + + rec.degree = degree_rec.id if degree_rec else False + @api.depends( 'mother_grant_benefit_id', 'mother_grant_benefit_id.education_status', diff --git a/odex25_benefit/odex_benefit/models/family_members.py b/odex25_benefit/odex_benefit/models/family_members.py index ed6315b9f..573e33f78 100644 --- a/odex25_benefit/odex_benefit/models/family_members.py +++ b/odex25_benefit/odex_benefit/models/family_members.py @@ -120,8 +120,8 @@ class FamilyMemberProfile(models.Model): last_education_entity = fields.Selection(string='Last Education Entity', selection=[('governmental', 'Governmental'), ('special', 'Special')]) - entities = fields.Many2one("education.entities", string='Entity') - last_entities = fields.Many2one("education.entities", string='Last Entity') + entities = fields.Many2one("res.partner", string='Entity') + last_entities = fields.Many2one("res.partner", string='Last Entity') education_levels = fields.Many2one("education.level", string='Education Levels') last_education_levels = fields.Many2one("education.level", string='Last Education Levels') nearest_literacy_school = fields.Char(string='The Nearest Literacy School', required=False) @@ -181,7 +181,6 @@ class FamilyMemberProfile(models.Model): # replacement_education_entity = fields.Selection(string='Education Entity', # selection=[('governmental', 'Governmental'), # ('special', 'Special')]) - # replacement_entities = fields.Many2one("education.entities", string='Entity') # replacement_specialization_ids = fields.Many2one('specialization.specialization', string='specialization') # replacement_classroom = fields.Many2one('education.classroom', string='Classroom') # replacement_degree = fields.Many2one('education.result', string='Degree') diff --git a/odex25_benefit/odex_benefit/models/res_partner.py b/odex25_benefit/odex_benefit/models/res_partner.py index 89a992279..0b827a030 100644 --- a/odex25_benefit/odex_benefit/models/res_partner.py +++ b/odex25_benefit/odex_benefit/models/res_partner.py @@ -5,9 +5,15 @@ import logging _logger = logging.getLogger(__name__) + class ResPartner(models.Model): _inherit = "res.partner" + is_education_entity = fields.Boolean(string="Is Education Entity", default=False, ) + education_level_ids = fields.Many2many( + comodel_name='education.level', relation='res_partner_education_level_rel', + column1='partner_id', column2='level_id', string='Education Levels', ) + def unlink(self): env = self.env @@ -17,8 +23,10 @@ class ResPartner(models.Model): ('state', 'not in', ['draft', 'new']) ]) if grants: - grant_info = ', '.join('[%s: %s]' % (g.code or g.name or g.id, dict(g._fields['state'].selection).get(g.state)) for g in grants) + grant_info = ', '.join( + '[%s: %s]' % (g.code or g.name or g.id, dict(g._fields['state'].selection).get(g.state)) for g in + grants) raise ValidationError( _("Cannot delete partner '%s': linked to Benefits - Profiles %s") % (partner.name, grant_info) ) - return super().unlink() \ No newline at end of file + return super().unlink() diff --git a/odex25_benefit/odex_benefit/security/ir.model.access.csv b/odex25_benefit/odex_benefit/security/ir.model.access.csv index d5036e1ec..af52f06f8 100644 --- a/odex25_benefit/odex_benefit/security/ir.model.access.csv +++ b/odex25_benefit/odex_benefit/security/ir.model.access.csv @@ -104,7 +104,6 @@ access_expenses_type,access_expenses_type,model_expenses_type,base.group_user,1, access_survey_setting,access_survey_setting,model_survey_setting,,1,1,1,1 access_changes_requests,access_changes_requests,model_changes_requests,,1,1,1,1 access_entity_black_list_wizard,access_entity_black_list_wizard,model_entity_black_list_wizard,,1,1,1,1 -access_education_entities,access_education_entities,model_education_entities,,1,1,1,1 access_education_level,access_education_level,model_education_level,,1,1,1,1 access_education_period,access_education_period,model_education_period,,1,1,1,1 access_education_exam_type,access_education_exam_type,model_education_exam_type,,1,1,1,1 diff --git a/odex25_benefit/odex_benefit/views/actions_and_menus.xml b/odex25_benefit/odex_benefit/views/actions_and_menus.xml index 2596295b4..f2b584924 100644 --- a/odex25_benefit/odex_benefit/views/actions_and_menus.xml +++ b/odex25_benefit/odex_benefit/views/actions_and_menus.xml @@ -745,6 +745,13 @@

+ + Education Entities + res.partner + kanban,form,tree + [('is_education_entity','=', True)] + {'default_is_company':True,'default_is_education_entity':True} + diff --git a/odex25_benefit/odex_benefit/views/education_settings.xml b/odex25_benefit/odex_benefit/views/education_settings.xml index 86c518023..0b3b6a6bb 100644 --- a/odex25_benefit/odex_benefit/views/education_settings.xml +++ b/odex25_benefit/odex_benefit/views/education_settings.xml @@ -1,36 +1,5 @@ - - - education.entities.form - education.entities - -
- - - - - - -
-
-
- - education.entities.tree - education.entities - - - - - - - - - - Education Entities - education.entities - tree,form - education.level.form diff --git a/odex25_benefit/odex_benefit/views/education_status_views.xml b/odex25_benefit/odex_benefit/views/education_status_views.xml index 1c90c10d0..6b1604395 100644 --- a/odex25_benefit/odex_benefit/views/education_status_views.xml +++ b/odex25_benefit/odex_benefit/views/education_status_views.xml @@ -7,17 +7,21 @@ - - - + + @@ -30,7 +34,8 @@ - + @@ -59,12 +64,33 @@ - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + - - - - + + + + diff --git a/odex25_benefit/odex_benefit/views/res_partner_view.xml b/odex25_benefit/odex_benefit/views/res_partner_view.xml new file mode 100644 index 000000000..4ab9d88f6 --- /dev/null +++ b/odex25_benefit/odex_benefit/views/res_partner_view.xml @@ -0,0 +1,19 @@ + + + + + res.partner + res.partner + + + + + + + + + + diff --git a/odex25_benefit/odex_benefit_project/security/ir.model.access.csv b/odex25_benefit/odex_benefit_project/security/ir.model.access.csv index 8bb54bafe..8c1b24812 100644 --- a/odex25_benefit/odex_benefit_project/security/ir.model.access.csv +++ b/odex25_benefit/odex_benefit_project/security/ir.model.access.csv @@ -100,7 +100,6 @@ access_expenses_type,access_expenses_type,model_expenses_type,base.group_user,1, access_survey_setting,access_survey_setting,model_survey_setting,,1,1,1,1 access_changes_requests,access_changes_requests,model_changes_requests,,1,1,1,1 access_entity_black_list_wizard,access_entity_black_list_wizard,model_entity_black_list_wizard,,1,1,1,1 -access_education_entities,access_education_entities,model_education_entities,,1,1,1,1 access_education_level,access_education_level,model_education_level,,1,1,1,1 access_education_classroom,access_education_classroom,model_education_classroom,,1,1,1,1 access_education_result,access_education_result,model_education_result,,1,1,1,1 diff --git a/odex25_benefit/takaful_core/views/res_city_view.xml b/odex25_benefit/takaful_core/views/res_city_view.xml index a99f02453..0bb131406 100644 --- a/odex25_benefit/takaful_core/views/res_city_view.xml +++ b/odex25_benefit/takaful_core/views/res_city_view.xml @@ -17,7 +17,7 @@ - +