forest-express-sequelize
forest-express-sequelize copied to clipboard
Pie chart shows an error : "Forest cannot render this chart."
Expected behavior
Pie Chart should display
Actual behavior
An error is shown
Failure Logs
[forest] 🌳🌳🌳 Unexpected error: Cannot read property 'fields' of undefined
TypeError: Cannot read property 'fields' of undefined
at new PieStatGetter (/Users/manu/developer/@escorts/escorts-admin/node_modules/forest-express-sequelize/services/pie-stat-getter.js:28:43)
at create (/Users/manu/developer/@escorts/escorts-admin/node_modules/forest-express/routes/stats.js:18:19)
at Layer.handle [as handle_request] (/Users/manu/developer/@escorts/escorts-admin/node_modules/forest-express/node_modules/express/lib/router/layer.js:95:5)
at next (/Users/manu/developer/@escorts/escorts-admin/node_modules/forest-express/node_modules/express/lib/router/route.js:137:13)
at exports.ensureAuthenticated (/Users/manu/developer/@escorts/escorts-admin/node_modules/forest-express/services/auth.js:6:5)
at Layer.handle [as handle_request] (/Users/manu/developer/@escorts/escorts-admin/node_modules/forest-express/node_modules/express/lib/router/layer.js:95:5)
at next (/Users/manu/developer/@escorts/escorts-admin/node_modules/forest-express/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/Users/manu/developer/@escorts/escorts-admin/node_modules/forest-express/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/Users/manu/developer/@escorts/escorts-admin/node_modules/forest-express/node_modules/express/lib/router/layer.js:95:5)
at /Users/manu/developer/@escorts/escorts-admin/node_modules/forest-express/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/Users/manu/developer/@escorts/escorts-admin/node_modules/forest-express/node_modules/express/lib/router/index.js:335:12)
at next (/Users/manu/developer/@escorts/escorts-admin/node_modules/forest-express/node_modules/express/lib/router/index.js:275:10)
at /Users/manu/developer/@escorts/escorts-admin/node_modules/forest-express/node_modules/express-jwt/lib/index.js:128:7
at /Users/manu/developer/@escorts/escorts-admin/node_modules/async/lib/async.js:52:16
at Immediate.<anonymous> (/Users/manu/developer/@escorts/escorts-admin/node_modules/async/lib/async.js:1206:34)
at runCallback (timers.js:789:20)
at tryOnImmediate (timers.js:751:5)
at processImmediate [as _immediateCallback] (timers.js:722:5)
POST /forest/stats/users 500 76.607 ms - 81
Context
I am trying to create a pie chart showing users with various roles
#users
'use strict';
module.exports = (sequelize, DataTypes) => {
var Model = sequelize.define(
'users',
{
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
role_id: {
type: DataTypes.INTEGER,
allowNull: false
},
first_name: {
type: DataTypes.STRING,
allowNull: false
},
last_name: {
type: DataTypes.STRING,
allowNull: false
},
phone: {
type: DataTypes.INTEGER,
allowNull: false
},
address: {
type: DataTypes.STRING
},
village_id: {
type: DataTypes.INTEGER,
allowNull: false
},
profile_verified: {
type: DataTypes.INTEGER,
defaultValue: 1
},
active: {
type: DataTypes.BOOLEAN,
defaultValue: 1
}
},
{
tableName: 'users',
underscored: true,
timestamps: false
}
);
Model.associate = models => {
Model.belongsTo(models.villages, {
foreignKey: 'village_id',
targetKey: 'id'
}),
Model.belongsTo(models.user_roles, {
foreignKey: 'role_id',
targetKey: 'id'
}),
Model.hasMany(models.implements, {
foreignKey: 'owner_user_id',
sourceKey: 'id'
}),
Model.hasMany(models.tractors, {
foreignKey: 'owner_user_id',
sourceKey: 'id'
}),
Model.hasMany(models.fields, {
foreignKey: 'owner_user_id',
sourceKey: 'id'
}),
Model.hasMany(models.requests, {
foreignKey: 'create_user_id',
sourceKey: 'id'
}),
Model.hasMany(models.documents, {
foreignKey: 'user_id',
sourceKey: 'id'
});
};
return Model;
};
#user_roles
'use strict';
module.exports = (sequelize, DataTypes) => {
var Model = sequelize.define('user_roles', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
role: {
type: DataTypes.STRING,
},
}, {
tableName: 'user_roles',
timestamps: false,
});
Model.associate = (models) => {
};
return Model;
};
- Package Version:
- Express Version:
- Sequelize Version: 1.5.6
- Database Dialect: MySQL
- Database Version:
Hey @manurana, is it a simple chart or a Smart Chart? if it is a simple chart, can you share your Chart configuration? if it is a Smart Chart, can you share your Smart Chart code?
Thank you
Its a simple chart, count of users
broken up by role_id
(which in turn is a FK to the user_roles
table)
Its a simple chart, count of
users
broken up byrole_id
(which in turn is a FK to theuser_roles
table)
Did you find a fix to this? I have exactly the same. Tried commenting out all other associations to exclude those tables from possible causes without any luck