Skip to main content
Context: As a user I want to be able to sort records based on a smart field where the smart field includes data from the current record’s parent. Example: Here I have a model orders that has a belongsTo relationship with the customers model. I have a smart field in the orders model called customer email that returns the value of the parent customer’s email field. I want to sort the orders by the customer email smart field.

Implementation

forest/orders.js routes/orders.js
router.get(
  '/orders',
  permissionMiddlewareCreator.list(),
  (request, response, next) => {
    if (request.query.sort.includes('customer email')) {
      request.query.sort = request.query.sort.includes('-')
        ? '-customer.email'
        : 'customer.email';
    }
    next();
  }
);