Fixed dashboard projects route

This commit is contained in:
Aakash Mittal 2025-12-22 19:55:35 +05:30
parent 7ecf177467
commit 066010efac
1 changed files with 50 additions and 9 deletions

View File

@ -53,17 +53,39 @@ async function client_dashboard_projects(req, res) {
const allProjectVaIds = [];
clientProjects.forEach(project => {
if (project.vaAssigned && project.vaAssigned.length > 0) {
allProjectVaIds.push(...project.vaAssigned);
// allProjectVaIds.push(...project.vaAssigned);
project.vaAssigned.forEach(vaItem => {
// Handle different possible structures
if (vaItem._id) {
allProjectVaIds.push(vaItem._id);
} else if (vaItem.vaId) {
allProjectVaIds.push(vaItem.vaId);
} else if (typeof vaItem === 'string') {
allProjectVaIds.push(vaItem);
} else if (vaItem.id) {
allProjectVaIds.push(vaItem.id);
}
});
}
});
// STEP 3: Get all VAs assigned to these projects
const allAssignedVAs = await VAModel.find({
_id: { $in: allProjectVaIds.vaId }
// const allAssignedVAs = await VAModel.find({
// _id: { $in: allProjectVaIds.vaId }
// })
// .select('userDetails.firstName userDetails.lastName userDetails.email status')
// .lean()
// .exec();
let allAssignedVAs = [];
if (allProjectVaIds.length > 0) {
allAssignedVAs = await VAModel.find({
_id: { $in: allProjectVaIds }
})
.select('userDetails.firstName userDetails.lastName userDetails.email status')
.lean()
.exec();
}
// Create a map for quick VA lookup
const vaMap = allAssignedVAs.reduce((acc, va) => {
@ -79,9 +101,28 @@ async function client_dashboard_projects(req, res) {
const assignedVAIds = project.vaAssigned || [];
// Get VA details and check activity for each assigned VA
const assignedVADetails = await Promise.all(assignedVAIds.map(async (vaId) => {
const assignedVADetails = await Promise.all(assignedVAIds.map(async (vaItem) => {
// const va = vaMap[vaId.toString()];
// if (!va) return null;
let vaId;
if (vaItem._id) {
vaId = vaItem._id;
} else if (vaItem.vaId) {
vaId = vaItem.vaId;
} else if (typeof vaItem === 'string') {
vaId = vaItem;
} else if (vaItem.id) {
vaId = vaItem.id;
} else {
vaId = vaItem; // Try as-is
}
const va = vaMap[vaId.toString()];
if (!va) return null;
if (!va) {
console.log(`VA with ID ${vaId} not found in vaMap`);
return null;
}
// Check if this VA is currently active on THIS specific project
const latestLog = await LoggedModel.findOne({