education notes tasks 2 and 3 => odex_benefit

This commit is contained in:
MahmoudSalahEXP 2025-10-07 20:39:34 +03:00
parent 87030cd1cf
commit 859e8fd5d4
16 changed files with 348 additions and 56 deletions

View File

@ -24,6 +24,7 @@
'views/family_members.xml',
'views/family_complaints.xml',
'views/education_status_views.xml',
'views/education_period.xml',
'views/seasonal_service_view.xml',
'wizards/researcher_wizard.xml',
@ -65,7 +66,7 @@
'wizards/visit_location_refused_wizard_view.xml',
'views/visit_survey.xml',
'views/actions_and_menus.xml',
],
],
'external_dependencies': {
'python': ['num2words'],
},

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-07 13:07+0000\n"
"PO-Revision-Date: 2025-10-07 13:07+0000\n"
"POT-Creation-Date: 2025-10-07 16:59+0000\n"
"PO-Revision-Date: 2025-10-07 16:59+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@ -2317,8 +2317,10 @@ msgstr "اسم المرفق"
#: model:ir.model.fields,field_description:odex_benefit.field_education_classroom__attachment_ids
#: model:ir.model.fields,field_description:odex_benefit.field_education_delay_reason__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_exam_type__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_period__attachment_ids
#: model:ir.model.fields,field_description:odex_benefit.field_education_result__attachment_ids
#: model:ir.model.fields,field_description:odex_benefit.field_education_status__attachment_ids
#: model:ir.model.fields,field_description:odex_benefit.field_electrical_devices__attachment_ids
@ -2331,6 +2333,7 @@ msgstr "اسم المرفق"
#: model:ir.model.fields,field_description:odex_benefit.field_external_request__attachment_ids
#: model:ir.model.fields,field_description:odex_benefit.field_family_complaints__attachment_ids
#: model:ir.model.fields,field_description:odex_benefit.field_family_debits__attachment_ids
#: model:ir.model.fields,field_description:odex_benefit.field_family_member_exam__attachment_ids
#: model:ir.model.fields,field_description:odex_benefit.field_family_validation_setting__attachment_ids
#: model:ir.model.fields,field_description:odex_benefit.field_food_basket_benefits_line__attachment_ids
#: model:ir.model.fields,field_description:odex_benefit.field_food_basket_line__attachment_ids
@ -4230,6 +4233,11 @@ msgstr ""
msgid "Create the receive food basket"
msgstr ""
#. module: odex_benefit
#: model_terms:ir.actions.act_window,help:odex_benefit.education_period_action
msgid "Create your first education period!"
msgstr "قم بإنشاء أول فترة تعليمية"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_age_category__create_uid
#: model:ir.model.fields,field_description:odex_benefit.field_appliances_furniture__create_uid
@ -4278,8 +4286,10 @@ msgstr ""
#: model:ir.model.fields,field_description:odex_benefit.field_education_classroom__create_uid
#: model:ir.model.fields,field_description:odex_benefit.field_education_delay_reason__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_exam_type__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_period__create_uid
#: model:ir.model.fields,field_description:odex_benefit.field_education_result__create_uid
#: model:ir.model.fields,field_description:odex_benefit.field_education_status__create_uid
#: model:ir.model.fields,field_description:odex_benefit.field_electrical_devices__create_uid
@ -4298,6 +4308,7 @@ msgstr ""
#: model:ir.model.fields,field_description:odex_benefit.field_family_complaints__create_uid
#: model:ir.model.fields,field_description:odex_benefit.field_family_debits__create_uid
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__create_uid
#: model:ir.model.fields,field_description:odex_benefit.field_family_member_exam__create_uid
#: model:ir.model.fields,field_description:odex_benefit.field_family_validation_setting__create_uid
#: model:ir.model.fields,field_description:odex_benefit.field_food_basket_benefits_line__create_uid
#: model:ir.model.fields,field_description:odex_benefit.field_food_basket_line__create_uid
@ -4431,8 +4442,10 @@ msgstr "انشئ بواسطة"
#: model:ir.model.fields,field_description:odex_benefit.field_education_classroom__create_date
#: model:ir.model.fields,field_description:odex_benefit.field_education_delay_reason__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_exam_type__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_period__create_date
#: model:ir.model.fields,field_description:odex_benefit.field_education_result__create_date
#: model:ir.model.fields,field_description:odex_benefit.field_education_status__create_date
#: model:ir.model.fields,field_description:odex_benefit.field_electrical_devices__create_date
@ -4451,6 +4464,7 @@ msgstr "انشئ بواسطة"
#: model:ir.model.fields,field_description:odex_benefit.field_family_complaints__create_date
#: model:ir.model.fields,field_description:odex_benefit.field_family_debits__create_date
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__create_date
#: model:ir.model.fields,field_description:odex_benefit.field_family_member_exam__create_date
#: model:ir.model.fields,field_description:odex_benefit.field_family_validation_setting__create_date
#: model:ir.model.fields,field_description:odex_benefit.field_food_basket_benefits_line__create_date
#: model:ir.model.fields,field_description:odex_benefit.field_food_basket_line__create_date
@ -5048,8 +5062,10 @@ msgstr "نوع المرض"
#: model:ir.model.fields,field_description:odex_benefit.field_education_classroom__display_name
#: model:ir.model.fields,field_description:odex_benefit.field_education_delay_reason__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_exam_type__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_period__display_name
#: model:ir.model.fields,field_description:odex_benefit.field_education_result__display_name
#: model:ir.model.fields,field_description:odex_benefit.field_education_status__display_name
#: model:ir.model.fields,field_description:odex_benefit.field_electrical_devices__display_name
@ -5068,6 +5084,7 @@ msgstr "نوع المرض"
#: model:ir.model.fields,field_description:odex_benefit.field_family_complaints__display_name
#: model:ir.model.fields,field_description:odex_benefit.field_family_debits__display_name
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__display_name
#: model:ir.model.fields,field_description:odex_benefit.field_family_member_exam__display_name
#: model:ir.model.fields,field_description:odex_benefit.field_family_validation_setting__display_name
#: model:ir.model.fields,field_description:odex_benefit.field_food_basket_benefits_line__display_name
#: model:ir.model.fields,field_description:odex_benefit.field_food_basket_line__display_name
@ -5362,7 +5379,7 @@ msgstr "الصفوف الدراسية"
#: model:ir.model,name:odex_benefit.model_education_delay_reason
#: model:ir.ui.menu,name:odex_benefit.delay_reason_menu
msgid "Education Delay Reason"
msgstr ""
msgstr "أسباب تأخر التعليم"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_education_status__education_end_date
@ -5374,6 +5391,7 @@ msgstr "تاريخ نهاية المرحلة التعليمية"
#. module: odex_benefit
#: 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
@ -5413,12 +5431,7 @@ msgid "Education Level"
msgstr "المراحل التعليمية"
#. module: odex_benefit
#: 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
msgid "Education Level"
msgstr "المرحلة التعليمية"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_education_period__education_level_ids
#: model:ir.model.fields,field_description:odex_benefit.field_education_status__education_levels
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__education_levels
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__education_levels
@ -5426,6 +5439,20 @@ msgstr "المرحلة التعليمية"
msgid "Education Levels"
msgstr "المرحلة التعليمية"
#. module: odex_benefit
#: model:ir.model,name:odex_benefit.model_education_period
#: model:ir.model.fields,field_description:odex_benefit.field_education_status__education_period_id
msgid "Education Period"
msgstr "الفترة التعليمية"
#. module: odex_benefit
#: model:ir.actions.act_window,name:odex_benefit.education_period_action
#: model:ir.ui.menu,name:odex_benefit.education_period_menu
#: model_terms:ir.ui.view,arch_db:odex_benefit.education_period_view_form
#: model_terms:ir.ui.view,arch_db:odex_benefit.education_period_view_list
msgid "Education Periods"
msgstr "الفترات التعليمية"
#. module: odex_benefit
#: model:ir.actions.act_window,name:odex_benefit.education_result_action
#: model:ir.ui.menu,name:odex_benefit.education_result_menu
@ -5732,6 +5759,52 @@ msgstr "استمارة التقييم"
msgid "Every Period"
msgstr "مرة كل فترة"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__exam_ids
msgid "Exam"
msgstr ""
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_family_member_exam__exam_attachment
msgid "Exam Attachment"
msgstr "المرفق"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_family_member_exam__exam_date
msgid "Exam Date"
msgstr "تاريخ الإختبار"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_family_member_exam__exam_degree
msgid "Exam Degree"
msgstr "درجة الإختبار"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_family_member_exam__exam_id
msgid "Exam Type"
msgstr "نوع الإختبار"
#. module: odex_benefit
#: code:addons/odex_benefit/models/benefit_config.py:0
#: model:ir.model.fields.selection,name:odex_benefit.selection__attachments_settings__attach_type__exams_attach
#, python-format
msgid "Exams Attach"
msgstr "مرفقات الإختبارات"
#. module: odex_benefit
#: model_terms:ir.ui.view,arch_db:odex_benefit.family_member_form
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
msgid "Exams Degrees"
msgstr "درجات الإختبارات"
#. module: odex_benefit
#: model:ir.actions.act_window,name:odex_benefit.education_exam_type_action
#: model:ir.ui.menu,name:odex_benefit.education_exam_type_menu
#: model_terms:ir.ui.view,arch_db:odex_benefit.education_exam_type_form
#: model_terms:ir.ui.view,arch_db:odex_benefit.education_exam_type_tree
msgid "Exams Type"
msgstr "أنواع الإختبارات"
#. module: odex_benefit
#: model:ir.model.fields.selection,name:odex_benefit.selection__benefit_housing__housing_cat__excellent
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__housing_cat__excellent
@ -6161,10 +6234,16 @@ msgid "Family Loans"
msgstr "ديون الأسرة"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_family_member_exam__member_id
#: model_terms:ir.ui.view,arch_db:odex_benefit.family_member_form
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
msgid "Family Member"
msgstr ""
msgstr "الفرد"
#. module: odex_benefit
#: model:ir.model,name:odex_benefit.model_family_member_exam
msgid "Family Member Exam"
msgstr "إختبارات الفرد"
#. module: odex_benefit
#: code:addons/odex_benefit/models/benefit.py:0
@ -7324,8 +7403,10 @@ msgstr "مرفق الآيبان مطلوب."
#: model:ir.model.fields,field_description:odex_benefit.field_education_classroom__id
#: model:ir.model.fields,field_description:odex_benefit.field_education_delay_reason__id
#: model:ir.model.fields,field_description:odex_benefit.field_education_entities__id
#: model:ir.model.fields,field_description:odex_benefit.field_education_exam_type__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_period__id
#: model:ir.model.fields,field_description:odex_benefit.field_education_result__id
#: model:ir.model.fields,field_description:odex_benefit.field_education_status__id
#: model:ir.model.fields,field_description:odex_benefit.field_electrical_devices__id
@ -7344,6 +7425,7 @@ msgstr "مرفق الآيبان مطلوب."
#: model:ir.model.fields,field_description:odex_benefit.field_family_complaints__id
#: model:ir.model.fields,field_description:odex_benefit.field_family_debits__id
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__id
#: model:ir.model.fields,field_description:odex_benefit.field_family_member_exam__id
#: model:ir.model.fields,field_description:odex_benefit.field_family_validation_setting__id
#: model:ir.model.fields,field_description:odex_benefit.field_food_basket_benefits_line__id
#: model:ir.model.fields,field_description:odex_benefit.field_food_basket_line__id
@ -8576,8 +8658,10 @@ msgstr "الجهة التعليمية السابقة"
#: model:ir.model.fields,field_description:odex_benefit.field_education_classroom____last_update
#: model:ir.model.fields,field_description:odex_benefit.field_education_delay_reason____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_exam_type____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_period____last_update
#: model:ir.model.fields,field_description:odex_benefit.field_education_result____last_update
#: model:ir.model.fields,field_description:odex_benefit.field_education_status____last_update
#: model:ir.model.fields,field_description:odex_benefit.field_electrical_devices____last_update
@ -8596,6 +8680,7 @@ msgstr "الجهة التعليمية السابقة"
#: model:ir.model.fields,field_description:odex_benefit.field_family_complaints____last_update
#: model:ir.model.fields,field_description:odex_benefit.field_family_debits____last_update
#: model:ir.model.fields,field_description:odex_benefit.field_family_member____last_update
#: model:ir.model.fields,field_description:odex_benefit.field_family_member_exam____last_update
#: model:ir.model.fields,field_description:odex_benefit.field_family_validation_setting____last_update
#: model:ir.model.fields,field_description:odex_benefit.field_food_basket_benefits_line____last_update
#: model:ir.model.fields,field_description:odex_benefit.field_food_basket_line____last_update
@ -8754,8 +8839,10 @@ msgstr "التخصص السابق"
#: model:ir.model.fields,field_description:odex_benefit.field_education_classroom__write_uid
#: model:ir.model.fields,field_description:odex_benefit.field_education_delay_reason__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_exam_type__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_period__write_uid
#: model:ir.model.fields,field_description:odex_benefit.field_education_result__write_uid
#: model:ir.model.fields,field_description:odex_benefit.field_education_status__write_uid
#: model:ir.model.fields,field_description:odex_benefit.field_electrical_devices__write_uid
@ -8774,6 +8861,7 @@ msgstr "التخصص السابق"
#: model:ir.model.fields,field_description:odex_benefit.field_family_complaints__write_uid
#: model:ir.model.fields,field_description:odex_benefit.field_family_debits__write_uid
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__write_uid
#: model:ir.model.fields,field_description:odex_benefit.field_family_member_exam__write_uid
#: model:ir.model.fields,field_description:odex_benefit.field_family_validation_setting__write_uid
#: model:ir.model.fields,field_description:odex_benefit.field_food_basket_benefits_line__write_uid
#: model:ir.model.fields,field_description:odex_benefit.field_food_basket_line__write_uid
@ -8907,8 +8995,10 @@ msgstr "آخر تحديث بواسطة"
#: model:ir.model.fields,field_description:odex_benefit.field_education_classroom__write_date
#: model:ir.model.fields,field_description:odex_benefit.field_education_delay_reason__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_exam_type__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_period__write_date
#: model:ir.model.fields,field_description:odex_benefit.field_education_result__write_date
#: model:ir.model.fields,field_description:odex_benefit.field_education_status__write_date
#: model:ir.model.fields,field_description:odex_benefit.field_electrical_devices__write_date
@ -8927,6 +9017,7 @@ msgstr "آخر تحديث بواسطة"
#: model:ir.model.fields,field_description:odex_benefit.field_family_complaints__write_date
#: model:ir.model.fields,field_description:odex_benefit.field_family_debits__write_date
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__write_date
#: model:ir.model.fields,field_description:odex_benefit.field_family_member_exam__write_date
#: model:ir.model.fields,field_description:odex_benefit.field_family_validation_setting__write_date
#: model:ir.model.fields,field_description:odex_benefit.field_food_basket_benefits_line__write_date
#: model:ir.model.fields,field_description:odex_benefit.field_food_basket_line__write_date
@ -9567,7 +9658,6 @@ msgstr "الاجتماعات"
#: model:ir.model.fields,field_description:odex_benefit.field_researcher_member_wizard__member_id
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__member_id
#: model:ir.model.fields,field_description:odex_benefit.field_suspend_reason_wizard__member_id
#: model:ir.model.fields.selection,name:odex_benefit.selection__location_settings__location_type__member
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__benefit_type__member
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__benefit_type__member
#, python-format
@ -10123,7 +10213,9 @@ msgstr ""
#: 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_exam_type__name
#: model:ir.model.fields,field_description:odex_benefit.field_education_level__name
#: model:ir.model.fields,field_description:odex_benefit.field_education_period__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
#: model:ir.model.fields,field_description:odex_benefit.field_expenses_type__name
@ -11179,6 +11271,16 @@ msgstr "النسبة"
msgid "Period"
msgstr ""
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_education_period__end_date
msgid "Period End Date"
msgstr "تاريخ النهاية"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_education_period__start_date
msgid "Period Start Date"
msgstr "تاريخ البداية"
#. module: odex_benefit
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__service_category__permanent
msgid "Permanent"
@ -16187,6 +16289,11 @@ msgstr ""
msgid "education.entities"
msgstr "الجهات التعليمية"
#. module: odex_benefit
#: model:ir.model,name:odex_benefit.model_education_exam_type
msgid "education.exam.type"
msgstr ""
#. module: odex_benefit
#: model:ir.model,name:odex_benefit.model_education_level
msgid "education.level"
@ -17426,6 +17533,11 @@ msgstr ""
msgid "الرجاء استخدام هذه المفاتيح لاستخدام في القالب :"
msgstr ""
#. module: odex_benefit
#: model:ir.model.fields.selection,name:odex_benefit.selection__location_settings__location_type__member
msgid "الفرد"
msgstr ""
#. module: odex_benefit
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_kanban
msgid "الكود:"

View File

@ -21,6 +21,8 @@ from . import family_validation_setting
from . import expenses_type
from . import changes_requests
from . import education_settings
from . import education_period
from . import family_member_exam
from . import hr_department
from . import account_move_line
from . import family_expense

View File

@ -757,7 +757,7 @@ class AttachmentsSettings(models.Model):
disabilities_id = fields.Many2one('disabilities.settings',string='Disabilities')
attach_type = fields.Selection(
[('family_attach', _('Family Attach')), ('member_attach', _('Member Attach')), ('hobbies_attach', _('Hobbies Attach')),
('diseases_attach', _('Diseases Attach')), ('disabilities_attach', _('Disabilities Attach')), ('income_attach', _('Income Attach'))])
('diseases_attach', _('Diseases Attach')), ('disabilities_attach', _('Disabilities Attach')), ('income_attach', _('Income Attach')), ('exams_attach', _('Exams Attach'))])
is_required = fields.Boolean(string='Is Required?')
is_default = fields.Boolean(string='Is Default?')
show_in_portal = fields.Boolean(default=True)

View File

@ -0,0 +1,13 @@
from odoo import fields, models,api
class EducationPeriod(models.Model):
_name = 'education.period'
_description = 'Education Period'
_order = 'id desc'
name = fields.Char(string="Name", required=True)
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')

View File

@ -40,7 +40,14 @@ class EducationResults(models.Model):
rec.name = rec.evaluation + " " + str(rec.min_degree) + "-" + str(rec.max_degree)
else:
rec.name=""
class StudyMaterial(models.Model):
_name = 'study.material'
name = fields.Char(string='Name')
class EducationExamType(models.Model):
_name = 'education.exam.type'
name = fields.Char(string='Name', required=True)

View File

@ -14,12 +14,12 @@ class EducationStatus(models.Model):
name = fields.Char(
string="Sequence",
default="/",
readonly=True,
copy=False,
default="/",
readonly=True,
copy=False,
index=True
)
education_status_type = fields.Selection(
selection=[
('current', 'Current'),
@ -30,8 +30,8 @@ class EducationStatus(models.Model):
education_status = fields.Selection(
string='Education Status',
selection=[
('educated', 'Educated'),
('illiterate', 'Illiterate'),
('educated', 'Educated'),
('illiterate', 'Illiterate'),
('under_study_age', 'Under Study Age')
],
compute="_compute_education_status",
@ -39,8 +39,8 @@ class EducationStatus(models.Model):
)
case_study = fields.Selection(
string='Case Study',
selection=[('continuous', 'Continuous'),
('intermittent', 'Intermittent'),
selection=[('continuous', 'Continuous'),
('intermittent', 'Intermittent'),
('graduate', 'Graduate')]
)
education_entity = fields.Selection(
@ -50,7 +50,7 @@ class EducationStatus(models.Model):
)
education_start_date = fields.Date(string='Education Start Date')
education_end_date = fields.Date(string='Education End Date')
educational_certificate = fields.Many2many(
'ir.attachment',
'rel_education_status_educational_certificate_attachment',
@ -59,8 +59,11 @@ 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)]")
classroom = fields.Many2one('education.classroom', string='Classroom', domain="[('education_level_id', '=', education_levels)]")
entities = fields.Many2one("education.entities", string='Entity',
domain="[('education_level_id', '=', 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)]")
rate_type = fields.Selection([
('from_4', 'From 4'),
('from_5', 'From 5'),
@ -69,27 +72,27 @@ class EducationStatus(models.Model):
degree = fields.Many2one('education.result', string='Degree')
percentage = fields.Float(string="Percentage%")
specialization_ids = fields.Many2one('specialization.specialization', string='Specialization')
intermittent_reason_id = fields.Many2one('education.illiterate.reason',string='Intermittent Reason')
intermittent_reason_id = fields.Many2one('education.illiterate.reason', string='Intermittent Reason')
intermittent_date = fields.Date(string='Intermittent Date')
family_member_age = fields.Integer(string="Age At Level Beginning", compute='_compute_family_member_age', store=True)
family_member_age = fields.Integer(string="Age At Level Beginning", compute='_compute_family_member_age',
store=True)
family_member_delay = fields.Boolean(string="Member Delay", compute='_compute_family_member_delay', store=True)
delay_reason_id = fields.Many2one('education.delay.reason', string='Delay Reason')
weak_course_ids = fields.One2many('weak.course', 'education_status_id')
@api.depends(
'mother_grant_benefit_id',
'mother_grant_benefit_id.education_status',
'replacement_grant_benefit_id',
'replacement_grant_benefit_id.replacement_education_status',
'mother_grant_benefit_id',
'mother_grant_benefit_id.education_status',
'replacement_grant_benefit_id',
'replacement_grant_benefit_id.replacement_education_status',
'family_member_id',
'family_member_id.education_status',
)
def _compute_education_status(self):
for record in self:
record.education_status = record.mother_grant_benefit_id.education_status or\
record.replacement_grant_benefit_id.replacement_education_status or\
record.family_member_id.education_status
record.education_status = record.mother_grant_benefit_id.education_status or \
record.replacement_grant_benefit_id.replacement_education_status or \
record.family_member_id.education_status
@api.depends("case_study")
def _compute_education_status_type(self):
@ -123,29 +126,37 @@ class EducationStatus(models.Model):
else:
rec.family_member_delay = False
@api.onchange('education_status_type')
def _onchange_education_status_type(self):
relation_id = self.mother_grant_benefit_id or\
self.replacement_grant_benefit_id or\
self.family_member_id
relation_id = self.mother_grant_benefit_id or \
self.replacement_grant_benefit_id or \
self.family_member_id
if self.education_status_type == 'current' and relation_id:
existing_current = self.search([
('education_status_type', '=', 'current'),
'|', '|',
('mother_grant_benefit_id', '=', relation_id._origin.id),
('replacement_grant_benefit_id', '=', relation_id._origin.id),
('family_member_id', '=', relation_id._origin.id)
('mother_grant_benefit_id', '=', relation_id._origin.id),
('replacement_grant_benefit_id', '=', relation_id._origin.id),
('family_member_id', '=', relation_id._origin.id)
], limit=1)
if existing_current:
return {
"warning": {
'title': _('Current Education Status Already Exists'),
'message': _("There is already an education status marked as Current.\nIf you save this, %s will be marked as Previous!") % existing_current.name
'message': _(
"There is already an education status marked as Current.\nIf you save this, %s will be marked as Previous!") % existing_current.name
}
}
@api.onchange('education_period_id', 'education_period_id.start_date', 'education_period_id.end_date')
def _onchange_field_name(self):
self.ensure_one()
if self.education_period_id:
if self.education_period_id.start_date:
self.education_start_date = self.education_period_id.start_date
if self.education_period_id.end_date:
self.education_end_date = self.education_period_id.end_date
@api.model
def create(self, vals):
# Determine the prefix based on the related field
@ -175,14 +186,16 @@ class EducationStatus(models.Model):
vals['name'] = f"{prefix}{formatted_number}"
# Ensure only one 'current' education status exists
relation_id = vals.get('mother_grant_benefit_id', vals.get('replacement_grant_benefit_id', vals.get('family_member_id', False)))
if not self.env.context.get('skip_current_check') and vals.get('education_status_type') == 'current' and relation_id:
relation_id = vals.get('mother_grant_benefit_id',
vals.get('replacement_grant_benefit_id', vals.get('family_member_id', False)))
if not self.env.context.get('skip_current_check') and vals.get(
'education_status_type') == 'current' and relation_id:
existing_current = self.search([
('education_status_type', '=', 'current'),
'|', '|',
('mother_grant_benefit_id', '=', relation_id),
('replacement_grant_benefit_id', '=', relation_id),
('family_member_id', '=', relation_id)
('mother_grant_benefit_id', '=', relation_id),
('replacement_grant_benefit_id', '=', relation_id),
('family_member_id', '=', relation_id)
], limit=1)
if existing_current:

View File

@ -0,0 +1,14 @@
from odoo import fields, models,api
class FamilyMemberExam(models.Model):
_name = 'family.member.exam'
_description = 'Family Member Exam'
_order = 'id desc'
member_id = fields.Many2one('family.member', string='Family Member')
exam_id = fields.Many2one('education.exam.type', string='Exam Type', required=True)
exam_degree = fields.Float(string='Exam Degree')
exam_date = fields.Date(string='Exam Date')
exam_attachment = fields.Binary(string='Exam Attachment', attachment=True)
exam_attachment_file_name = fields.Char(required=False)

View File

@ -96,6 +96,7 @@ class FamilyMemberProfile(models.Model):
hobbies_ids = fields.One2many("member.hobbies", 'member_id')
diseases_ids = fields.One2many("member.diseases", 'member_id')
disabilities_ids = fields.One2many("member.disabilities", 'member_id')
exam_ids = fields.One2many("family.member.exam", 'member_id')
is_scientific_specialty = fields.Boolean('Is Scientific Specialty?',
related="specialization_ids.is_scientific_specialty")
is_medical_specialty = fields.Boolean('Is Medical Specialty?', related="specialization_ids.is_medical_specialty")

View File

@ -106,6 +106,9 @@ 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
access_family_member_exam,access_family_member_exam,model_family_member_exam,,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
access_study_material,access_study_material,model_study_material,,1,1,1,1

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
106 access_entity_black_list_wizard access_entity_black_list_wizard model_entity_black_list_wizard 1 1 1 1
107 access_education_entities access_education_entities model_education_entities 1 1 1 1
108 access_education_level access_education_level model_education_level 1 1 1 1
109 access_education_period access_education_period model_education_period 1 1 1 1
110 access_education_exam_type access_education_exam_type model_education_exam_type 1 1 1 1
111 access_family_member_exam access_family_member_exam model_family_member_exam 1 1 1 1
112 access_education_classroom access_education_classroom model_education_classroom 1 1 1 1
113 access_education_result access_education_result model_education_result 1 1 1 1
114 access_study_material access_study_material model_study_material 1 1 1 1

View File

@ -1016,18 +1016,25 @@
parent="education_main_menu" action="education_entities_action" sequence="0"/>
<menuitem id="education_level_menu" name="Education Level"
parent="education_main_menu" action="education_level_action" sequence="1"/>
<menuitem id="education_period_menu"
name="Education Periods"
parent="education_main_menu"
action="education_period_action"
sequence="2"/>
<menuitem id="specialization_menu" name="Specialization"
parent="education_main_menu" action="specialization_action" sequence="2"/>
parent="education_main_menu" action="specialization_action" sequence="3"/>
<menuitem id="education_classroom_menu" name="Education Classroom"
parent="education_main_menu" action="education_classroom_action" sequence="3"/>
parent="education_main_menu" action="education_classroom_action" sequence="4"/>
<menuitem id="education_result_menu" name="Education Result"
parent="education_main_menu" action="education_result_action" sequence="4"/>
parent="education_main_menu" action="education_result_action" sequence="5"/>
<menuitem id="study_material_menu" name="Study Material"
parent="education_main_menu" action="study_material_action" sequence="5"/>
parent="education_main_menu" action="study_material_action" sequence="6"/>
<menuitem id="illiterate_reason_menu" name="Education Illiterate Reason"
parent="education_main_menu" action="education_illiterate_reason_action" sequence="6"/>
parent="education_main_menu" action="education_illiterate_reason_action" sequence="7"/>
<menuitem id="delay_reason_menu" name="Education Delay Reason"
parent="education_main_menu" action="education_delay_reason_action" sequence="7"/>
parent="education_main_menu" action="education_delay_reason_action" sequence="8"/>
<menuitem id="education_exam_type_menu" name="Exams Type"
parent="education_main_menu" action="education_exam_type_action" sequence="9"/>
<menuitem id="menu_confirm_benefit_expense" name="Benefit Expense Flow" parent="account.menu_finance_payables"
action="action_confirm_benefit_expense" sequence="11"/>
<menuitem id="menu_payment_orders" name="Payment Orders"

View File

@ -912,6 +912,20 @@
attrs="{'invisible': [('education_status', '!=', 'educated')]}">
<field name="member_education_status_ids" mode="tree,form"/>
</page>
<page string="Exams Degrees" attrs="{'invisible': [('education_status', '!=', 'educated')]}">
<field name="exam_ids" mode="tree" options="{'no_open': True}"
widget="one2many_list">
<tree editable="bottom">
<field name="member_id" invisible="1"/>
<field name="exam_id" options="{'no_create_edit': True, 'no_create': True}"/>
<field name="exam_degree"/>
<field name="exam_date"/>
<field name="exam_attachment" widget="binary" filename="exam_attachment_file_name"/>
<field name="exam_attachment_file_name" invisible="1"/>
</tree>
</field>
</page>
<page string="Attachments">
<field name="attachment_ids" widget="one2many_list" mode="tree"
options="{'no_open': True}">

View File

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Form View -->
<record id="education_period_view_form" model="ir.ui.view">
<field name="name">education.period.view.form</field>
<field name="model">education.period</field>
<field name="arch" type="xml">
<form string="Education Periods">
<sheet>
<div class="oe_title">
<label for="name" class="oe_edit_only"/>
<h1>
<field name="name"/>
</h1>
</div>
<group>
<field name="start_date"/>
<field name="end_date"/>
</group>
<group>
<field name="education_level_ids" widget="many2many_tags"
options="{'no_create_edit': True, 'no_create': True}"/>
<field name="education_entity_ids" widget="many2many_tags"
options="{'no_create_edit': True, 'no_create': True}"/>
</group>
</sheet>
</form>
</field>
</record>
<!-- List View -->
<record id="education_period_view_list" model="ir.ui.view">
<field name="name">education.period.view.list</field>
<field name="model">education.period</field>
<field name="arch" type="xml">
<tree string="Education Periods">
<field name="name"/>
<field name="start_date"/>
<field name="end_date"/>
<field name="education_level_ids" widget="many2many_tags"
options="{'no_create_edit': True, 'no_create': True}"/>
<field name="education_entity_ids" widget="many2many_tags"
options="{'no_create_edit': True, 'no_create': True}"/>
</tree>
</field>
</record>
<!-- Action -->
<record id="education_period_action" model="ir.actions.act_window">
<field name="name">Education Periods</field>
<field name="res_model">education.period</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create your first education period!
</p>
</field>
</record>
</odoo>

View File

@ -156,6 +156,28 @@
</tree>
</field>
</record>
<record id="education_exam_type_form" model="ir.ui.view">
<field name="name">education.exam.type.form</field>
<field name="model">education.exam.type</field>
<field name="arch" type="xml">
<form string="Exams Type">
<sheet>
<group>
<field name="name"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="education_exam_type_tree" model="ir.ui.view">
<field name="name">education.exam.type.tree</field>
<field name="model">education.exam.type</field>
<field name="arch" type="xml">
<tree string="Exams Type">
<field name="name"/>
</tree>
</field>
</record>
<!-- Action-->
<record model="ir.actions.act_window" id="study_material_action">
<field name="name">Study Material</field>
@ -173,5 +195,11 @@
<field name="res_model">education.delay.reason</field>
<field name="view_mode">tree,form</field>
</record>
<record model="ir.actions.act_window" id="education_exam_type_action">
<field name="name">Exams Type</field>
<field name="res_model">education.exam.type</field>
<field name="view_mode">tree,form</field>
</record>
</data>
</odoo>

View File

@ -25,6 +25,7 @@
<field name="percentage"/>
<field name="degree"/>
<field name="education_entity" optional="hide"/>
<field name="education_period_id" optional="show"/>
<field name="education_start_date" optional="show"/>
<field name="education_end_date" optional="show"/>
<field name="family_member_age" optional="show"/>
@ -73,13 +74,14 @@
<group>
<field name="education_levels" options="{'no_create_edit': True, 'no_create': True}"/>
<field name="entities" options="{'no_create_edit': True, 'no_create': True}"/>
<field name="education_period_id" options="{'no_create_edit': True, 'no_create': True}"/>
<field name="classroom" options="{'no_create_edit': True, 'no_create': True}"/>
<field name="rate_type"/>
<field name="percentage"/>
<field name="degree"/>
<field name="education_entity"/>
<field name="education_start_date"/>
<field name="education_end_date"/>
<field name="education_start_date" force_save="1"/>
<field name="education_end_date" force_save="1"/>
<field name="family_member_age"/>
<field name="family_member_delay" attrs="{'invisible': [('family_member_delay', '=', False)]}"/>
<field name="delay_reason_id" attrs="{'invisible': [('family_member_delay', '=', False)], 'required': [('family_member_delay', '=', True)]}"/>

View File

@ -211,6 +211,20 @@
attrs="{'invisible': [('education_status', '!=', 'educated')]}">
<field name="member_education_status_ids" mode="tree,form"/>
</page>
<page string="Exams Degrees" attrs="{'invisible': [('education_status', '!=', 'educated')]}">
<field name="exam_ids" mode="tree" options="{'no_open': True}"
widget="one2many_list">
<tree editable="bottom">
<field name="member_id" invisible="1"/>
<field name="exam_id" options="{'no_create_edit': True, 'no_create': True}"/>
<field name="exam_degree"/>
<field name="exam_date"/>
<field name="exam_attachment" widget="binary" filename="exam_attachment_file_name"/>
<field name="exam_attachment_file_name" invisible="1"/>
</tree>
</field>
</page>
<page string="Suspend Reason"
attrs="{'invisible': [('action_type','not in',['suspended','exception'])]}">
<group>
@ -239,6 +253,7 @@
</group>
</group>
</page>
<page string="Attachments">
<field name="attachment_ids" mode="tree" options="{'no_open': True}"
widget="one2many_list">