Hello everyone !
I'm having problems creating filters for "one2many" and "many2one" fields.
For one of the projects I'm working on in Odoo v13, there is a custom model named "res.partner.contact".
In the "res.partner" model definition, a "one2many" field of type "res.partner.contact" has been added.
This field is called "contacts" and is labelled "Partner contacts".
This new "res.partner.contact" model contains the contact's name, date of birth and relationship to the "res.partner". And a "many2one" field of type "res.partner".
"res.partner" model definition
class ResPartner(models.Model):
_inherit = "res.partner"
_description="Partners"
[...]
contacts = fields.One2many('res.partner.contact', 'partner_id',string='Partner contacts')
[...]
"res.partner.contact" model definition
class ResPartnerContact(models.Model):
_name = 'res.partner.contact'
_description = "Contacts"
[...]
name = fields.Char(string="Name")
birthdate = fields.Date(string="Birthdate")
partner_id = fields.Many2one('res.partner', string='Partner', ondelete='cascade')
[...]
In the definition of the "res.partner" search view, I'd like to add a filter to filter partners by it's contacts date of birth.
In fact, I want to filter out all partners whose contact's date of birth falls between two given dates.
I've tried several different filter definitions, but the wrong partners are filtered out.
(The contacts of the filtered partners have a date of birth outside the given date range).
Example of one the filter's domain I tried to declare in the res.partner search view
domain="[('contacts.birthdate', '>=', time.strftime('2019-07-31')),('contacts.birthdate', '<=', time.strftime('2020-08-01'))]"
When I apply this filter, literally one of the first results in the list of filtered "res.partner" contains a single contact whose date of birth is "2019-05-12". So the filter doesn't work.
If I put only one of the conditions in the domain, the filter works correctly.
The "&" operation does not appear to perform the join between the two conditions.
I can't add a field with fixed dates to facilitate the filter in the "res.partner.contact" model because these dates are likely to change from one year to the next.
Has anyone created filters with similar functionality?
Do you have any idea what I could do to achieve my goal, if possible?
Thank you in advance,
Mélanie