Fixed dashboard projects route
This commit is contained in:
parent
7ecf177467
commit
066010efac
|
|
@ -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({
|
||||
|
|
|
|||
Loading…
Reference in New Issue