adminjs-sequelizejs icon indicating copy to clipboard operation
adminjs-sequelizejs copied to clipboard

Unable to filter enum fields for multiple values

Open rlamorea opened this issue 2 years ago • 1 comments

If I try a filtered URL like:

https://my.adminjs.server/admin/resources/myresource?filters.enumField=foo&filters.enumField=bar

The query only looks for WHERE enumField = 'foo'

This is because of line 16 in @adminjs/sequelize/lib/utils/convert-filter.js:

 if (property.sequelizePath.values || uuidRegex.test(value.toString())) {

Since it is an enum field, this intercepts before it gets to the check for isArray and returns an Op.eq where clause instead of an Op.in clause.

rlamorea avatar Sep 13 '23 18:09 rlamorea

Note that this line would also prevent the selection of multiple UUIDs if I am reading it correctly.

rlamorea avatar Sep 13 '23 19:09 rlamorea