✨ Display times on the timetable
This commit is contained in:
@ -21,6 +21,7 @@ export async function getTimetable(req, res) {
|
|||||||
updatedAt: "desc",
|
updatedAt: "desc",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
const times = await prisma.time.findMany();
|
||||||
if (!timetable) {
|
if (!timetable) {
|
||||||
res.status(404).send({
|
res.status(404).send({
|
||||||
success: false,
|
success: false,
|
||||||
@ -33,6 +34,7 @@ export async function getTimetable(req, res) {
|
|||||||
trusted: timetable.trusted,
|
trusted: timetable.trusted,
|
||||||
source: timetable.source,
|
source: timetable.source,
|
||||||
data: timetable.data,
|
data: timetable.data,
|
||||||
|
times: times,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,6 +65,12 @@ model Class {
|
|||||||
regex String
|
regex String
|
||||||
}
|
}
|
||||||
|
|
||||||
|
model Time {
|
||||||
|
lesson Int @unique
|
||||||
|
start DateTime
|
||||||
|
end DateTime
|
||||||
|
}
|
||||||
|
|
||||||
model Session {
|
model Session {
|
||||||
token String @id @unique @default(uuid())
|
token String @id @unique @default(uuid())
|
||||||
createdAt DateTime @default(now())
|
createdAt DateTime @default(now())
|
||||||
|
@ -50,6 +50,21 @@ function isCancelled(substitution) {
|
|||||||
if (!substitution) return false;
|
if (!substitution) return false;
|
||||||
return substitution.type == "cancellation";
|
return substitution.type == "cancellation";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getTime(index) {
|
||||||
|
const times = {
|
||||||
|
...(timetable.value.times.find((e) => e.lesson == index + 1) || {}),
|
||||||
|
};
|
||||||
|
console.log(times);
|
||||||
|
Object.keys(times).forEach((e) => {
|
||||||
|
if (e == "lesson") return;
|
||||||
|
const date = new Date(times[e]);
|
||||||
|
const hours = date.getHours().toString().padStart(2, "0");
|
||||||
|
const minutes = date.getMinutes().toString().padStart(2, "0");
|
||||||
|
times[e] = `${hours}:${minutes}`;
|
||||||
|
});
|
||||||
|
return times;
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
@ -94,6 +109,10 @@ function isCancelled(substitution) {
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="times" v-if="getTime(index).start">
|
||||||
|
<span>{{ getTime(index).start }} -</span>
|
||||||
|
<span>{{ getTime(index).end }}</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
@ -128,7 +147,7 @@ function isCancelled(substitution) {
|
|||||||
min-height: 50px;
|
min-height: 50px;
|
||||||
border-radius: 11px;
|
border-radius: 11px;
|
||||||
padding: 15px;
|
padding: 15px;
|
||||||
grid-template-columns: max-content auto;
|
grid-template-columns: max-content auto auto;
|
||||||
gap: 15px;
|
gap: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -153,4 +172,14 @@ function isCancelled(substitution) {
|
|||||||
font-weight: 200;
|
font-weight: 200;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.times {
|
||||||
|
margin-left: auto;
|
||||||
|
display: grid;
|
||||||
|
grid-template-rows: 1fr 1fr;
|
||||||
|
align-items: center;
|
||||||
|
color: var(--text-color);
|
||||||
|
opacity: 0.5;
|
||||||
|
font-weight: 300;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
Reference in New Issue
Block a user