Stuff with the new corporate

This commit is contained in:
Tiago Ribeiro
2024-12-12 15:31:24 +00:00
parent 3b6836c15a
commit 6bb817f9af
2 changed files with 10 additions and 9 deletions

View File

@@ -33,6 +33,7 @@ import {
} from "react-icons/bs"; } from "react-icons/bs";
import { ToastContainer } from "react-toastify"; import { ToastContainer } from "react-toastify";
import { useAllowedEntities } from "@/hooks/useEntityPermissions"; import { useAllowedEntities } from "@/hooks/useEntityPermissions";
import { isAdmin } from "@/utils/users";
interface Props { interface Props {
user: User; user: User;
@@ -51,12 +52,12 @@ export const getServerSideProps = withIronSessionSsr(async ({ req, res }) => {
if (!checkAccess(user, ["admin", "developer", "corporate"])) return redirect("/") if (!checkAccess(user, ["admin", "developer", "corporate"])) return redirect("/")
const entityIDS = mapBy(user.entities, "id") || []; const entityIDS = mapBy(user.entities, "id") || [];
const entities = await getEntitiesWithRoles(entityIDS); const entities = await getEntitiesWithRoles(isAdmin(user) ? undefined : entityIDS);
const users = await filterAllowedUsers(user, entities) const users = await filterAllowedUsers(user, entities)
const userCounts = await countAllowedUsers(user, entities) const userCounts = await countAllowedUsers(user, entities)
const assignmentsCount = await countEntitiesAssignments(entityIDS, { archived: { $ne: true } }); const assignmentsCount = await countEntitiesAssignments(mapBy(entities, "id"), { archived: { $ne: true } });
const groupsCount = await countGroupsByEntities(entityIDS); const groupsCount = await countGroupsByEntities(mapBy(entities, "id"));
const stats = await getStatsByUsers(users.map((u) => u.id)); const stats = await getStatsByUsers(users.map((u) => u.id));
@@ -132,7 +133,7 @@ export default function Dashboard({ user, users, userCounts, entities, assignmen
<IconCard Icon={BsPersonFillGear} <IconCard Icon={BsPersonFillGear}
onClick={() => router.push("/users/performance")} onClick={() => router.push("/users/performance")}
label="Student Performance" label="Student Performance"
value={students.length} value={userCounts.student}
color="purple" color="purple"
/> />
)} )}

View File

@@ -168,10 +168,10 @@ export const countAllowedUsers = async (user: User, entities: EntityWithRoles[])
const corporateAllowedEntities = findAllowedEntities(user, entities, 'view_corporates') const corporateAllowedEntities = findAllowedEntities(user, entities, 'view_corporates')
const masterCorporateAllowedEntities = findAllowedEntities(user, entities, 'view_mastercorporates') const masterCorporateAllowedEntities = findAllowedEntities(user, entities, 'view_mastercorporates')
const students = await countEntitiesUsers(mapBy(studentsAllowedEntities, 'id'), { type: "student" }) const student = await countEntitiesUsers(mapBy(studentsAllowedEntities, 'id'), { type: "student" })
const teachers = await countEntitiesUsers(mapBy(teachersAllowedEntities, 'id'), { type: "teacher" }) const teacher = await countEntitiesUsers(mapBy(teachersAllowedEntities, 'id'), { type: "teacher" })
const corporates = await countEntitiesUsers(mapBy(corporateAllowedEntities, 'id'), { type: "corporate" }) const corporate = await countEntitiesUsers(mapBy(corporateAllowedEntities, 'id'), { type: "corporate" })
const masterCorporates = await countEntitiesUsers(mapBy(masterCorporateAllowedEntities, 'id'), { type: "mastercorporate" }) const masterCorporate = await countEntitiesUsers(mapBy(masterCorporateAllowedEntities, 'id'), { type: "mastercorporate" })
return { students, teachers, corporates, masterCorporates } return { student, teacher, corporate, masterCorporate }
} }