86 lines
2.0 KiB
Plaintext
86 lines
2.0 KiB
Plaintext
---
|
|
import UserLayout from "#layouts/DashboardLayout.astro";
|
|
import { Enums, prisma } from "#lib/server/prisma";
|
|
import { getCurrentUser } from "#lib/server/user";
|
|
import DashboardAufnahmeModule from "#modules/Dashboard/DashboardAufnahmeModule.svelte";
|
|
import { getPrismaAusweisAdapter } from "#lib/server/ausweis";
|
|
|
|
const id = Astro.params.id as string;
|
|
const page = Number(Astro.url.searchParams.get("p"));
|
|
const user = await getCurrentUser(Astro);
|
|
|
|
if (!user) {
|
|
return Astro.redirect("/auth/login");
|
|
}
|
|
|
|
const totalPageCount = await prisma.aufnahme.count({
|
|
where:
|
|
user.rolle !== Enums.BenutzerRolle.ADMIN
|
|
? {
|
|
benutzer: {
|
|
id: user.id,
|
|
},
|
|
}
|
|
: {},
|
|
});
|
|
|
|
let ausweis;
|
|
// Wir fragen den neuesten Ausweis ab
|
|
// Falls der Nutzer ein Admin ist dann kommt der ganz neueste ansonsten der neueste des eingeloggten Benutzers.
|
|
if (user.rolle !== Enums.BenutzerRolle.ADMIN) {
|
|
const adapter = getPrismaAusweisAdapter(id);
|
|
ausweis = await adapter?.findUnique({
|
|
where: {
|
|
id,
|
|
benutzer_id: user.id,
|
|
},
|
|
include: {
|
|
rechnung: true,
|
|
benutzer: true,
|
|
aufnahme: {
|
|
include: {
|
|
bilder: true,
|
|
unterlagen: true,
|
|
objekt: true,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
} else {
|
|
const adapter = getPrismaAusweisAdapter(id);
|
|
ausweis = await adapter?.findUnique({
|
|
where: {
|
|
id,
|
|
},
|
|
include: {
|
|
rechnung: true,
|
|
benutzer: true,
|
|
aufnahme: {
|
|
include: {
|
|
bilder: true,
|
|
unterlagen: true,
|
|
objekt: true,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
}
|
|
|
|
if (!ausweis) {
|
|
return Astro.redirect("/dashboard/objekte?p=1")
|
|
}
|
|
|
|
---
|
|
|
|
<UserLayout title="Objekte" {user} besteller={ausweis.benutzer}>
|
|
<DashboardAufnahmeModule
|
|
{ausweis}
|
|
benutzer={user}
|
|
{totalPageCount}
|
|
{page}
|
|
client:load
|
|
/>
|
|
<!-- {!aufnahme ? <p>Keine weiteren Ausweise vorhanden.</p> : <DashboardAufnahmeModule {user} {aufnahme} benutzer={user} objekt={aufnahme.objekt} client:load/>} -->
|
|
<!-- <DashboardModule {user} {objekte} totalPages={Math.ceil(totalPages / 25)} page={page} {id} client:load /> -->
|
|
</UserLayout>
|