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 = [];
|
const allProjectVaIds = [];
|
||||||
clientProjects.forEach(project => {
|
clientProjects.forEach(project => {
|
||||||
if (project.vaAssigned && project.vaAssigned.length > 0) {
|
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
|
// STEP 3: Get all VAs assigned to these projects
|
||||||
const allAssignedVAs = await VAModel.find({
|
// const allAssignedVAs = await VAModel.find({
|
||||||
_id: { $in: allProjectVaIds.vaId }
|
// _id: { $in: allProjectVaIds.vaId }
|
||||||
})
|
// })
|
||||||
.select('userDetails.firstName userDetails.lastName userDetails.email status')
|
// .select('userDetails.firstName userDetails.lastName userDetails.email status')
|
||||||
.lean()
|
// .lean()
|
||||||
.exec();
|
// .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
|
// Create a map for quick VA lookup
|
||||||
const vaMap = allAssignedVAs.reduce((acc, va) => {
|
const vaMap = allAssignedVAs.reduce((acc, va) => {
|
||||||
|
|
@ -79,9 +101,28 @@ async function client_dashboard_projects(req, res) {
|
||||||
const assignedVAIds = project.vaAssigned || [];
|
const assignedVAIds = project.vaAssigned || [];
|
||||||
|
|
||||||
// Get VA details and check activity for each assigned VA
|
// 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()];
|
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
|
// Check if this VA is currently active on THIS specific project
|
||||||
const latestLog = await LoggedModel.findOne({
|
const latestLog = await LoggedModel.findOne({
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue