Partner
This commit is contained in:
3
.crontab
3
.crontab
@@ -1,3 +0,0 @@
|
||||
# Jeden Monat müssen wir die neuen Klimafaktoren vom DWD abholen, der Cronjob läuft immer am 28. für die höchste Wahrscheinlichkeit
|
||||
# dass die Daten schon da sind, falls der DWD mal später dran ist...
|
||||
0 12 28 * * bun ./src/cronjobs/update-dwd-klimafaktoren.ts
|
||||
39
.ssh/id_rsa
39
.ssh/id_rsa
@@ -1,39 +0,0 @@
|
||||
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||
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
|
||||
TlYtRkE1MDdOVgEC
|
||||
-----END OPENSSH PRIVATE KEY-----
|
||||
@@ -1 +0,0 @@
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDNQZe3cZhxPffjiJYYYZyAvTMMqGSuJ6KRn7KrMOku4TNHC7d6m5Oa+YelPjlrAfJavqmA4+kPswZIOjXcFVECMJqlgLbdEvzsTdlFofpp7NW1X62OXq9wJG1DHi5BY60bNXwyLzgSsHG3fEqjX2J7JWgmcmKD1bugtt/jojT/cnPfVJFCiR+gNztMUeu1UTbVRmDE24N8oyEywFplw80/5FulyzuzwF3dDU9+tsDptMYZrgNgBHkeCb7P8Uxy7U9KsADh/H5jFCuA0LhM2XxPcdKwaee2E2hAwJyXctwCLLQLUlpapdYaNjBrCd9R2AHaeFv2Lm37K9tP9QvX6hsiElHH0RorgJJw2tprRlaZrCX81joO6a+XLw6l5TAxrKexkQU8RlXF1cVQdVEtHvg0bHbeyrqo9hm7LlsWFs8moheyHY+XqC8UTodlyblTqOAk5oe33wxIUiQgu1Z5pvRxKYICiS3xcX797O7fuZsS83MI1mkVgb13oxe4rkc4bTE= moritz@moritz-ASUS-TUF-Gaming-A15-FA507NV-FA507NV
|
||||
7
Makefile
7
Makefile
@@ -1,4 +1,4 @@
|
||||
.PHONY: dev online-energieausweis all prod backup run-database build-database install-dependencies wait-for-database prod database prisma-studio backup-database-cronjob
|
||||
.PHONY: dev online-energieausweis all prod backup run-database build-database install-dependencies wait-for-database prod database prisma-studio backup-database-cronjob update-dwd-klimafaktoren-cron
|
||||
|
||||
DB_CONTAINER_NAME := database
|
||||
DB_NAME := main
|
||||
@@ -57,7 +57,10 @@ all:
|
||||
mkdir -p ~/logs
|
||||
bun run dev 2>&1 | tee ~/logs/`date '+%d-%m-%Y_%H:%M:%S'`.log
|
||||
|
||||
prod: install-dependencies prisma-studio backup-database-cronjob
|
||||
update-dwd-klimafaktoren-cron:
|
||||
pm2 start bun --name "update-dwd-klimafaktoren-cron" --cron "0 12 28 * *" -- src/cronjobs/update-dwd-klimafaktoren.ts
|
||||
|
||||
prod: install-dependencies prisma-studio backup-database-cronjob update-dwd-klimafaktoren-cron
|
||||
bun run build
|
||||
mkdir -p ~/logs
|
||||
mkdir -p ~/persistent/online-energieausweis
|
||||
|
||||
209
src/components/design/header/AusweisHeaderPartner.astro
Normal file
209
src/components/design/header/AusweisHeaderPartner.astro
Normal file
@@ -0,0 +1,209 @@
|
||||
---
|
||||
export interface Props {
|
||||
tab: number;
|
||||
}
|
||||
|
||||
const { tab } = Astro.props;
|
||||
const { params } = Astro;
|
||||
const partner = params.partner;
|
||||
|
||||
const pathname = Astro.url.pathname;
|
||||
const isVA = pathname.includes("verbrauchsausweis-wohngebaeude");
|
||||
const isVAG = pathname.includes("verbrauchsausweis-gewerbe");
|
||||
const isBA = pathname.includes("bedarfsausweis-wohngebaeude");
|
||||
const isBAG = pathname.includes("bedarfsausweis-gewerbe-anfragen");
|
||||
const isGGW = pathname.includes("geg-nachweis-wohnen-anfragen");
|
||||
const isGGG = pathname.includes("geg-nachweis-gewerbe-anfragen");
|
||||
const isWEA = pathname.includes("welcher-ausweis");
|
||||
|
||||
const isWelt = pathname.includes("immowelt");
|
||||
const isNET = pathname.includes("immonet");
|
||||
---
|
||||
|
||||
<header id="header" class="w-full bg-white h-[81px] sm:pl-8">
|
||||
<div class="grid grid-cols-[min-content_1fr] items-center">
|
||||
<div class="w-[150px] h-[80px]">
|
||||
<div
|
||||
class="w-full h-full grid grid-col-1 justify-items-center items-center"
|
||||
>
|
||||
<img
|
||||
class={isNET
|
||||
? "w-[149px]"
|
||||
: isWelt
|
||||
? "w-[109px]"
|
||||
: "w-[109px]"}
|
||||
src={`/images/partner/${partner}/${partner}.svg`}
|
||||
alt={partner}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<ul class="navlist">
|
||||
<li>
|
||||
<a
|
||||
href={`/${partner}/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/`}
|
||||
><button class={tab === 0 ? "glow" : ""}
|
||||
>Verbrauchsausweis</button
|
||||
></a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href={`/${partner}/energieausweis-erstellen/verbrauchsausweis-gewerbe/`}
|
||||
><button class={tab === 1 ? "glow" : ""}
|
||||
>Verbrauchsausweis Gewerbe</button
|
||||
></a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href={`/${partner}/energieausweis-erstellen/bedarfsausweis-wohngebaeude/`}
|
||||
><button class={tab === 2 ? "glow" : ""}
|
||||
>Bedarfsausweis</button
|
||||
></a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href={`/${partner}/angebot-anfragen/bedarfsausweis-gewerbe-anfragen/`}
|
||||
><button class={tab === 3 ? "glow" : ""}
|
||||
>Bedarfsausweis Gewerbe</button
|
||||
></a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href={`/${partner}/angebot-anfragen/geg-nachweis-wohnen-anfragen/`}
|
||||
><button class={tab === 4 ? "glow" : ""}
|
||||
>GEG Nachweis Wohngebäude</button
|
||||
></a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href={`/${partner}/angebot-anfragen/geg-nachweis-gewerbe-anfragen/`}
|
||||
><button class={tab === 5 ? "glow" : ""}
|
||||
>GEG Nachweis Gewerbe</button
|
||||
></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href={`/${partner}/welcher-ausweis/${partner}`}
|
||||
><button class={tab === 6 ? "glow" : ""}
|
||||
>Welcher Ausweis</button
|
||||
></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div
|
||||
id="titel"
|
||||
class="block w-full 2xl:h-[270px] lg:h-[148px] bg-cover px-24 py-20"
|
||||
style={`background-image: url('/images/partner/${partner}/hero-energieausweis.jpg');
|
||||
background-repeat:no-repeat; background-position:right;`}
|
||||
>
|
||||
{
|
||||
isVA ? (
|
||||
<div>
|
||||
Hier komfortabel und einfach online den{" "}
|
||||
<b>Verbrauchsausweis Wohngebäude</b> bestellen
|
||||
</div>
|
||||
) : (
|
||||
""
|
||||
)
|
||||
}
|
||||
{
|
||||
isVAG ? (
|
||||
<div>
|
||||
Hier komfortabel und einfach online den{" "}
|
||||
<b>Verbrauchsausweis Gewerbe</b> bestellen
|
||||
</div>
|
||||
) : (
|
||||
""
|
||||
)
|
||||
}
|
||||
{
|
||||
isBA ? (
|
||||
<div>
|
||||
Hier komfortabel und einfach online den{" "}
|
||||
<b>Bedarfsausweis Wohngebäude</b> bestellen
|
||||
</div>
|
||||
) : (
|
||||
""
|
||||
)
|
||||
}
|
||||
{
|
||||
isBAG ? (
|
||||
<div>
|
||||
Hier komfortabel und einfach online den{" "}
|
||||
<b>Bedarfsausweis Gewerbe</b> anfragen
|
||||
</div>
|
||||
) : (
|
||||
""
|
||||
)
|
||||
}
|
||||
{
|
||||
isGGW ? (
|
||||
<div>
|
||||
Hier komfortabel und einfach online den{" "}
|
||||
<b>GEG Nachweis Wohngebäude</b> anfragen
|
||||
</div>
|
||||
) : (
|
||||
""
|
||||
)
|
||||
}
|
||||
{
|
||||
isGGG ? (
|
||||
<div>
|
||||
Hier komfortabel und einfach online den{" "}
|
||||
<b>GEG Nachweis Gewerbe</b> anfragen
|
||||
</div>
|
||||
) : (
|
||||
""
|
||||
)
|
||||
}
|
||||
{
|
||||
isWEA ? (
|
||||
<div>
|
||||
Hier komfortabel und einfach online den richtigen Ausweis finden
|
||||
</div>
|
||||
) : (
|
||||
""
|
||||
)
|
||||
}
|
||||
</div>
|
||||
|
||||
<style lang="postcss">
|
||||
|
||||
@font-face {
|
||||
font-family: "immo Sans";
|
||||
src: url('/fonts/Immo-Sans/immoSans-Regular.eot');
|
||||
src: url('/fonts/Immo-Sans/immoSans-Regular.eot?#iefix') format('embedded-opentype'),
|
||||
url('/fonts/Immo-Sans/immoSans-Regular.woff2') format('woff2'),
|
||||
url('/fonts/Immo-Sans/immoSans-Regular.woff') format('woff');
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
#titel{
|
||||
font-family: "immo Sans";
|
||||
font-weight:400;
|
||||
|
||||
div{@apply w-fit bg-white/75 py-6 px-16 rounded-lg ring-2 ring-black/15 text-[1.45rem];box-shadow:8px 8px 16px rgba(0,0,0,0.5);}
|
||||
}
|
||||
|
||||
.header-button {
|
||||
@apply px-4 py-2 text-primary-content font-medium text-lg tracking-normal hover:bg-secondary h-full;
|
||||
}
|
||||
|
||||
.navlist {
|
||||
@apply flex flex-wrap flex-col sm:flex-row pl-[1.75rem] sm:pl-[1.75rem];
|
||||
}
|
||||
.navlist li {
|
||||
@apply pr-0 sm:pr-[6px] pb-1 sm:pb-0;
|
||||
}
|
||||
.navlist li button{@apply text-[0.75rem] md:text-[1rem] text-[#646464] sm:p-2 text-left
|
||||
hover:rounded-[1rem] hover:bg-[rgba(50,50,50,0.1)];
|
||||
font-family: "immo Sans";
|
||||
font-weight:400;}
|
||||
|
||||
.glow{@apply rounded-[1rem] bg-[rgba(50,50,50,0.1)];}
|
||||
|
||||
</style>
|
||||
@@ -1,114 +0,0 @@
|
||||
---
|
||||
import HeaderLogin from "#components/design/header/HeaderLogin.svelte";
|
||||
const { tabHover1 } = Astro.props;
|
||||
const { tabHover2 } = Astro.props;
|
||||
const { tabHover3 } = Astro.props;
|
||||
const { tabHover4 } = Astro.props;
|
||||
const { tabHover5 } = Astro.props;
|
||||
const { tabHover6 } = Astro.props;
|
||||
const { tabHover7 } = Astro.props;
|
||||
|
||||
|
||||
const { params, url } = Astro;
|
||||
const partner = params.partner;
|
||||
|
||||
const url1 = new URL(Astro.request.url);
|
||||
|
||||
const urlPath = url1.pathname;
|
||||
const isVA = urlPath.includes("verbrauchsausweis-wohngebaeude");
|
||||
const isVAG = urlPath.includes("verbrauchsausweis-gewerbe");
|
||||
const isBA = urlPath.includes("bedarfsausweis-wohngebaeude");
|
||||
const isBAG = urlPath.includes("bedarfsausweis-gewerbe-anfragen");
|
||||
const isGGW = urlPath.includes("geg-nachweis-wohnen-anfragen");
|
||||
const isGGG = urlPath.includes("geg-nachweis-gewerbe-anfragen");
|
||||
const isWEA = urlPath.includes("welcher-ausweis");
|
||||
|
||||
const isWelt = urlPath.includes("immowelt");
|
||||
const isNET = urlPath.includes("immonet");
|
||||
|
||||
---
|
||||
|
||||
<header id="header" class="w-full bg-white h-[81px] sm:pl-8">
|
||||
|
||||
<div class="grid grid-cols-[min-content_1fr] items-center">
|
||||
|
||||
|
||||
<div class="w-[150px] h-[80px]">
|
||||
<div class="w-full h-full grid grid-col-1 justify-items-center items-center">
|
||||
<img class={isNET ? "w-[149px]" : isWelt ? "w-[109px]" : "w-[109px]"} src={`/images/partner/${partner}/${partner}.svg`} alt={partner} />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
|
||||
<ul class="navlist">
|
||||
<li><a href={`/${partner}/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/`}><button class={tabHover1}>Verbrauchsausweis</button></a></li>
|
||||
<li><a href={`/${partner}/energieausweis-erstellen/verbrauchsausweis-gewerbe/`}><button class={tabHover2}>Verbrauchsausweis Gewerbe</button></a></li>
|
||||
<li><a href={`/${partner}/energieausweis-erstellen/bedarfsausweis-wohngebaeude/`}><button class={tabHover3}>Bedarfsausweis</button></a></li>
|
||||
<li><a href={`/${partner}/angebot-anfragen/bedarfsausweis-gewerbe-anfragen/`}><button class={tabHover4}>Bedarfsausweis Gewerbe</button></a></li>
|
||||
<li><a href={`/${partner}/angebot-anfragen/geg-nachweis-wohnen-anfragen/`}><button class={tabHover5}>GEG Nachweis Wohngebäude</button></a></li>
|
||||
<li><a href={`/${partner}/angebot-anfragen/geg-nachweis-gewerbe-anfragen/`}><button class={tabHover6}>GEG Nachweis Gewerbe</button></a></li>
|
||||
<li><a href={`/${partner}/welcher-ausweis/${partner}`}><button class={tabHover7}>Welcher Ausweis</button></a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
<div id="titel" class="block w-full 2xl:h-[270px] lg:h-[148px] bg-cover px-24 py-20"
|
||||
style={`background-image: url('/images/partner/${partner}/hero-energieausweis.jpg');
|
||||
background-repeat:no-repeat; background-position:right;`}>
|
||||
|
||||
|
||||
{isVA ? <div>Hier komfortabel und einfach online den <b>Verbrauchsausweis Wohngebäude</b> bestellen</div> : ""}
|
||||
{isVAG ? <div>Hier komfortabel und einfach online den <b>Verbrauchsausweis Gewerbe</b> bestellen</div> : ""}
|
||||
{isBA ? <div>Hier komfortabel und einfach online den <b>Bedarfsausweis Wohngebäude</b> bestellen</div> : ""}
|
||||
{isBAG ? <div>Hier komfortabel und einfach online den <b>Bedarfsausweis Gewerbe</b> anfragen</div> : ""}
|
||||
{isGGW ? <div>Hier komfortabel und einfach online den <b>GEG Nachweis Wohngebäude</b> anfragen</div> : ""}
|
||||
{isGGG ? <div>Hier komfortabel und einfach online den <b>GEG Nachweis Gewerbe</b> anfragen</div> : ""}
|
||||
{isWEA ? <div>Hier komfortabel und einfach online den richtigen Ausweis finden</div> : ""}
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<style lang="postcss">
|
||||
|
||||
@font-face {
|
||||
font-family: "immo Sans";
|
||||
src: url('/fonts/Immo-Sans/immoSans-Regular.eot');
|
||||
src: url('/fonts/Immo-Sans/immoSans-Regular.eot?#iefix') format('embedded-opentype'),
|
||||
url('/fonts/Immo-Sans/immoSans-Regular.woff2') format('woff2'),
|
||||
url('/fonts/Immo-Sans/immoSans-Regular.woff') format('woff');
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
#titel{
|
||||
font-family: "immo Sans";
|
||||
font-weight:400;
|
||||
|
||||
div{@apply w-fit bg-white/75 py-6 px-16 rounded-lg ring-2 ring-black/15 text-[1.45rem];box-shadow:8px 8px 16px rgba(0,0,0,0.5);}
|
||||
}
|
||||
|
||||
.header-button {
|
||||
@apply px-4 py-2 text-primary-content font-medium text-lg tracking-normal hover:bg-secondary h-full;
|
||||
}
|
||||
|
||||
.navlist {
|
||||
@apply flex flex-wrap flex-col sm:flex-row pl-[1.75rem] sm:pl-[1.75rem];
|
||||
}
|
||||
.navlist li {
|
||||
@apply pr-0 sm:pr-[6px] pb-1 sm:pb-0;
|
||||
}
|
||||
.navlist li button{@apply text-[0.75rem] md:text-[1rem] text-[#646464] sm:p-2 text-left
|
||||
hover:rounded-[1rem] hover:bg-[rgba(50,50,50,0.1)];
|
||||
font-family: "immo Sans";
|
||||
font-weight:400;}
|
||||
|
||||
.glow{@apply rounded-[1rem] bg-[rgba(50,50,50,0.1)];}
|
||||
|
||||
</style>
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
import "../style/global.css";
|
||||
import "../style/formular.css";
|
||||
import "../../svelte-dialogs.config"
|
||||
import "../../svelte-dialogs.config";
|
||||
import Header from "#components/design/header/AusweisHeaderImmowelt.astro";
|
||||
import Footer from "#components/design/footer/Footer.astro";
|
||||
import { NotificationWrapper } from "@ibcornelsen/ui";
|
||||
@@ -12,50 +12,53 @@ export interface Props {
|
||||
|
||||
const { title } = Astro.props;
|
||||
---
|
||||
|
||||
<script>
|
||||
window.addEventListener("scroll", (event) => {
|
||||
let scroll = window.scrollY;
|
||||
|
||||
|
||||
|
||||
console.log(scroll);
|
||||
if (scroll >= 400) {
|
||||
document
|
||||
.getElementById("skala")
|
||||
?.classList.add(
|
||||
"2xl:fixed",
|
||||
"2xl:py-4",
|
||||
"2xl:top-0",
|
||||
"2xl:z-20"
|
||||
);
|
||||
document.getElementById("skala")?.classList.remove("w-full");
|
||||
|
||||
document.getElementById('skala')?.classList.add('2xl:fixed','2xl:py-4','2xl:top-0','2xl:z-20');
|
||||
document.getElementById('skala')?.classList.remove('w-full');
|
||||
|
||||
|
||||
document.getElementById('skala').style.borderBottom = "3px solid #e6e6e6";
|
||||
|
||||
|
||||
document.getElementById('performance-box').style.maxWidth = "688.5px";
|
||||
document.getElementById('progress-box').style.maxWidth = "688.5px";
|
||||
|
||||
document.getElementById('formInput-1')?.classList.add('2xl:mt-[370px]');
|
||||
|
||||
|
||||
document.getElementById("skala").style.borderBottom =
|
||||
"3px solid #e6e6e6";
|
||||
|
||||
document.getElementById("performance-box").style.maxWidth =
|
||||
"688.5px";
|
||||
document.getElementById("progress-box").style.maxWidth = "688.5px";
|
||||
|
||||
document
|
||||
.getElementById("formInput-1")
|
||||
?.classList.add("2xl:mt-[370px]");
|
||||
} else {
|
||||
document
|
||||
.getElementById("skala")
|
||||
?.classList.remove(
|
||||
"2xl:fixed",
|
||||
"2xl:py-4",
|
||||
"2xl:top-0",
|
||||
"2xl:z-20"
|
||||
);
|
||||
document.getElementById("skala")?.classList.add("w-full");
|
||||
|
||||
document.getElementById('skala')?.classList.remove('2xl:fixed','2xl:py-4','2xl:top-0','2xl:z-20');
|
||||
document.getElementById('skala')?.classList.add('w-full');
|
||||
|
||||
document.getElementById('skala').style.borderBottom = "none";
|
||||
|
||||
document.getElementById('formInput-1')?.classList.remove('2xl:mt-[370px]');
|
||||
|
||||
|
||||
|
||||
document.getElementById("skala").style.borderBottom = "none";
|
||||
|
||||
document
|
||||
.getElementById("formInput-1")
|
||||
?.classList.remove("2xl:mt-[370px]");
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
@@ -79,7 +82,10 @@ console.log(scroll);
|
||||
content="✅ Jetzt Ihren Energieausweis online erstellen. Erhalten Sie Ihren online Energieausweis rechtssicher und nach aktueller GEG (vormals EnEV) vom Diplom Ingenieur geprüft."
|
||||
/>
|
||||
<meta property="og:url" content="https://online-energieausweis.org/" />
|
||||
<meta property="og:site_name" content="Energieausweis online erstellen" />
|
||||
<meta
|
||||
property="og:site_name"
|
||||
content="Energieausweis online erstellen"
|
||||
/>
|
||||
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta
|
||||
@@ -95,12 +101,11 @@ console.log(scroll);
|
||||
content="https://online-energieausweis.org/images/energieausweis-online-erstellen.jpg"
|
||||
/>
|
||||
<title>
|
||||
{title || 'Energieausweis online erstellen - Online Energieausweis'}
|
||||
{title || "Energieausweis online erstellen - Online Energieausweis"}
|
||||
</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<Header />
|
||||
|
||||
<main
|
||||
@@ -110,19 +115,15 @@ console.log(scroll);
|
||||
md:grid-cols-[minmax(1fr)] md:gap-2 md:p-0
|
||||
lg:grid-cols-[minmax(1fr)] lg:gap-3 lg:p-4
|
||||
xl:grid-cols-[minmax(1fr)] xl:gap-4 xl:p-6
|
||||
2xl:grid-cols-[minmax(1fr)] 2xl:gap-5 2xl:p-6
|
||||
">
|
||||
|
||||
|
||||
2xl:grid-cols-[minmax(1fr)] 2xl:gap-5 2xl:p-6"
|
||||
>
|
||||
<article class="box rounded-tl-none p-2 lg:p-12">
|
||||
<slot />
|
||||
</article>
|
||||
|
||||
</main>
|
||||
|
||||
<Footer />
|
||||
<NotificationWrapper client:load />
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
@@ -2,31 +2,16 @@
|
||||
import "../style/global.css";
|
||||
import "../style/formular.css";
|
||||
import "../../svelte-dialogs.config"
|
||||
import Header from "#components/design/header/AusweisHeader_partner.astro";
|
||||
import AusweisHeaderPartner from "#components/design/header/AusweisHeaderPartner.astro";
|
||||
import Footer from "#components/design/footer/Footer.astro";
|
||||
import SidebarLeft from "#components/design/sidebars/SidebarLeft.astro";
|
||||
import { NotificationWrapper } from "@ibcornelsen/ui";
|
||||
|
||||
export interface Props {
|
||||
title: string;
|
||||
tabHover1: string;
|
||||
tabHover2: string;
|
||||
tabHover3: string;
|
||||
tabHover4: string;
|
||||
tabHover5: string;
|
||||
tabHover6: string;
|
||||
tabHover7: string;
|
||||
|
||||
tab: number;
|
||||
}
|
||||
|
||||
const { title } = Astro.props;
|
||||
const { tabHover1 } = Astro.props;
|
||||
const { tabHover2 } = Astro.props;
|
||||
const { tabHover3 } = Astro.props;
|
||||
const { tabHover4 } = Astro.props;
|
||||
const { tabHover5 } = Astro.props;
|
||||
const { tabHover6 } = Astro.props;
|
||||
const { tabHover7 } = Astro.props;
|
||||
const { title, tab } = Astro.props;
|
||||
|
||||
---
|
||||
<script>
|
||||
@@ -143,7 +128,7 @@ window.addEventListener("scroll", () => {
|
||||
|
||||
<body>
|
||||
|
||||
<Header {tabHover1} {tabHover2} {tabHover3} {tabHover4} {tabHover5} {tabHover6} {tabHover7}/>
|
||||
<AusweisHeaderPartner {tab}/>
|
||||
|
||||
<main class="w-full p-0 grid grid-cols-1 rounded-none">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
|
||||
import AusweisLayoutDatenPartner from "#layouts/AusweisLayoutDatenPartner.astro";
|
||||
import VerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte";
|
||||
import {
|
||||
Aufnahme,
|
||||
@@ -209,7 +209,11 @@ if (typ === AusstellungsTyp.Neuausstellung) {
|
||||
}
|
||||
---
|
||||
|
||||
<AusweisLayout title="Verbrauchsausweis erstellen">
|
||||
<AusweisLayoutDatenPartner title="Verbrauchsausweis erstellen" tab={
|
||||
ausweisart === "verbrauchsausweis-wohngebaeude" ? 0 :
|
||||
ausweisart === "verbrauchsausweis-gewerbe" ? 1 :
|
||||
ausweisart === "bedarfsausweis-wohngebaeude" ? 2 : 0
|
||||
}>
|
||||
{
|
||||
ausweisart === "verbrauchsausweis-wohngebaeude" && (
|
||||
<VerbrauchsausweisWohnenModule
|
||||
@@ -258,4 +262,4 @@ if (typ === AusstellungsTyp.Neuausstellung) {
|
||||
/>
|
||||
)
|
||||
}
|
||||
</AusweisLayout>
|
||||
</AusweisLayoutDatenPartner>
|
||||
|
||||
@@ -1,87 +0,0 @@
|
||||
import { Enums } from "#lib/client/prisma";
|
||||
import { test, describe, expect } from "bun:test";
|
||||
import {faker} from "@faker-js/faker";
|
||||
// import { client } from "src/trpc";
|
||||
import { Buffer } from 'buffer';
|
||||
|
||||
describe("Bilder hochladen", async () => {
|
||||
|
||||
// Erstmal lesen wir ein Bild ein, mit dem wir testen können
|
||||
const arrayBuffer = await Bun.file("cypress/fixtures/images/daemmung/1.jpeg").arrayBuffer();
|
||||
const buffer = Buffer.from(arrayBuffer)
|
||||
const base64 = buffer.toString("base64");
|
||||
|
||||
// Im Browser hätten wir noch einen Mime Type vor dem base64-String
|
||||
const base64WithMimeType = "data:image/jpeg;base64," + base64;
|
||||
|
||||
// Wir müssen uns einloggen, da wir für das Hochladen von Bildern einen Access Token brauchen
|
||||
const email = faker.internet.email();
|
||||
const passwort = faker.internet.password();
|
||||
const signUpResponse = await client.v1.benutzer.erstellen.mutate({
|
||||
email,
|
||||
passwort,
|
||||
name: faker.person.lastName(),
|
||||
vorname: faker.person.firstName(),
|
||||
})
|
||||
|
||||
// Jetzt loggen wir uns ein
|
||||
const loginResponse = await client.v1.benutzer.getRefreshToken.query({
|
||||
email,
|
||||
passwort,
|
||||
})
|
||||
|
||||
// Wir brauchen den Access Token
|
||||
const accessToken = loginResponse.accessToken;
|
||||
|
||||
// Der Default Client versucht den Cookie zu lesen, das geht hier natürlich nicht
|
||||
const newClient = createTRPCProxyClient<AppRouter>({
|
||||
links: [
|
||||
httpBatchLink({
|
||||
url: 'http://localhost:3001/',
|
||||
headers() {
|
||||
if (!accessToken) return {};
|
||||
|
||||
const buffer = Buffer.from(accessToken, 'utf-8');
|
||||
const base64 = buffer.toString('base64')
|
||||
|
||||
return {
|
||||
'Authorization': `Bearer ${base64}`,
|
||||
};
|
||||
},
|
||||
}),
|
||||
],
|
||||
});
|
||||
|
||||
// Wir brauchen noch ein Gebäude, damit wir das Bild hochladen können
|
||||
const gebaeude = await newClient.v1.gebaeude.erstellen.mutate({})
|
||||
|
||||
// Jetzt laden wir das Bild hoch
|
||||
const image = await newClient.v1.bilder.upload.mutate({
|
||||
base64: base64WithMimeType,
|
||||
gebaeude_uid: gebaeude.uid,
|
||||
kategorie: Enums.BilderKategorie.Daemmung,
|
||||
})
|
||||
|
||||
test("sollte ohne Fehler hochladen", async () => {
|
||||
expect(image).toHaveProperty("uid");
|
||||
expect(image.uid).toBeTypeOf("string")
|
||||
})
|
||||
|
||||
test("bild sollte in der Datenbank und abrufbar sein", async () => {
|
||||
const bild = await newClient.v1.bilder.getBase64.query({ uid: image.uid });
|
||||
|
||||
expect(bild).toHaveProperty("base64");
|
||||
expect(bild.data).toBeTypeOf("string");
|
||||
expect(bild.data).toEqual(base64);
|
||||
})
|
||||
|
||||
test("bild sollte entfernbar sein", async () => {
|
||||
const response = await newClient.v1.bilder.entfernen.mutate({ uid: image.uid });
|
||||
|
||||
expect(response).toBeEmpty();
|
||||
|
||||
// Einmal nachschauen ob es tatächlich gelöscht wurde
|
||||
expect(newClient.v1.bilder.getBase64.query({ uid: image.uid })).rejects.toThrow()
|
||||
})
|
||||
|
||||
});
|
||||
@@ -1,19 +0,0 @@
|
||||
import { test, describe, expect } from "bun:test";
|
||||
import { pdfVerbrauchsausweisWohnen } from "#lib/pdf/pdfVerbrauchsausweisWohnen.js";
|
||||
import { fakeVerbrauchsausweisWohnen } from "#lib/faker.js";
|
||||
import { VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
||||
|
||||
|
||||
describe('Verbrauchsausweis Wohnen PDF', async () => {
|
||||
const ausweis: VerbrauchsausweisWohnenClient = fakeVerbrauchsausweisWohnen(42);
|
||||
|
||||
test("Ausweis Erstellung", async () => {
|
||||
const pdf = await pdfVerbrauchsausweisWohnen(ausweis);
|
||||
|
||||
// Wir können das PDF nicht richtig überprüfen, dafür brauchen wir manuelle Tests
|
||||
// Allerdings können wir überprüfen, ob das PDF erstellt wurde.
|
||||
expect(pdf).toBeDefined();
|
||||
expect(pdf).toBeInstanceOf(Uint8Array);
|
||||
expect(pdf.length).toBeGreaterThan(0);
|
||||
})
|
||||
})
|
||||
@@ -1,39 +0,0 @@
|
||||
import { test, describe, expect } from "bun:test";
|
||||
import { endEnergieVerbrauchVerbrauchsausweis_2016 } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016.js";
|
||||
import { importVerbrauchsausweisWohnenAltesSystem, verbrauchsausweisWohnenImportTranslate } from "#lib/altes-system/import.js";
|
||||
|
||||
describe('Energieverbrauch', async () => {
|
||||
const request = await importVerbrauchsausweisWohnenAltesSystem();
|
||||
|
||||
for (const ausweis of request.data) {
|
||||
if (ausweis.ausweisart !== "VA" || !ausweis.objekt_plz) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const ausweisNeu = verbrauchsausweisWohnenImportTranslate(ausweis);
|
||||
const berechnungen = await endEnergieVerbrauchVerbrauchsausweis_2016(ausweisNeu);
|
||||
const berechnungenAlt = ausweis.calculations;
|
||||
|
||||
let missingKlimafaktoren: boolean = false;
|
||||
|
||||
test("Klimafaktoren", async () => {
|
||||
console.log("PLZ: " + ausweisNeu.aufnahme.plz)
|
||||
console.log("Startdatum: " + ausweisNeu.startdatum)
|
||||
expect(berechnungen?.klimafaktoren).toHaveLength(3)
|
||||
try {
|
||||
expect(berechnungen?.klimafaktoren.map(x => x.klimafaktor)).toEqual(berechnungenAlt.klimafaktoren)
|
||||
} catch(e) {
|
||||
missingKlimafaktoren = true;
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
test.skipIf(missingKlimafaktoren)("Endenergieverbrauch", async () => {
|
||||
expect(berechnungen?.endEnergieVerbrauchGesamt).toBeCloseTo(berechnungenAlt.endEnergieVerbrauchGesamt, 0)
|
||||
})
|
||||
|
||||
test.skipIf(missingKlimafaktoren)("Primärenergieverbrauch", async () => {
|
||||
expect(berechnungen?.primaerEnergieVerbrauchGesamt).toBeCloseTo(berechnungenAlt.primaerEnergieVerbrauchGesamt, 0)
|
||||
})
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user