Dashboard

This commit is contained in:
Moritz Utcke
2025-04-21 16:15:47 -03:00
parent fd390238d9
commit 05b31a4862
5 changed files with 58 additions and 148 deletions

View File

@@ -39,31 +39,49 @@ const aufnahme = await prisma.aufnahme.findUnique({
bilder: true,
unterlagen: true,
bedarfsausweise_wohnen: {
orderBy: {
updated_at: "desc"
},
include: {
rechnung: true
}
},
verbrauchsausweise_gewerbe: {
orderBy: {
updated_at: "desc"
},
include: {
rechnung: true
}
},
verbrauchsausweise_wohnen: {
orderBy: {
updated_at: "desc"
},
include: {
rechnung: true
}
},
bedarfsausweise_gewerbe: {
orderBy: {
updated_at: "desc"
},
include: {
rechnung: true
}
},
geg_nachweise_gewerbe: {
orderBy: {
updated_at: "desc"
},
include: {
rechnung: true
}
},
geg_nachweise_wohnen: {
orderBy: {
updated_at: "desc"
},
include: {
rechnung: true
}

View File

@@ -1,80 +0,0 @@
---
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
import { prisma, Enums } from "#lib/server/prisma";
import { createCaller } from "src/astro-typesafe-api-caller";
const caller = createCaller(Astro)
const id = Astro.url.searchParams.get("id");
if (!id) {
return Astro.redirect("/dashboard/objekte")
}
const user = await caller.user.self.GET.fetch(undefined, {
headers: {
"Authorization": `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
}
});
if (!user) {
return Astro.redirect("/auth/login")
}
const objekte = await prisma.objekt.findFirst({
where: user.rolle === Enums.BenutzerRolle.USER ? {
benutzer: {
id: user.id
},
} : {
...(id ? {OR: [
{
aufnahmen: {
every: {
verbrauchsausweise_gewerbe: {
some: {
id
}
},
}
}
},
{
aufnahmen: {
every: {
verbrauchsausweise_wohnen: {
some: {
id
}
},
}
}
},
{
aufnahmen: {
every: {
bedarfsausweise_wohnen: {
some: {
id
}
},
}
}
},]} : {})
},
orderBy: {
erstellungsdatum: "desc"
},
include: {
aufnahmen: {
include: {
bilder: true,
unterlagen: true,
bedarfsausweise_wohnen: true,
verbrauchsausweise_gewerbe: true,
verbrauchsausweise_wohnen: true
}
}
}
})
---

View File

@@ -3,6 +3,7 @@ import UserLayout from "#layouts/DashboardLayout.astro";
import { Enums, prisma } from "#lib/server/prisma";
import DashboardModule from "#modules/Dashboard/DashboardModule.svelte";
import { getCurrentUser } from "#lib/server/user";
import DashboardAufnahmeModule from "#modules/Dashboard/DashboardAufnahmeModule.svelte";
const params = Astro.params;
@@ -16,7 +17,7 @@ if (!user) {
return Astro.redirect("/auth/login")
}
const totalPages = await prisma.objekt.count({
const totalPages = await prisma.aufnahme.count({
where: user.rolle === Enums.BenutzerRolle.USER ? {
benutzer: {
id: user.id
@@ -24,9 +25,9 @@ const totalPages = await prisma.objekt.count({
} : {}
})
let objekte = []
let aufnahme;
if (id) {
objekte = await prisma.objekt.findMany({
aufnahme = await prisma.aufnahme.findFirst({
where: user.rolle === Enums.BenutzerRolle.USER ? {
benutzer: {
id: user.id
@@ -35,42 +36,30 @@ if (id) {
...(id ? {
OR: [
{
aufnahmen: {
every: {
verbrauchsausweise_gewerbe: {
some: {
id: {
contains: id
}
}
},
}
}
},
{
aufnahmen: {
every: {
verbrauchsausweise_wohnen: {
some: {
id: {
contains: id
}
}
},
}
}
},
{
aufnahmen: {
every: {
bedarfsausweise_wohnen: {
some: {
id: {
contains: id
}
}
},
}
}
},]} : {})
},
@@ -78,21 +67,18 @@ if (id) {
erstellungsdatum: "desc"
},
include: {
aufnahmen: {
include: {
bilder: true,
unterlagen: true,
bedarfsausweise_wohnen: true,
verbrauchsausweise_gewerbe: true,
verbrauchsausweise_wohnen: true
}
}
bilder: true,
unterlagen: true,
bedarfsausweise_wohnen: true,
verbrauchsausweise_gewerbe: true,
verbrauchsausweise_wohnen: true,
objekt: true
},
take: 25,
skip: (page - 1) * 25
take: 1,
skip: (page - 1)
})
} else {
objekte = await prisma.objekt.findMany({
aufnahme = await prisma.aufnahme.findFirst({
where: user.rolle === Enums.BenutzerRolle.USER ? {
benutzer: {
id: user.id
@@ -100,64 +86,52 @@ if (id) {
} : {
OR: [
{
aufnahmen: {
every: {
verbrauchsausweise_gewerbe: {
some: {
ausgestellt: false,
bestellt: true
}
},
verbrauchsausweise_gewerbe: {
some: {
ausgestellt: false,
bestellt: true
}
}
},
},
{
aufnahmen: {
every: {
verbrauchsausweise_wohnen: {
some: {
ausgestellt: false,
bestellt: true
}
},
}
}
},
{
aufnahmen: {
every: {
bedarfsausweise_wohnen: {
some: {
ausgestellt: false,
bestellt: true
}
},
}
}
}]
},
orderBy: {
erstellungsdatum: "desc"
},
include: {
aufnahmen: {
include: {
bilder: true,
unterlagen: true,
bedarfsausweise_wohnen: true,
verbrauchsausweise_gewerbe: true,
verbrauchsausweise_wohnen: true
}
}
bilder: true,
unterlagen: true,
bedarfsausweise_wohnen: true,
verbrauchsausweise_gewerbe: true,
verbrauchsausweise_wohnen: true,
objekt: true
},
take: 25,
skip: (page - 1) * 25
take: 1,
skip: (page - 1)
})
}
---
<UserLayout title="Objekte" {user}>
<DashboardModule {user} {objekte} totalPages={Math.ceil(totalPages / 25)} page={page} {id} client:load />
<DashboardAufnahmeModule {user} {aufnahme} benutzer={user} objekt={aufnahme.objekt} 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>