Admin formular aufrufen
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { AufnahmeKomplettClient, BedarfsausweisWohnenClient, getAusweisartFromUUID, ObjektKomplettClient, RechnungClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
import { AufnahmeKomplettClient, BedarfsausweisWohnenClient, BenutzerClient, getAusweisartFromUUID, RechnungClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import { dialogs } from "svelte-dialogs";
|
import { dialogs } from "svelte-dialogs";
|
||||||
import {
|
import {
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
import { api } from "astro-typesafe-api/client";
|
import { api } from "astro-typesafe-api/client";
|
||||||
import Cookies from "js-cookie";
|
import Cookies from "js-cookie";
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
||||||
import { AusweisTyp, Enums, Objekt } from "#lib/client/prisma.js";
|
import { Enums, Objekt } from "#lib/client/prisma.js";
|
||||||
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016 } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016.js";
|
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016 } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016.js";
|
||||||
import { shortenUID } from "#server/lib/hash.js";
|
import { shortenUID } from "#server/lib/hash.js";
|
||||||
|
|
||||||
@@ -21,6 +21,7 @@
|
|||||||
export let aufnahme: AufnahmeKomplettClient;
|
export let aufnahme: AufnahmeKomplettClient;
|
||||||
export let rechnung: RechnungClient;
|
export let rechnung: RechnungClient;
|
||||||
export let objekt: Objekt;
|
export let objekt: Objekt;
|
||||||
|
export let benutzer: BenutzerClient;
|
||||||
const progress = ausweis.ausgestellt ? 100 : ausweis.bestellt ? 66 : 33;
|
const progress = ausweis.ausgestellt ? 100 : ausweis.bestellt ? 66 : 33;
|
||||||
|
|
||||||
const ausweisart = getAusweisartFromUUID(ausweis.uid);
|
const ausweisart = getAusweisartFromUUID(ausweis.uid);
|
||||||
@@ -250,6 +251,21 @@
|
|||||||
>Bearbeiten</a>
|
>Bearbeiten</a>
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
{#if benutzer.rolle === Enums.BenutzerRolle.ADMIN}
|
||||||
|
<!-- TODO -->
|
||||||
|
{#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen}
|
||||||
|
<a
|
||||||
|
class="button text-sm"
|
||||||
|
href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?uid={ausweis.uid}"
|
||||||
|
>Formular</a>
|
||||||
|
{:else if ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe}
|
||||||
|
<a
|
||||||
|
class="button text-sm"
|
||||||
|
href="/energieausweis-erstellen/verbrauchsausweis-gewerbe?uid={ausweis.uid}"
|
||||||
|
>Formular</a>
|
||||||
|
{/if}
|
||||||
|
{/if}
|
||||||
|
|
||||||
<a
|
<a
|
||||||
class="p-2 rounded-lg hover:bg-gray-200"
|
class="p-2 rounded-lg hover:bg-gray-200"
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
export let user: BenutzerClient;
|
export let user: BenutzerClient;
|
||||||
export let aufnahme: AufnahmeKomplettClient;
|
export let aufnahme: AufnahmeKomplettClient;
|
||||||
export let objekt: Objekt;
|
export let objekt: Objekt;
|
||||||
|
export let benutzer: BenutzerClient;
|
||||||
|
|
||||||
|
|
||||||
let dropdownOpen = false;
|
let dropdownOpen = false;
|
||||||
@@ -64,13 +65,13 @@
|
|||||||
|
|
||||||
<div class="my-4 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3">
|
<div class="my-4 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3">
|
||||||
{#each aufnahme.verbrauchsausweise_wohnen as ausweis}
|
{#each aufnahme.verbrauchsausweise_wohnen as ausweis}
|
||||||
<DashboardAusweis {ausweis} {aufnahme} {objekt} rechnung={ausweis.rechnung}></DashboardAusweis>
|
<DashboardAusweis {benutzer} {ausweis} {aufnahme} {objekt} rechnung={ausweis.rechnung}></DashboardAusweis>
|
||||||
{/each}
|
{/each}
|
||||||
{#each aufnahme.bedarfsausweise_wohnen as ausweis}
|
{#each aufnahme.bedarfsausweise_wohnen as ausweis}
|
||||||
<DashboardAusweis {ausweis} {aufnahme} {objekt} rechnung={ausweis.rechnung}></DashboardAusweis>
|
<DashboardAusweis {benutzer} {ausweis} {aufnahme} {objekt} rechnung={ausweis.rechnung}></DashboardAusweis>
|
||||||
{/each}
|
{/each}
|
||||||
{#each aufnahme.verbrauchsausweise_gewerbe as ausweis}
|
{#each aufnahme.verbrauchsausweise_gewerbe as ausweis}
|
||||||
<DashboardAusweis {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}
|
||||||
<DashboardNachweis {nachweis} {aufnahme} {objekt}></DashboardNachweis>
|
<DashboardNachweis {nachweis} {aufnahme} {objekt}></DashboardNachweis>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { authorizationMiddleware } from "#lib/middleware/authorization.js";
|
import { authorizationMiddleware } from "#lib/middleware/authorization.js";
|
||||||
import { prisma } from "#lib/server/prisma.js";
|
import { Enums, prisma } from "#lib/server/prisma.js";
|
||||||
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
|
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
import { UUidWithPrefix } from "#components/Ausweis/types.js";
|
import { UUidWithPrefix } from "#components/Ausweis/types.js";
|
||||||
@@ -59,10 +59,10 @@ export const GET = defineApiRoute({
|
|||||||
const { uid } = ctx.params;
|
const { uid } = ctx.params;
|
||||||
|
|
||||||
const aufnahme = await prisma.aufnahme.findUnique({
|
const aufnahme = await prisma.aufnahme.findUnique({
|
||||||
where: {
|
where: user.rolle === Enums.BenutzerRolle.USER ? {
|
||||||
uid,
|
uid,
|
||||||
benutzer_id: user.id
|
benutzer_id: user.id
|
||||||
},
|
} : { uid },
|
||||||
select: {
|
select: {
|
||||||
benutzer_id: true,
|
benutzer_id: true,
|
||||||
bilder: {
|
bilder: {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { AufnahmeClient, OptionalNullable, UUidWithPrefix, ZodOverlap } from "#components/Ausweis/types.js";
|
import { AufnahmeClient, OptionalNullable, UUidWithPrefix, ZodOverlap } from "#components/Ausweis/types.js";
|
||||||
import { exclude } from "#lib/exclude.js";
|
import { exclude } from "#lib/exclude.js";
|
||||||
import { authorizationMiddleware } from "#lib/middleware/authorization.js";
|
import { authorizationMiddleware } from "#lib/middleware/authorization.js";
|
||||||
import { prisma } from "#lib/server/prisma.js";
|
import { Enums, prisma } from "#lib/server/prisma.js";
|
||||||
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
|
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
|
||||||
import { AufnahmeSchema } from "src/generated/zod/aufnahme.js";
|
import { AufnahmeSchema } from "src/generated/zod/aufnahme.js";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
@@ -71,10 +71,10 @@ export const GET = defineApiRoute({
|
|||||||
const { uid } = context.params;
|
const { uid } = context.params;
|
||||||
|
|
||||||
const aufnahme = await prisma.aufnahme.findUnique({
|
const aufnahme = await prisma.aufnahme.findUnique({
|
||||||
where: {
|
where: user.rolle === Enums.BenutzerRolle.USER ? {
|
||||||
uid,
|
uid,
|
||||||
benutzer_id: user.id
|
benutzer_id: user.id
|
||||||
},
|
} : { uid },
|
||||||
include: {
|
include: {
|
||||||
objekt: {
|
objekt: {
|
||||||
select: {
|
select: {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { ObjektClient, OptionalNullable, ZodOverlap } from "#components/Ausweis/types.js";
|
import { ObjektClient, OptionalNullable, ZodOverlap } from "#components/Ausweis/types.js";
|
||||||
import { exclude } from "#lib/exclude.js";
|
import { exclude } from "#lib/exclude.js";
|
||||||
import { authorizationMiddleware } from "#lib/middleware/authorization.js";
|
import { authorizationMiddleware } from "#lib/middleware/authorization.js";
|
||||||
import { ObjektSchema, prisma } from "#lib/server/prisma.js";
|
import { Enums, ObjektSchema, prisma } from "#lib/server/prisma.js";
|
||||||
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
|
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
|
||||||
@@ -69,10 +69,10 @@ export const GET = defineApiRoute({
|
|||||||
const { uid } = ctx.params;
|
const { uid } = ctx.params;
|
||||||
|
|
||||||
const objekt = await prisma.objekt.findUnique({
|
const objekt = await prisma.objekt.findUnique({
|
||||||
where: {
|
where: user.rolle === Enums.BenutzerRolle.USER ? {
|
||||||
uid,
|
uid,
|
||||||
benutzer_id: user.id
|
benutzer_id: user.id
|
||||||
},
|
} : { uid },
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!objekt) {
|
if (!objekt) {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { OptionalNullable, UUidWithPrefix, VerbrauchsausweisWohnenClient, ZodOverlap } from "#components/Ausweis/types.js";
|
import { OptionalNullable, UUidWithPrefix, VerbrauchsausweisWohnenClient, ZodOverlap } from "#components/Ausweis/types.js";
|
||||||
import { exclude } from "#lib/exclude.js";
|
import { exclude } from "#lib/exclude.js";
|
||||||
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
|
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
|
||||||
import { prisma } from "#lib/server/prisma.js";
|
import { Enums, prisma } from "#lib/server/prisma.js";
|
||||||
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
|
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
|
||||||
import { VerbrauchsausweisWohnenSchema } from "src/generated/zod/verbrauchsausweiswohnen.js";
|
import { VerbrauchsausweisWohnenSchema } from "src/generated/zod/verbrauchsausweiswohnen.js";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
@@ -175,10 +175,10 @@ export const GET = defineApiRoute({
|
|||||||
}
|
}
|
||||||
|
|
||||||
const ausweis = await prisma.verbrauchsausweisWohnen.findUnique({
|
const ausweis = await prisma.verbrauchsausweisWohnen.findUnique({
|
||||||
where: {
|
where: user.rolle === Enums.BenutzerRolle.USER ? {
|
||||||
uid,
|
uid,
|
||||||
benutzer_id: user.id
|
benutzer_id: user.id
|
||||||
},
|
} : { uid },
|
||||||
include: {
|
include: {
|
||||||
benutzer: {
|
benutzer: {
|
||||||
select: {
|
select: {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
import { createCaller } from "../../../astro-typesafe-api-caller.js";
|
import { createCaller } from "../../../astro-typesafe-api-caller.js";
|
||||||
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
|
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
||||||
import { prisma } from "#lib/server/prisma";
|
import { Enums, prisma } from "#lib/server/prisma";
|
||||||
import UserLayout from "#layouts/DashboardLayout.astro";
|
import UserLayout from "#layouts/DashboardLayout.astro";
|
||||||
import DashboardAufnahmeModule from "#modules/Dashboard/DashboardAufnahmeModule.svelte";
|
import DashboardAufnahmeModule from "#modules/Dashboard/DashboardAufnahmeModule.svelte";
|
||||||
|
|
||||||
@@ -26,13 +26,14 @@ if (!user) {
|
|||||||
return Astro.redirect("/auth/login")
|
return Astro.redirect("/auth/login")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const aufnahme = await prisma.aufnahme.findUnique({
|
const aufnahme = await prisma.aufnahme.findUnique({
|
||||||
where: {
|
where: user.rolle === Enums.BenutzerRolle.USER ? {
|
||||||
benutzer: {
|
benutzer: {
|
||||||
uid: user.uid
|
uid: user.uid
|
||||||
},
|
},
|
||||||
uid
|
uid
|
||||||
},
|
} : { uid },
|
||||||
include: {
|
include: {
|
||||||
objekt: true,
|
objekt: true,
|
||||||
bilder: true,
|
bilder: true,
|
||||||
@@ -77,5 +78,5 @@ if (!aufnahme) {
|
|||||||
---
|
---
|
||||||
|
|
||||||
<UserLayout title="Dashboard" {user}>
|
<UserLayout title="Dashboard" {user}>
|
||||||
<DashboardAufnahmeModule {user} {aufnahme} objekt={aufnahme.objekt} client:load/>
|
<DashboardAufnahmeModule {user} {aufnahme} benutzer={user} objekt={aufnahme.objekt} client:only/>
|
||||||
</UserLayout>
|
</UserLayout>
|
||||||
@@ -3,7 +3,7 @@ import { createCaller } from "../../astro-typesafe-api-caller.js";
|
|||||||
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
|
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
|
||||||
import DashboardModule from "#modules/Dashboard/DashboardModule.svelte";
|
import DashboardModule from "#modules/Dashboard/DashboardModule.svelte";
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
|
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
|
||||||
import { prisma } from "#lib/server/prisma";
|
import { Enums, prisma } from "#lib/server/prisma";
|
||||||
import DashboardLayout from "#layouts/DashboardLayout.astro";
|
import DashboardLayout from "#layouts/DashboardLayout.astro";
|
||||||
|
|
||||||
const accessTokenValid = await validateAccessTokenServer(Astro);
|
const accessTokenValid = await validateAccessTokenServer(Astro);
|
||||||
@@ -25,12 +25,12 @@ if (!user) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const objekte = await prisma.objekt.findMany({
|
const objekte = await prisma.objekt.findMany({
|
||||||
where: {
|
where: user.rolle === Enums.BenutzerRolle.USER ? {
|
||||||
benutzer: {
|
benutzer: {
|
||||||
uid: user.uid
|
uid: user.uid
|
||||||
}
|
}
|
||||||
},
|
} : {},
|
||||||
take: 10,
|
take: 25,
|
||||||
orderBy: {
|
orderBy: {
|
||||||
erstellungsdatum: "desc"
|
erstellungsdatum: "desc"
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user