Merge pull request #3076 from expsa/chnage-in-membership-system

fix partner
This commit is contained in:
ahmed-nouri051 2025-06-03 15:45:34 +02:00 committed by GitHub
commit b82f3c9e16
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 67 additions and 4 deletions

View File

@ -1574,6 +1574,31 @@ msgstr "المرشحين"
msgid "Print Membership Nomination"
msgstr "طباعة المرشحين للعضوية"
#. module: dev_membership
#: code:addons/dev_membership/models/res_partner.py:0
#, python-format
msgid "Mobile number must be exactly 10 digits."
msgstr "يجب أن يتكون رقم الجوال من 10 أرقام بالضبط."
#. module: dev_membership
#: code:addons/dev_membership/models/res_partner.py:0
#, python-format
msgid "ID number must be unique."
msgstr "يجب أن يكون رقم الهوية فريدًا."
#. module: dev_membership
#: code:addons/dev_membership/models/res_partner.py:0
#, python-format
msgid "Mobile number is required for members."
msgstr "رقم الجوال مطلوب للأعضاء."
=======
#. module: dev_membership
#: code:addons/dev_membership/models/res_partner.py:10
#, python-format
@ -1597,3 +1622,4 @@ msgstr "رقم الهاتف يجب أن يتكون من 10 أرقام بالضب

View File

@ -169,9 +169,28 @@ class Partner(models.Model):
'target': 'current',
}
@api.onchange('mobile')
def _check_mobile_format(self):
for record in self:
if record.mobile and not (len(record.mobile) == 10 and record.mobile.isdigit()):
raise ValidationError("Mobile number must be exactly 10 digits.")
# @api.constrains('identification_number')
# def _check_id_no_required_if_member(self):
# for record in self:
# if record.is_member and not record.identification_number:
# raise ValidationError(_("ID number is required for members."))
@api.constrains('mobile','is_member')
def _check_mobile_required_if_member(self):
for record in self:
if record.is_member and not record.mobile:
raise ValidationError(_("Mobile number is required for members."))
@ -186,6 +205,7 @@ class Partner(models.Model):
], limit=1)
if existing_mobile:
raise ValidationError(_("Mobile number must be unique."))
if record.identification_number:
existing_id = self.search([
('identification_number', '=', record.identification_number),
@ -193,6 +213,11 @@ class Partner(models.Model):
], limit=1)
if existing_id:
raise ValidationError(_("ID number must be unique."))
@api.onchange('mobile')
@ -204,8 +229,8 @@ class Partner(models.Model):
raise ValidationError(_("Mobile number must be exactly 10 digits."))
# Optional: Add SQL constraints for uniqueness

View File

@ -170,10 +170,19 @@
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='title']" position="replace"></xpath>
<xpath expr="//sheet/group/group[2]/field[@name='mobile']" position="before">
<field name="is_member" />
</xpath>
<xpath expr="//sheet/group/group[2]/field[@name='mobile']" position="attributes">
<attribute name="attrs">{'required': [('is_member', '=', True)]}</attribute>
<attribute name="options">{"pattern": "[0-9]{10}"}</attribute>
</xpath>
<xpath expr="//div/h1" position="replace">
<h1 class="o_addressformat">
@ -278,6 +287,9 @@
<field name="age"/>
</group>
</xpath>
<xpath expr="//field[@name='identification_number']" position="attributes">
<attribute name="attrs">{'required': [('is_member', '=', True)]}</attribute>
</xpath>
</field>
</record>