Please check your agent type and version and read on or switch to the right documentation.
Refresh hasMany relationship in smart action
Context: In this example I have a model tenants that hasMany records from a model ssoProviders. I want to create a new ssoProvider from a smart action accessible at the level of a tenant and refresh the list of ssoProviders shown in the summary view.
Models
// This model was generated by Lumber. However, you remain in control of your models.// Learn how here: <https://docs.forestadmin.com/documentation/v/v6/reference-guide/models/enrich-your-models>module.exports= (sequelize, DataTypes) => {const { Sequelize } = sequelize;// This section contains the fields of your model, mapped to your table's columns. // Learn more here: <https://docs.forestadmin.com/documentation/v/v6/reference-guide/models/enrich-your-models#declaring-a-new-field-in-a-model>
constTenants=sequelize.define('tenants', {}, { tableName:'tenants', underscored:true, timestamps:false, schema:process.env.DATABASE_SCHEMA, } ); // This section contains the relationships for this model. See: <https://docs.forestadmin.com/documentation/v/v6/reference-guide/relationships#adding-relationships>.
Tenants.associate= (models) => {Tenants.hasMany(models.ssoProviders, { foreignKey: { name:'tenantIdKey', field:'tenant_id', }, as:'ssoProviders', }); };return Tenants;};
// This model was generated by Lumber. However, you remain in control of your models.// Learn how here: <https://docs.forestadmin.com/documentation/v/v6/reference-guide/models/enrich-your-models>module.exports= (sequelize, DataTypes) => {const { Sequelize } = sequelize;// This section contains the fields of your model, mapped to your table's columns. // Learn more here: <https://docs.forestadmin.com/documentation/v/v6/reference-guide/models/enrich-your-models#declaring-a-new-field-in-a-model>
constSsoProviders=sequelize.define('ssoProviders', { description: { type:DataTypes.STRING, }, }, { tableName:'sso_providers', underscored:true, timestamps:false, schema:process.env.DATABASE_SCHEMA, } ); // This section contains the relationships for this model. See: <https://docs.forestadmin.com/documentation/v/v6/reference-guide/relationships#adding-relationships>.
SsoProviders.associate= (models) => {SsoProviders.belongsTo(models.tenants, { foreignKey: { name:'tenantIdKey', field:'tenant_id', }, as:'tenant', }); };return SsoProviders;};
Smart action definition
in the file forest/tenants.js
const { collection } =require('forest-express-sequelize');// This file allows you to add to your Forest UI:// - Smart actions: <https://docs.forestadmin.com/documentation/reference-guide/actions/create-and-manage-smart-actions>
// - Smart fields: <https://docs.forestadmin.com/documentation/reference-guide/fields/create-and-manage-smart-fields>// - Smart relationships: <https://docs.forestadmin.com/documentation/reference-guide/relationships/create-a-smart-relationship>
// - Smart segments: <https://docs.forestadmin.com/documentation/reference-guide/segments/smart-segments>collection('tenants', { actions: [ { name:'add provider', type:'single', }, ], fields: [], segments: [],});