Compare commits

...

4 commits

Author SHA1 Message Date
47f0a08ea3
fix: add dumb-init to docker image
All checks were successful
Visitenbuch CI / test (push) Successful in 2m21s
Visitenbuch CI / release (push) Has been skipped
2024-05-19 15:45:21 +02:00
2a4bda70c6
fix: allow multiple date filters 2024-05-19 15:36:59 +02:00
882ae66a6a
chore: remove unused zod-form-data dependency 2024-05-18 19:10:17 +02:00
98c62ac460
fix!: ensure category, room and station names are unique 2024-05-18 16:35:42 +02:00
7 changed files with 42 additions and 18 deletions

View file

@ -7,7 +7,8 @@ COPY package.json pnpm-lock.yaml run/entrypoint.sh ./
COPY prisma ./prisma
# Setup pnpm, install Prisma CLI (for generating client) and install dependencies
RUN npm config set update-notifier false && \
RUN apk add dumb-init && \
npm config set update-notifier false && \
corepack enable && \
pnpm i --prod && \
pnpm audit fix && \

View file

@ -28,8 +28,7 @@
"qs": "^6.12.1",
"set-cookie-parser": "^2.6.0",
"svelte-floating-ui": "^1.5.8",
"zod": "^3.23.8",
"zod-form-data": "^2.0.2"
"zod": "^3.23.8"
},
"devDependencies": {
"@faker-js/faker": "^8.4.1",

View file

@ -41,9 +41,6 @@ dependencies:
zod:
specifier: ^3.23.8
version: 3.23.8
zod-form-data:
specifier: ^2.0.2
version: 2.0.2(zod@3.23.8)
devDependencies:
'@faker-js/faker':
@ -5961,14 +5958,6 @@ packages:
dev: true
optional: true
/zod-form-data@2.0.2(zod@3.23.8):
resolution: {integrity: sha512-sKTi+k0fvkxdakD0V5rq+9WVJA3cuTQUfEmNqvHrTzPLvjfLmkkBLfR0ed3qOi9MScJXTHIDH/jUNnEJ3CBX4g==}
peerDependencies:
zod: '>= 3.11.0'
dependencies:
zod: 3.23.8
dev: false
/zod-to-json-schema@3.23.0(zod@3.23.8):
resolution: {integrity: sha512-az0uJ243PxsRIa2x1WmNE/pnuA05gUq/JB8Lwe1EDCCL/Fz9MgjYQ0fPlyc2Tcv6aF2ZA7WM5TWaRZVEFaAIag==}
requiresBuild: true

View file

@ -0,0 +1,16 @@
/*
Warnings:
- A unique constraint covering the columns `[name]` on the table `categories` will be added. If there are existing duplicate values, this will fail.
- A unique constraint covering the columns `[name]` on the table `rooms` will be added. If there are existing duplicate values, this will fail.
- A unique constraint covering the columns `[name]` on the table `stations` will be added. If there are existing duplicate values, this will fail.
*/
-- CreateIndex
CREATE UNIQUE INDEX "categories_name_key" ON "categories"("name");
-- CreateIndex
CREATE UNIQUE INDEX "rooms_name_key" ON "rooms"("name");
-- CreateIndex
CREATE UNIQUE INDEX "stations_name_key" ON "stations"("name");

View file

@ -50,7 +50,7 @@ model User {
// Hospital station
model Station {
id Int @id @default(autoincrement())
name String
name String @unique
Room Room[]
hidden Boolean @default(false)
@ -60,7 +60,7 @@ model Station {
// Hospital room
model Room {
id Int @id @default(autoincrement())
name String
name String @unique
station Station @relation(fields: [station_id], references: [id], onDelete: Restrict)
station_id Int
Patient Patient[]
@ -90,7 +90,7 @@ model Patient {
// Entry category (e.g. Blood test, Exams, ...)
model Category {
id Int @id @default(autoincrement())
name String
name String @unique
color String?
description String?
EntryVersion EntryVersion[]

View file

@ -1,4 +1,4 @@
#!/bin/sh
#!/usr/bin/dumb-init /bin/sh
set -e
# Migrate database before starting server
npx prisma migrate deploy

View file

@ -287,6 +287,25 @@ left join stations s on s.id = r.station_id`,
qb.addFilterClause(`ev.date <= ${qb.pvar()}`, dateRange.end);
}
});
const dfClauses: string[] = [];
const dfParams: Date[] = [];
filterListToArray(filter.date).forEach((itm) => {
const dateRange = DateRange.parse(itm, true);
const cl = [];
if (dateRange?.start) {
cl.push(`ev.date >= ${qb.pvar()}`);
dfParams.push(dateRange.start);
}
if (dateRange?.end) {
cl.push(`ev.date <= ${qb.pvar()}`);
dfParams.push(dateRange.end);
}
dfClauses.push(cl.join(" and "));
});
if (dfClauses.length > 0) {
qb.addFilterClause(dfClauses.join(" or "), ...dfParams);
}
}
const SORT_FIELDS: Record<string, string[]> = {