[IMP] odex_benefit: IMP benefit

This commit is contained in:
younes 2025-12-07 12:06:21 +01:00
parent 7bb822ab86
commit 3029e053db
15 changed files with 114 additions and 103 deletions

View File

@ -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',
],

View File

@ -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"

View File

@ -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')

View File

@ -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')
education_entity_ids = fields.Many2many("res.partner", string='Education Entities')

View File

@ -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'

View File

@ -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',

View File

@ -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')

View File

@ -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()
return super().unlink()

View File

@ -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

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
104 access_survey_setting access_survey_setting model_survey_setting 1 1 1 1
105 access_changes_requests access_changes_requests model_changes_requests 1 1 1 1
106 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
107 access_education_level access_education_level model_education_level 1 1 1 1
108 access_education_period access_education_period model_education_period 1 1 1 1
109 access_education_exam_type access_education_exam_type model_education_exam_type 1 1 1 1

View File

@ -745,6 +745,13 @@
</p>
</field>
</record>
<record model="ir.actions.act_window" id="education_entities_action">
<field name="name">Education Entities</field>
<field name="res_model">res.partner</field>
<field name="view_mode">kanban,form,tree</field>
<field name="domain">[('is_education_entity','=', True)]</field>
<field name="context">{'default_is_company':True,'default_is_education_entity':True}</field>
</record>
<!--###########################################################-->
<!--Benefit Menus-->

View File

@ -1,36 +1,5 @@
<odoo>
<data>
<!-- Education Entity -->
<record id="education_entities_form" model="ir.ui.view">
<field name="name">education.entities.form</field>
<field name="model">education.entities</field>
<field name="arch" type="xml">
<form string="Education Entities">
<sheet>
<group>
<field name="name"/>
<field name="education_level_id" options="{'no_create_edit': True, 'no_create': True}"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="education_entities_tree" model="ir.ui.view">
<field name="name">education.entities.tree</field>
<field name="model">education.entities</field>
<field name="arch" type="xml">
<tree string="Education Entities">
<field name="name"/>
<field name="education_level_id" options="{'no_create_edit': True, 'no_create': True}"/>
</tree>
</field>
</record>
<!-- Action-->
<record model="ir.actions.act_window" id="education_entities_action">
<field name="name">Education Entities</field>
<field name="res_model">education.entities</field>
<field name="view_mode">tree,form</field>
</record>
<!-- Education Level -->
<record id="education_level_form" model="ir.ui.view">
<field name="name">education.level.form</field>

View File

@ -7,17 +7,21 @@
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field
name="education_status_type"
decoration-success="education_status_type == 'current'"
decoration-danger="education_status_type == 'previous'"
widget="badge"
invisible="1"
<field
name="education_status_type"
decoration-success="education_status_type == 'current'"
decoration-danger="education_status_type == 'previous'"
widget="badge"
invisible="1"
/>
<!-- <field name="education_status" optional="hide"/> -->
<field name="case_study" optional="show"/>
<field name="intermittent_reason_id" attrs="{'invisible': [('case_study', '!=', 'intermittent')], 'required': [('case_study', '=', 'intermittent')]}" optional="hide" options="{'no_create_edit': True, 'no_create': True}"/>
<field name="intermittent_date" attrs="{'invisible': [('case_study', '!=', 'intermittent')], 'required': [('case_study', '=', 'intermittent')]}" optional="hide"/>
<field name="intermittent_reason_id"
attrs="{'invisible': [('case_study', '!=', 'intermittent')], 'required': [('case_study', '=', 'intermittent')]}"
optional="hide" options="{'no_create_edit': True, 'no_create': True}"/>
<field name="intermittent_date"
attrs="{'invisible': [('case_study', '!=', 'intermittent')], 'required': [('case_study', '=', 'intermittent')]}"
optional="hide"/>
<field name="education_levels" optional="show" options="{'no_create_edit': True, 'no_create': True}"/>
<field name="entities" optional="show" options="{'no_create_edit': True, 'no_create': True}"/>
<field name="classroom" optional="show" options="{'no_create_edit': True, 'no_create': True}"/>
@ -30,7 +34,8 @@
<field name="education_end_date" optional="show"/>
<field name="family_member_age" optional="show"/>
<field name="family_member_delay" attrs="{'invisible': [('family_member_delay', '=', False)]}"/>
<field name="delay_reason_id" options="{'no_create_edit': True, 'no_create': True}" attrs="{'invisible': [('family_member_delay', '=', False)], 'required': [('family_member_delay', '=', True)]}"/>
<field name="delay_reason_id" options="{'no_create_edit': True, 'no_create': True}"
attrs="{'invisible': [('family_member_delay', '=', False)], 'required': [('family_member_delay', '=', True)]}"/>
<field name="educational_certificate" optional="hide"/>
<field name="specialization_ids" optional="hide"/>
<!-- <field name="weak_study" optional="hide"/> -->
@ -59,12 +64,33 @@
<!-- Conditional Fields (Current) -->
<group>
<!-- <field name="education_status"/> -->
<field name="case_study"/>
<field name="intermittent_reason_id" attrs="{'invisible': [('case_study', '!=', 'intermittent')], 'required': [('case_study', '=', 'intermittent')]}" options="{'no_create_edit': True, 'no_create': True}"/>
<field name="intermittent_date" attrs="{'invisible': [('case_study', '!=', 'intermittent')], 'required': [('case_study', '=', 'intermittent')]}"/>
<group>
<!-- <field name="education_status"/> -->
<field name="case_study" required="1"/>
<field name="intermittent_reason_id"
attrs="{'invisible': [('case_study', '!=', 'intermittent')], 'required': [('case_study', '=', 'intermittent')]}"
options="{'no_create_edit': True, 'no_create': True}"/>
<field name="intermittent_date"
attrs="{'invisible': [('case_study', '!=', 'intermittent')], 'required': [('case_study', '=', 'intermittent')]}"/>
<field name="education_levels" required="1"
options="{'no_create_edit': True, 'no_create': True}"/>
<field name="entities" required="1" options="{'no_create_edit': True, 'no_create': True}"/>
<field name="education_period_id" required="1"
options="{'no_create_edit': True, 'no_create': True}"/>
<field name="classroom" required="1" options="{'no_create_edit': True, 'no_create': True}"/>
</group>
<group>
<field name="education_start_date" required="1" force_save="1"/>
<field name="education_end_date" required="1" 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)]}"/>
</group>
</group>
<!-- Conditional Fields (Previous) -->
<!-- <group attrs="{'invisible': [('education_status_type', '!=', 'previous')]}">
<field name="weak_study" widget="many2many_tags"/>
@ -72,30 +98,25 @@
<!-- Other Fields -->
<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" 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)]}"/>
<field name="educational_certificate" widget="many2many_attachment_preview" />
<field name="specialization_ids"/>
<group>
<field name="rate_type" required="1"/>
<field name="percentage" required="1"/>
<field name="degree" readonly="1" force_save="1"/>
</group>
<group>
<field name="education_entity" required="1"/>
<field name="educational_certificate" widget="many2many_attachment_preview"/>
<field name="specialization_ids" required="1"/>
</group>
</group>
<notebook>
<page string="Weak Classes">
<field name="weak_course_ids">
<tree editable="bottom">
<field name="weak_course_id" />
<field name="result_before" />
<field name="remedial_class_name" />
<field name="result_after" />
<field name="weak_course_id"/>
<field name="result_before"/>
<field name="remedial_class_name"/>
<field name="result_after"/>
</tree>
</field>
</page>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="inherited_res_partner_data_view" model="ir.ui.view">
<field name="name">res.partner</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="takaful_core.res_partner_data"/>
<field name="arch" type="xml">
<xpath expr="//notebook/page[@id='account_type_page']/group/group[2]" position="inside">
<field name="is_education_entity" widget="boolean_toggle"/>
<field name="education_level_ids"
widget="many2many_tags"
attrs="{'invisible': [('is_education_entity', '=', False)]}"
/>
</xpath>
</field>
</record>
</data>
</odoo>

View File

@ -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

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
100 access_survey_setting access_survey_setting model_survey_setting 1 1 1 1
101 access_changes_requests access_changes_requests model_changes_requests 1 1 1 1
102 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
103 access_education_level access_education_level model_education_level 1 1 1 1
104 access_education_classroom access_education_classroom model_education_classroom 1 1 1 1
105 access_education_result access_education_result model_education_result 1 1 1 1

View File

@ -17,7 +17,7 @@
</group>
</xpath>
<xpath expr="//notebook" position="inside">
<page string="Account Type">
<page string="Account Type" id="account_type_page">
<group>
<group>
<field name="is_family" readonly="1"/>