Benefit customization
This commit is contained in:
parent
5dd159d37c
commit
ec7e0143ac
|
|
@ -1455,7 +1455,7 @@ class GrantBenefitProfile(models.Model):
|
|||
partner = self.create_family_partner()
|
||||
self.partner_id.write({
|
||||
'name': self.name,
|
||||
'email': self.email,
|
||||
'email': self.sms_phone,
|
||||
'phone': self.phone,
|
||||
'account_type': 'family',
|
||||
'code': self.code,
|
||||
|
|
|
|||
|
|
@ -588,6 +588,9 @@ class AttachmentsSettings(models.Model):
|
|||
_description = "Attachments Settings"
|
||||
|
||||
name = fields.Char(string='name')
|
||||
hobby_id = fields.Many2one('hobbies.settings',string='Hobbies')
|
||||
diseases_id = fields.Many2one('diseases.settings',string='Diseases')
|
||||
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'))])
|
||||
|
|
@ -616,4 +619,19 @@ class LoanReason(models.Model):
|
|||
_name = 'loan.reason'
|
||||
_description = "Loan Reason"
|
||||
|
||||
name = fields.Char(string='name')
|
||||
name = fields.Char(string='name')
|
||||
|
||||
class HobbiesSettings(models.Model):
|
||||
_name = 'hobbies.settings'
|
||||
|
||||
name = fields.Char(string="Name")
|
||||
|
||||
class DiseasesSettings(models.Model):
|
||||
_name = 'diseases.settings'
|
||||
|
||||
name = fields.Char(string="Name")
|
||||
|
||||
class DisabilitiesSettings(models.Model):
|
||||
_name = 'disabilities.settings'
|
||||
|
||||
name = fields.Char(string="Name")
|
||||
|
|
@ -171,12 +171,123 @@ class FamilyMemberProfile(models.Model):
|
|||
suspend_method = fields.Selection(selection=[('manual', 'Manual'), ('auto', 'Auto')], string="Suspend Method",default='auto')
|
||||
is_member_workflow = fields.Boolean('Is Member Workflow?')
|
||||
sponsor_id = fields.Many2one('res.partner', string='Sponsor',domain="[('account_type','=','sponsor')]")
|
||||
required_attach = fields.Selection(selection=[('true', 'True'), ('false', 'False')], compute='get_required_attach',store=True,string='Required Attach')
|
||||
required_hobby_attach = fields.Selection(selection=[('true', 'True'), ('false', 'False')], compute='get_required_hobby_attach',store=True,string='Required Hobby Attach')
|
||||
required_diseases_attach = fields.Selection(selection=[('true', 'True'), ('false', 'False')], compute='get_required_diseases_attach',store=True,string='Required Diseases Attach')
|
||||
required_disabilities_attach = fields.Selection(selection=[('true', 'True'), ('false', 'False')], compute='get_required_disabilities_attach',store=True,string='Required Disabilities Attach')
|
||||
|
||||
def unlink(self):
|
||||
for order in self:
|
||||
if order.state not in ['draft']:
|
||||
raise UserError(_('You cannot delete this record'))
|
||||
return super(FamilyMemberProfile, self).unlink()
|
||||
@api.depends('attachment_ids')
|
||||
def get_required_attach(self):
|
||||
for rec in self.attachment_ids:
|
||||
if rec.is_required and not rec.datas:
|
||||
self.required_attach = None
|
||||
break
|
||||
elif rec.is_required and rec.datas:
|
||||
self.required_attach = 'true'
|
||||
elif rec.is_default and not rec.is_required and (rec.datas or not rec.datas):
|
||||
self.required_attach = 'true'
|
||||
else:
|
||||
self.required_attach = 'true'
|
||||
|
||||
@api.depends('hobbies_ids')
|
||||
def get_required_hobby_attach(self):
|
||||
for rec in self.hobbies_ids:
|
||||
if rec.is_required and not rec.hobby_attach:
|
||||
self.required_attach = None
|
||||
break
|
||||
elif rec.is_required and rec.hobby_attach:
|
||||
self.required_hobby_attach = 'true'
|
||||
elif rec.is_default and not rec.is_required and (rec.hobby_attach or not rec.hobby_attach):
|
||||
self.required_hobby_attach = 'true'
|
||||
else:
|
||||
self.required_hobby_attach = 'true'
|
||||
|
||||
@api.depends('diseases_ids')
|
||||
def get_required_diseases_attach(self):
|
||||
for rec in self.diseases_ids:
|
||||
if rec.is_required and not rec.disease_attach:
|
||||
self.required_diseases_attach = None
|
||||
break
|
||||
elif rec.is_required and rec.disease_attach:
|
||||
self.required_diseases_attach = 'true'
|
||||
elif rec.is_default and not rec.is_required and (rec.disease_attach or not rec.disease_attach):
|
||||
self.required_diseases_attach = 'true'
|
||||
else:
|
||||
self.required_diseases_attach = 'true'
|
||||
|
||||
@api.depends('disabilities_ids')
|
||||
def get_required_disabilities_attach(self):
|
||||
for rec in self.disabilities_ids:
|
||||
if rec.is_required and not rec.disability_attach:
|
||||
self.required_disabilities_attach = None
|
||||
break
|
||||
elif rec.is_required and rec.disability_attach:
|
||||
self.required_disabilities_attach = 'true'
|
||||
elif rec.is_default and not rec.is_required and (rec.disability_attach or not rec.disability_attach):
|
||||
self.required_disabilities_attach = 'true'
|
||||
else:
|
||||
self.required_disabilities_attach = 'true'
|
||||
|
||||
@api.model
|
||||
def default_get(self, fields):
|
||||
res = super(FamilyMemberProfile, self).default_get(fields)
|
||||
|
||||
# Initialize dictionaries to store attachments by type
|
||||
attachments_dict = {
|
||||
'hobbies_attach': [],
|
||||
'diseases_attach': [],
|
||||
'disabilities_attach': [],
|
||||
}
|
||||
|
||||
# Search for default attachments
|
||||
default_attachment = self.env["attachments.settings"].search([('is_default', '=', True)])
|
||||
|
||||
# Loop through the default attachments and categorize them by type
|
||||
for attach in default_attachment:
|
||||
if attach.attach_type in attachments_dict:
|
||||
attachments_dict[attach.attach_type].append({
|
||||
'name': attach.name,
|
||||
'is_required': attach.is_required,
|
||||
'is_default': attach.is_default,
|
||||
})
|
||||
|
||||
# Update each field in `res` if it exists in `fields`
|
||||
if 'hobbies_ids' in fields:
|
||||
res.update({
|
||||
'hobbies_ids': [(0, 0, attachment) for attachment in attachments_dict['hobbies_attach']]
|
||||
})
|
||||
if 'diseases_ids' in fields:
|
||||
res.update({
|
||||
'diseases_ids': [(0, 0, attachment) for attachment in attachments_dict['diseases_attach']]
|
||||
})
|
||||
if 'disabilities_ids' in fields:
|
||||
res.update({
|
||||
'disabilities_ids': [(0, 0, attachment) for attachment in attachments_dict['disabilities_attach']]
|
||||
})
|
||||
|
||||
return res
|
||||
|
||||
# Return the list of attachments (this will be used as default for the one2many field)
|
||||
# return [(0, 0, attachment) for attachment in attachments]
|
||||
|
||||
# def _default_child_ids(self):
|
||||
# # Initialize an empty list to store the default attachments
|
||||
attachments = []
|
||||
#
|
||||
# # Search for default attachments
|
||||
# default_attachment = self.env["attachments.settings"].search([('is_default', '=', True)])
|
||||
#
|
||||
# # Loop through the default attachments and add them to the list
|
||||
# for attach in default_attachment:
|
||||
# if attach.attach_type == 'member_attach':
|
||||
# attachments.append({
|
||||
# 'name': attach.name,
|
||||
# 'is_required': attach.is_required,
|
||||
# 'is_default': attach.is_default
|
||||
# })
|
||||
#
|
||||
# # Return the list of attachments (this will be used as default for the one2many field)
|
||||
# return [(0, 0, attachment) for attachment in attachments]
|
||||
|
||||
def create_member_partner(self):
|
||||
self.partner_id.write({
|
||||
|
|
@ -280,6 +391,13 @@ class FamilyMemberProfile(models.Model):
|
|||
else:
|
||||
rec.age = 0
|
||||
|
||||
# @api.onchange("name")
|
||||
# def onchange_member_name(self):
|
||||
# default_attachment = self.env["attachments.settings"].search([('is_default', '=', True)])
|
||||
# for attach in default_attachment:
|
||||
# if attach.attach_type == 'member_attach':
|
||||
# self.attachment_ids = [(0,0,{'name':attach.name,'is_required':attach.is_required,'is_default':attach.is_default})]
|
||||
|
||||
@api.onchange("member_id_number")
|
||||
def onchange_member_id_number(self):
|
||||
for rec in self:
|
||||
|
|
|
|||
|
|
@ -1,7 +1,29 @@
|
|||
from odoo import fields, models
|
||||
from odoo import fields, models , api
|
||||
|
||||
class MemberDisabilities(models.Model):
|
||||
_name = 'member.disabilities'
|
||||
|
||||
name = fields.Char(string="Name")
|
||||
member_id = fields.Many2one('family.member',string="Member")
|
||||
member_id = fields.Many2one('family.member',string="Member")
|
||||
disabilities_id = fields.Many2one('disabilities.settings', string="disability")
|
||||
disability_attach = fields.Binary(attachment=True, string="disability Attach")
|
||||
expiration_date = fields.Date(string='Expiration date')
|
||||
attach_status = fields.Selection(selection=[
|
||||
('valid', 'Valid'),
|
||||
('expired', 'Expired'),
|
||||
], string='Attach Status', compute="get_status", store=True)
|
||||
# fields to management required and delete records in benefit attachment
|
||||
is_required = fields.Boolean(string='Is Required?')
|
||||
is_default = fields.Boolean(string='Is Default?')
|
||||
|
||||
@api.depends('expiration_date')
|
||||
def get_status(self):
|
||||
for rec in self:
|
||||
today = fields.Date.today()
|
||||
if rec.expiration_date:
|
||||
if rec.expiration_date and rec.expiration_date > today:
|
||||
rec.attach_status = 'valid'
|
||||
else:
|
||||
rec.attach_status = 'expired'
|
||||
else:
|
||||
rec.attach_status = ''
|
||||
|
|
@ -1,7 +1,29 @@
|
|||
from odoo import fields, models
|
||||
from odoo import fields, models, api
|
||||
|
||||
class MemberDiseases(models.Model):
|
||||
_name = 'member.diseases'
|
||||
|
||||
name = fields.Char(string="Name")
|
||||
member_id = fields.Many2one('family.member',string="Member")
|
||||
member_id = fields.Many2one('family.member',string="Member")
|
||||
diseases_id = fields.Many2one('diseases.settings', string="Disease")
|
||||
disease_attach = fields.Binary(attachment=True, string="Diseases Attach")
|
||||
expiration_date = fields.Date(string='Expiration date')
|
||||
attach_status = fields.Selection(selection=[
|
||||
('valid', 'Valid'),
|
||||
('expired', 'Expired'),
|
||||
], string='Attach Status', compute="get_status", store=True)
|
||||
# fields to management required and delete records in benefit attachment
|
||||
is_required = fields.Boolean(string='Is Required?')
|
||||
is_default = fields.Boolean(string='Is Default?')
|
||||
|
||||
@api.depends('expiration_date')
|
||||
def get_status(self):
|
||||
for rec in self:
|
||||
today = fields.Date.today()
|
||||
if rec.expiration_date:
|
||||
if rec.expiration_date and rec.expiration_date > today:
|
||||
rec.attach_status = 'valid'
|
||||
else:
|
||||
rec.attach_status = 'expired'
|
||||
else:
|
||||
rec.attach_status = ''
|
||||
|
|
@ -1,7 +1,31 @@
|
|||
from odoo import fields, models
|
||||
from odoo import fields, models ,api
|
||||
|
||||
class MemberHobbies(models.Model):
|
||||
_name = 'member.hobbies'
|
||||
|
||||
name = fields.Char(string="Name")
|
||||
member_id = fields.Many2one('family.member',string="Member")
|
||||
member_id = fields.Many2one('family.member',string="Member")
|
||||
hobbies_id = fields.Many2one('hobbies.settings',string="Hobby")
|
||||
hobby_attach = fields.Binary(attachment=True,string="Hobby Attach")
|
||||
expiration_date = fields.Date(string='Expiration date')
|
||||
attach_status = fields.Selection(selection=[
|
||||
('valid', 'Valid'),
|
||||
('expired', 'Expired'),
|
||||
], string='Attach Status', compute="get_status", store=True)
|
||||
# fields to management required and delete records in benefit attachment
|
||||
is_required = fields.Boolean(string='Is Required?')
|
||||
is_default = fields.Boolean(string='Is Default?')
|
||||
|
||||
@api.depends('expiration_date')
|
||||
def get_status(self):
|
||||
for rec in self:
|
||||
today = fields.Date.today()
|
||||
if rec.expiration_date:
|
||||
if rec.expiration_date and rec.expiration_date > today:
|
||||
rec.attach_status = 'valid'
|
||||
else:
|
||||
rec.attach_status = 'expired'
|
||||
else:
|
||||
rec.attach_status = ''
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -116,4 +116,7 @@ access_attachments_settings,access_attachments_settings,model_attachments_settin
|
|||
access_education_illiterate_reason,access_education_illiterate_reason,model_education_illiterate_reason,base.group_user,1,1,1,1
|
||||
access_income_type,access_income_type,model_income_type,base.group_user,1,1,1,1
|
||||
access_loan_giver,access_loan_giver,model_loan_giver,base.group_user,1,1,1,1
|
||||
access_loan_reason,access_loan_reason,model_loan_reason,base.group_user,1,1,1,1
|
||||
access_loan_reason,access_loan_reason,model_loan_reason,base.group_user,1,1,1,1
|
||||
access_hobbies_settings,access_hobbies_settings,model_hobbies_settings,base.group_user,1,1,1,1
|
||||
access_disabilities_settings,access_disabilities_settings,model_disabilities_settings,base.group_user,1,1,1,1
|
||||
access_diseases_settings,access_diseases_settings,model_diseases_settings,base.group_user,1,1,1,1
|
||||
|
|
|
@ -325,6 +325,36 @@
|
|||
<p class="oe_view_nocontent_create">Create the Attachment Setting
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Hobbies Settings Action -->
|
||||
<record model="ir.actions.act_window" id="hobbies_settings_action">
|
||||
<field name="name">Hobbies Settings</field>
|
||||
<field name="res_model">hobbies.settings</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">Create the Hobbies Setting
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Disabilities Settings Action -->
|
||||
<record model="ir.actions.act_window" id="disabilities_settings_action">
|
||||
<field name="name">Disabilities Settings</field>
|
||||
<field name="res_model">disabilities.settings</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">Create the Disabilities Setting
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Diseases Settings Action -->
|
||||
<record model="ir.actions.act_window" id="diseases_settings_action">
|
||||
<field name="name">Diseases Settings</field>
|
||||
<field name="res_model">diseases.settings</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">Create the Diseases Setting
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window" id="food_surplus_type_action">
|
||||
<field name="name">Food Surplus Type</field>
|
||||
|
|
@ -778,6 +808,15 @@
|
|||
<menuitem id="relation_settings_menu" name="Relation Settings" parent="menu_benefits_config_organizing"
|
||||
action="relation_action"
|
||||
sequence="3"/>
|
||||
<menuitem id="hobbies_settings_menu" name="Hobbies Settings" parent="menu_benefits_config_organizing"
|
||||
action="hobbies_settings_action"
|
||||
sequence="4"/>
|
||||
<menuitem id="disabilities_settings_menu" name="Disabilities Settings" parent="menu_benefits_config_organizing"
|
||||
action="disabilities_settings_action"
|
||||
sequence="5"/>
|
||||
<menuitem id="diseases_settings_menu" name="Diseases Settings" parent="menu_benefits_config_organizing"
|
||||
action="diseases_settings_action"
|
||||
sequence="6"/>
|
||||
<!-- <menuitem id="benefit_families_menu" name="Families" parent="menu_benefits_config_organizing"-->
|
||||
<!-- action="family_action"-->
|
||||
<!-- sequence="3"/>-->
|
||||
|
|
|
|||
|
|
@ -994,6 +994,9 @@
|
|||
<group>
|
||||
<field name="name"/>
|
||||
<field name="attach_type"/>
|
||||
<!-- <field name="hobby_id"/>-->
|
||||
<!-- <field name="diseases_id"/>-->
|
||||
<!-- <field name="disabilities_id"/>-->
|
||||
<field name="is_required"/>
|
||||
<field name="is_default"/>
|
||||
</group>
|
||||
|
|
@ -1113,10 +1116,10 @@
|
|||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Loan Reason FOrm AND tree -->
|
||||
<record id="loan_reason_form" model="ir.ui.view">
|
||||
<field name="name">Loan Reason Form</field>
|
||||
<field name="model">loan.reason</field>
|
||||
<!-- Hobbies Settings Form AND tree -->
|
||||
<record id="hobbies_settings_form" model="ir.ui.view">
|
||||
<field name="name">Hobbies Settings Form</field>
|
||||
<field name="model">hobbies.settings</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
|
|
@ -1129,9 +1132,59 @@
|
|||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="loan_reason_tree" model="ir.ui.view">
|
||||
<field name="name">Loan Reason Tree</field>
|
||||
<field name="model">loan.reason</field>
|
||||
<record id="hobbies_settings_tree" model="ir.ui.view">
|
||||
<field name="name">Hobbies Settings Tree</field>
|
||||
<field name="model">hobbies.settings</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Disabilities Setting Form AND tree -->
|
||||
<record id="disabilities_settings_form" model="ir.ui.view">
|
||||
<field name="name">Disabilities Settings Form</field>
|
||||
<field name="model">disabilities.settings</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="disabilities_settings_tree" model="ir.ui.view">
|
||||
<field name="name">Disabilities Settings Tree</field>
|
||||
<field name="model">disabilities.settings</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Diseases Settings Form AND tree -->
|
||||
<record id="diseases_settings_form" model="ir.ui.view">
|
||||
<field name="name">Diseases Settings Form</field>
|
||||
<field name="model">diseases.settings</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="diseases_settings_tree" model="ir.ui.view">
|
||||
<field name="name">Diseases Settings Tree</field>
|
||||
<field name="model">diseases.settings</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
|
|
|
|||
|
|
@ -418,41 +418,44 @@
|
|||
<notebook>
|
||||
<page string="Hobbies">
|
||||
<field name="hobbies_ids" widget="one2many_list">
|
||||
<form string="Hobbies">
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
<tree editable="bottom" delete="0">
|
||||
<field name="name"/>
|
||||
<!-- <field name="hobbies_id"/>-->
|
||||
<field name="hobby_attach"/>
|
||||
<field name="expiration_date"/>
|
||||
<field name="attach_status"/>
|
||||
<field name="member_id" invisible="1"/>
|
||||
<field name="is_required" invisible="1"/>
|
||||
<field name="is_default" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Diseases">
|
||||
<field name="diseases_ids" widget="one2many_list">
|
||||
<form string="Diseases">
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
<tree editable="bottom" delete="0">
|
||||
<field name="name"/>
|
||||
<!-- <field name="diseases_id"/>-->
|
||||
<field name="disease_attach"/>
|
||||
<field name="expiration_date"/>
|
||||
<field name="attach_status"/>
|
||||
<field name="member_id" invisible="1"/>
|
||||
<field name="is_required" invisible="1"/>
|
||||
<field name="is_default" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Disabilities">
|
||||
<field name="disabilities_ids" widget="one2many_list">
|
||||
<form string="Disabilities">
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
<tree editable="bottom" delete="0">
|
||||
<field name="name"/>
|
||||
<!-- <field name="disabilities_id"/>-->
|
||||
<field name="disability_attach"/>
|
||||
<field name="expiration_date"/>
|
||||
<field name="attach_status"/>
|
||||
<field name="member_id" invisible="1"/>
|
||||
<field name="is_required" invisible="1"/>
|
||||
<field name="is_default" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Education">
|
||||
|
|
@ -521,16 +524,30 @@
|
|||
</page>
|
||||
<page string="Attachments">
|
||||
<field name="attachment_ids" widget="one2many_list">
|
||||
<tree editable="bottom">
|
||||
<field name="name" string="Attachment Name"/>
|
||||
<tree editable="bottom" delete="0">
|
||||
<field name="name" string="Attachment Name" attrs="{'readonly':[('is_default','=',True)]}"/>
|
||||
<field name="datas" string="File content"/>
|
||||
<field name="expiration_date"/>
|
||||
<field name="attach_status"/>
|
||||
<field name="allow_days"/>
|
||||
<field name="benefit_id" invisible="1"/>
|
||||
<field name="is_required" invisible="1"/>
|
||||
<field name="is_default" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Attachment Configuration">
|
||||
<group>
|
||||
<group>
|
||||
<!-- <field name="required_attach" attrs="{'required':[('parent.state','not in',['draft'])]}"/>-->
|
||||
<field name="required_hobby_attach" attrs="{'required':[('parent.state','not in',['draft'])]}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="required_diseases_attach" attrs="{'required':[('parent.state','not in',['draft'])]}"/>
|
||||
<field name="required_disabilities_attach" attrs="{'required':[('parent.state','not in',['draft'])]}"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
|
|
|
|||
Loading…
Reference in New Issue