Dashboard
This commit is contained in:
@@ -5,6 +5,7 @@ export const createCaller = createCallerFactory({
|
|||||||
"klimafaktoren": await import("../src/pages/api/klimafaktoren.ts"),
|
"klimafaktoren": await import("../src/pages/api/klimafaktoren.ts"),
|
||||||
"postleitzahlen": await import("../src/pages/api/postleitzahlen.ts"),
|
"postleitzahlen": await import("../src/pages/api/postleitzahlen.ts"),
|
||||||
"unterlage": await import("../src/pages/api/unterlage.ts"),
|
"unterlage": await import("../src/pages/api/unterlage.ts"),
|
||||||
|
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
||||||
"admin/ausstellen": await import("../src/pages/api/admin/ausstellen.ts"),
|
"admin/ausstellen": await import("../src/pages/api/admin/ausstellen.ts"),
|
||||||
"admin/bestellbestaetigung": await import("../src/pages/api/admin/bestellbestaetigung.ts"),
|
"admin/bestellbestaetigung": await import("../src/pages/api/admin/bestellbestaetigung.ts"),
|
||||||
"admin/erinnern": await import("../src/pages/api/admin/erinnern.ts"),
|
"admin/erinnern": await import("../src/pages/api/admin/erinnern.ts"),
|
||||||
@@ -12,15 +13,14 @@ export const createCaller = createCallerFactory({
|
|||||||
"admin/post-ausstellen": await import("../src/pages/api/admin/post-ausstellen.ts"),
|
"admin/post-ausstellen": await import("../src/pages/api/admin/post-ausstellen.ts"),
|
||||||
"admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"),
|
"admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"),
|
||||||
"admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"),
|
"admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"),
|
||||||
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
"bedarfsausweis-gewerbe/[id]": await import("../src/pages/api/bedarfsausweis-gewerbe/[id].ts"),
|
||||||
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
|
"bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"),
|
||||||
"auth/access-token": await import("../src/pages/api/auth/access-token.ts"),
|
"auth/access-token": await import("../src/pages/api/auth/access-token.ts"),
|
||||||
"auth/passwort-vergessen": await import("../src/pages/api/auth/passwort-vergessen.ts"),
|
"auth/passwort-vergessen": await import("../src/pages/api/auth/passwort-vergessen.ts"),
|
||||||
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
|
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
|
||||||
"bedarfsausweis-gewerbe/[id]": await import("../src/pages/api/bedarfsausweis-gewerbe/[id].ts"),
|
|
||||||
"bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"),
|
|
||||||
"bedarfsausweis-wohnen/[id]": await import("../src/pages/api/bedarfsausweis-wohnen/[id].ts"),
|
"bedarfsausweis-wohnen/[id]": await import("../src/pages/api/bedarfsausweis-wohnen/[id].ts"),
|
||||||
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
|
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
|
||||||
|
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
|
||||||
"bilder/[id]": await import("../src/pages/api/bilder/[id].ts"),
|
"bilder/[id]": await import("../src/pages/api/bilder/[id].ts"),
|
||||||
"geg-nachweis-gewerbe/[id]": await import("../src/pages/api/geg-nachweis-gewerbe/[id].ts"),
|
"geg-nachweis-gewerbe/[id]": await import("../src/pages/api/geg-nachweis-gewerbe/[id].ts"),
|
||||||
"geg-nachweis-gewerbe": await import("../src/pages/api/geg-nachweis-gewerbe/index.ts"),
|
"geg-nachweis-gewerbe": await import("../src/pages/api/geg-nachweis-gewerbe/index.ts"),
|
||||||
@@ -31,12 +31,12 @@ export const createCaller = createCallerFactory({
|
|||||||
"rechnung/anfordern": await import("../src/pages/api/rechnung/anfordern.ts"),
|
"rechnung/anfordern": await import("../src/pages/api/rechnung/anfordern.ts"),
|
||||||
"rechnung": await import("../src/pages/api/rechnung/index.ts"),
|
"rechnung": await import("../src/pages/api/rechnung/index.ts"),
|
||||||
"ticket": await import("../src/pages/api/ticket/index.ts"),
|
"ticket": await import("../src/pages/api/ticket/index.ts"),
|
||||||
"user": await import("../src/pages/api/user/index.ts"),
|
|
||||||
"user/self": await import("../src/pages/api/user/self.ts"),
|
|
||||||
"verbrauchsausweis-gewerbe/[id]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[id].ts"),
|
|
||||||
"verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/index.ts"),
|
|
||||||
"verbrauchsausweis-wohnen/[id]": await import("../src/pages/api/verbrauchsausweis-wohnen/[id].ts"),
|
"verbrauchsausweis-wohnen/[id]": await import("../src/pages/api/verbrauchsausweis-wohnen/[id].ts"),
|
||||||
"verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"),
|
"verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"),
|
||||||
|
"verbrauchsausweis-gewerbe/[id]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[id].ts"),
|
||||||
|
"verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/index.ts"),
|
||||||
|
"user": await import("../src/pages/api/user/index.ts"),
|
||||||
|
"user/self": await import("../src/pages/api/user/self.ts"),
|
||||||
"webhooks/mollie": await import("../src/pages/api/webhooks/mollie.ts"),
|
"webhooks/mollie": await import("../src/pages/api/webhooks/mollie.ts"),
|
||||||
"aufnahme/[id]/bilder": await import("../src/pages/api/aufnahme/[id]/bilder.ts"),
|
"aufnahme/[id]/bilder": await import("../src/pages/api/aufnahme/[id]/bilder.ts"),
|
||||||
"aufnahme/[id]": await import("../src/pages/api/aufnahme/[id]/index.ts"),
|
"aufnahme/[id]": await import("../src/pages/api/aufnahme/[id]/index.ts"),
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { AufnahmeKomplettClient, BenutzerClient } from "#components/Ausweis/types.js";
|
import { AufnahmeKomplettClient, BenutzerClient } from "#components/Ausweis/types.js";
|
||||||
import AusweisPruefenNotification from "#components/AusweisPruefenNotification.svelte";
|
|
||||||
import Carousel from "#components/Carousel.svelte";
|
import Carousel from "#components/Carousel.svelte";
|
||||||
import DashboardAusweis from "#components/Dashboard/DashboardAusweis.svelte";
|
import DashboardAusweis from "#components/Dashboard/DashboardAusweis.svelte";
|
||||||
import DashboardNachweis from "#components/Dashboard/DashboardNachweis.svelte";
|
|
||||||
import NotificationWrapper from "#components/Notifications/NotificationWrapper.svelte";
|
import NotificationWrapper from "#components/Notifications/NotificationWrapper.svelte";
|
||||||
import { Objekt } from "#lib/client/prisma.js";
|
import { Objekt } from "#lib/client/prisma.js";
|
||||||
import mime from "mime"
|
import mime from "mime"
|
||||||
@@ -90,7 +88,7 @@
|
|||||||
{#each aufnahme.verbrauchsausweise_gewerbe as ausweis}
|
{#each aufnahme.verbrauchsausweise_gewerbe as ausweis}
|
||||||
<DashboardAusweis {benutzer} {ausweis} {aufnahme} {objekt} rechnung={ausweis.rechnung}></DashboardAusweis>
|
<DashboardAusweis {benutzer} {ausweis} {aufnahme} {objekt} rechnung={ausweis.rechnung}></DashboardAusweis>
|
||||||
{/each}
|
{/each}
|
||||||
{#each aufnahme.geg_nachweise_wohnen as nachweis}
|
<!-- {#each aufnahme.geg_nachweise_wohnen as nachweis}
|
||||||
<DashboardAusweis {benutzer} ausweis={nachweis} {aufnahme} {objekt} rechnung={nachweis.rechnung}></DashboardAusweis>
|
<DashboardAusweis {benutzer} ausweis={nachweis} {aufnahme} {objekt} rechnung={nachweis.rechnung}></DashboardAusweis>
|
||||||
{/each}
|
{/each}
|
||||||
{#each aufnahme.geg_nachweise_gewerbe as nachweis}
|
{#each aufnahme.geg_nachweise_gewerbe as nachweis}
|
||||||
@@ -98,7 +96,7 @@
|
|||||||
{/each}
|
{/each}
|
||||||
{#each aufnahme.bedarfsausweise_gewerbe as nachweis}
|
{#each aufnahme.bedarfsausweise_gewerbe as nachweis}
|
||||||
<DashboardAusweis {benutzer} ausweis={nachweis} {aufnahme} {objekt} rechnung={nachweis.rechnung}></DashboardAusweis>
|
<DashboardAusweis {benutzer} ausweis={nachweis} {aufnahme} {objekt} rechnung={nachweis.rechnung}></DashboardAusweis>
|
||||||
{/each}
|
{/each} -->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="fixed bottom-8 right-8 flex flex-col gap-4">
|
<div class="fixed bottom-8 right-8 flex flex-col gap-4">
|
||||||
|
|||||||
@@ -39,31 +39,49 @@ const aufnahme = await prisma.aufnahme.findUnique({
|
|||||||
bilder: true,
|
bilder: true,
|
||||||
unterlagen: true,
|
unterlagen: true,
|
||||||
bedarfsausweise_wohnen: {
|
bedarfsausweise_wohnen: {
|
||||||
|
orderBy: {
|
||||||
|
updated_at: "desc"
|
||||||
|
},
|
||||||
include: {
|
include: {
|
||||||
rechnung: true
|
rechnung: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
verbrauchsausweise_gewerbe: {
|
verbrauchsausweise_gewerbe: {
|
||||||
|
orderBy: {
|
||||||
|
updated_at: "desc"
|
||||||
|
},
|
||||||
include: {
|
include: {
|
||||||
rechnung: true
|
rechnung: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
verbrauchsausweise_wohnen: {
|
verbrauchsausweise_wohnen: {
|
||||||
|
orderBy: {
|
||||||
|
updated_at: "desc"
|
||||||
|
},
|
||||||
include: {
|
include: {
|
||||||
rechnung: true
|
rechnung: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
bedarfsausweise_gewerbe: {
|
bedarfsausweise_gewerbe: {
|
||||||
|
orderBy: {
|
||||||
|
updated_at: "desc"
|
||||||
|
},
|
||||||
include: {
|
include: {
|
||||||
rechnung: true
|
rechnung: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
geg_nachweise_gewerbe: {
|
geg_nachweise_gewerbe: {
|
||||||
|
orderBy: {
|
||||||
|
updated_at: "desc"
|
||||||
|
},
|
||||||
include: {
|
include: {
|
||||||
rechnung: true
|
rechnung: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
geg_nachweise_wohnen: {
|
geg_nachweise_wohnen: {
|
||||||
|
orderBy: {
|
||||||
|
updated_at: "desc"
|
||||||
|
},
|
||||||
include: {
|
include: {
|
||||||
rechnung: true
|
rechnung: true
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
---
|
|
||||||
@@ -3,6 +3,7 @@ import UserLayout from "#layouts/DashboardLayout.astro";
|
|||||||
import { Enums, prisma } from "#lib/server/prisma";
|
import { Enums, prisma } from "#lib/server/prisma";
|
||||||
import DashboardModule from "#modules/Dashboard/DashboardModule.svelte";
|
import DashboardModule from "#modules/Dashboard/DashboardModule.svelte";
|
||||||
import { getCurrentUser } from "#lib/server/user";
|
import { getCurrentUser } from "#lib/server/user";
|
||||||
|
import DashboardAufnahmeModule from "#modules/Dashboard/DashboardAufnahmeModule.svelte";
|
||||||
|
|
||||||
const params = Astro.params;
|
const params = Astro.params;
|
||||||
|
|
||||||
@@ -16,7 +17,7 @@ if (!user) {
|
|||||||
return Astro.redirect("/auth/login")
|
return Astro.redirect("/auth/login")
|
||||||
}
|
}
|
||||||
|
|
||||||
const totalPages = await prisma.objekt.count({
|
const totalPages = await prisma.aufnahme.count({
|
||||||
where: user.rolle === Enums.BenutzerRolle.USER ? {
|
where: user.rolle === Enums.BenutzerRolle.USER ? {
|
||||||
benutzer: {
|
benutzer: {
|
||||||
id: user.id
|
id: user.id
|
||||||
@@ -24,9 +25,9 @@ const totalPages = await prisma.objekt.count({
|
|||||||
} : {}
|
} : {}
|
||||||
})
|
})
|
||||||
|
|
||||||
let objekte = []
|
let aufnahme;
|
||||||
if (id) {
|
if (id) {
|
||||||
objekte = await prisma.objekt.findMany({
|
aufnahme = await prisma.aufnahme.findFirst({
|
||||||
where: user.rolle === Enums.BenutzerRolle.USER ? {
|
where: user.rolle === Enums.BenutzerRolle.USER ? {
|
||||||
benutzer: {
|
benutzer: {
|
||||||
id: user.id
|
id: user.id
|
||||||
@@ -35,42 +36,30 @@ if (id) {
|
|||||||
...(id ? {
|
...(id ? {
|
||||||
OR: [
|
OR: [
|
||||||
{
|
{
|
||||||
aufnahmen: {
|
|
||||||
every: {
|
|
||||||
verbrauchsausweise_gewerbe: {
|
verbrauchsausweise_gewerbe: {
|
||||||
some: {
|
some: {
|
||||||
id: {
|
id: {
|
||||||
contains: id
|
contains: id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
aufnahmen: {
|
|
||||||
every: {
|
|
||||||
verbrauchsausweise_wohnen: {
|
verbrauchsausweise_wohnen: {
|
||||||
some: {
|
some: {
|
||||||
id: {
|
id: {
|
||||||
contains: id
|
contains: id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
aufnahmen: {
|
|
||||||
every: {
|
|
||||||
bedarfsausweise_wohnen: {
|
bedarfsausweise_wohnen: {
|
||||||
some: {
|
some: {
|
||||||
id: {
|
id: {
|
||||||
contains: id
|
contains: id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},]} : {})
|
},]} : {})
|
||||||
},
|
},
|
||||||
@@ -78,21 +67,18 @@ if (id) {
|
|||||||
erstellungsdatum: "desc"
|
erstellungsdatum: "desc"
|
||||||
},
|
},
|
||||||
include: {
|
include: {
|
||||||
aufnahmen: {
|
bilder: true,
|
||||||
include: {
|
unterlagen: true,
|
||||||
bilder: true,
|
bedarfsausweise_wohnen: true,
|
||||||
unterlagen: true,
|
verbrauchsausweise_gewerbe: true,
|
||||||
bedarfsausweise_wohnen: true,
|
verbrauchsausweise_wohnen: true,
|
||||||
verbrauchsausweise_gewerbe: true,
|
objekt: true
|
||||||
verbrauchsausweise_wohnen: true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
take: 25,
|
take: 1,
|
||||||
skip: (page - 1) * 25
|
skip: (page - 1)
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
objekte = await prisma.objekt.findMany({
|
aufnahme = await prisma.aufnahme.findFirst({
|
||||||
where: user.rolle === Enums.BenutzerRolle.USER ? {
|
where: user.rolle === Enums.BenutzerRolle.USER ? {
|
||||||
benutzer: {
|
benutzer: {
|
||||||
id: user.id
|
id: user.id
|
||||||
@@ -100,64 +86,52 @@ if (id) {
|
|||||||
} : {
|
} : {
|
||||||
OR: [
|
OR: [
|
||||||
{
|
{
|
||||||
aufnahmen: {
|
verbrauchsausweise_gewerbe: {
|
||||||
every: {
|
some: {
|
||||||
verbrauchsausweise_gewerbe: {
|
ausgestellt: false,
|
||||||
some: {
|
bestellt: true
|
||||||
ausgestellt: false,
|
|
||||||
bestellt: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
aufnahmen: {
|
|
||||||
every: {
|
|
||||||
verbrauchsausweise_wohnen: {
|
verbrauchsausweise_wohnen: {
|
||||||
some: {
|
some: {
|
||||||
ausgestellt: false,
|
ausgestellt: false,
|
||||||
bestellt: true
|
bestellt: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
aufnahmen: {
|
|
||||||
every: {
|
|
||||||
bedarfsausweise_wohnen: {
|
bedarfsausweise_wohnen: {
|
||||||
some: {
|
some: {
|
||||||
ausgestellt: false,
|
ausgestellt: false,
|
||||||
bestellt: true
|
bestellt: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
|
||||||
}
|
|
||||||
}]
|
}]
|
||||||
},
|
},
|
||||||
orderBy: {
|
orderBy: {
|
||||||
erstellungsdatum: "desc"
|
erstellungsdatum: "desc"
|
||||||
},
|
},
|
||||||
include: {
|
include: {
|
||||||
aufnahmen: {
|
bilder: true,
|
||||||
include: {
|
unterlagen: true,
|
||||||
bilder: true,
|
bedarfsausweise_wohnen: true,
|
||||||
unterlagen: true,
|
verbrauchsausweise_gewerbe: true,
|
||||||
bedarfsausweise_wohnen: true,
|
verbrauchsausweise_wohnen: true,
|
||||||
verbrauchsausweise_gewerbe: true,
|
objekt: true
|
||||||
verbrauchsausweise_wohnen: true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
take: 25,
|
take: 1,
|
||||||
skip: (page - 1) * 25
|
skip: (page - 1)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<UserLayout title="Objekte" {user}>
|
<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>
|
</UserLayout>
|
||||||
Reference in New Issue
Block a user