Commit Graph

364 Commits

Author SHA1 Message Date
mates ace4130171 test: opravy Playwright testů
CI / Generate TypeScript types (push) Has been cancelled
CI / Server unit tests (push) Has been cancelled
CI / Build server (push) Has been cancelled
CI / Build client (push) Has been cancelled
CI / Playwright E2E tests (push) Has been cancelled
CI / Build and push Docker image (push) Has been cancelled
CI / Notify (push) Has been cancelled
CI / Generate TypeScript types (pull_request) Successful in 14s
CI / Server unit tests (pull_request) Successful in 37s
CI / Build server (pull_request) Successful in 36s
CI / Build client (pull_request) Successful in 35s
CI / Playwright E2E tests (pull_request) Failing after 2m40s
CI / Build and push Docker image (pull_request) Has been skipped
CI / Notify (pull_request) Has been skipped
2026-04-29 21:27:16 +02:00
mates 9383cd7d4c fix: oprava použití yarn v Gitea Actions
CI / Generate TypeScript types (push) Successful in 12s
CI / Generate TypeScript types (pull_request) Successful in 10s
CI / Server unit tests (push) Successful in 19s
CI / Server unit tests (pull_request) Has been cancelled
CI / Build server (pull_request) Has been cancelled
CI / Build client (pull_request) Has been cancelled
CI / Playwright E2E tests (pull_request) Has been cancelled
CI / Build and push Docker image (pull_request) Has been cancelled
CI / Notify (pull_request) Has been cancelled
CI / Build server (push) Successful in 32s
CI / Build client (push) Successful in 40s
CI / Playwright E2E tests (push) Failing after 3m24s
CI / Build and push Docker image (push) Has been skipped
CI / Notify (push) Successful in 2s
2026-04-29 21:12:50 +02:00
mates db1fe473cd test: opravy Playwright testů
CI / Generate TypeScript types (push) Successful in 10s
CI / Generate TypeScript types (pull_request) Successful in 9s
CI / Server unit tests (push) Successful in 19s
CI / Build server (push) Successful in 23s
CI / Server unit tests (pull_request) Failing after 7s
CI / Build server (pull_request) Failing after 8s
CI / Build client (pull_request) Failing after 8s
CI / Playwright E2E tests (pull_request) Has been skipped
CI / Build and push Docker image (pull_request) Has been skipped
CI / Notify (pull_request) Has been skipped
CI / Build client (push) Successful in 33s
CI / Playwright E2E tests (push) Failing after 4m13s
CI / Build and push Docker image (push) Has been skipped
CI / Notify (push) Successful in 3s
2026-04-29 21:03:53 +02:00
mates d7c8a4663d test: opravy Playwright testů
CI / Generate TypeScript types (push) Has been cancelled
CI / Server unit tests (push) Has been cancelled
CI / Build server (push) Has been cancelled
CI / Build client (push) Has been cancelled
CI / Playwright E2E tests (push) Has been cancelled
CI / Build and push Docker image (push) Has been cancelled
CI / Notify (push) Has been cancelled
CI / Generate TypeScript types (pull_request) Successful in 9s
CI / Server unit tests (pull_request) Successful in 19s
CI / Build server (pull_request) Successful in 23s
CI / Build client (pull_request) Successful in 33s
CI / Playwright E2E tests (pull_request) Has been cancelled
CI / Build and push Docker image (pull_request) Has been cancelled
CI / Notify (pull_request) Has been cancelled
2026-04-29 20:48:05 +02:00
mates ecbbeb2cec test: opravy Playwright testů
CI / Generate TypeScript types (push) Successful in 9s
CI / Generate TypeScript types (pull_request) Successful in 11s
CI / Server unit tests (push) Successful in 22s
CI / Build server (push) Successful in 29s
CI / Server unit tests (pull_request) Successful in 25s
CI / Build client (push) Successful in 34s
CI / Build server (pull_request) Successful in 30s
CI / Build client (pull_request) Successful in 32s
CI / Playwright E2E tests (push) Failing after 1m48s
CI / Build and push Docker image (push) Has been skipped
CI / Notify (push) Successful in 4s
CI / Playwright E2E tests (pull_request) Failing after 1m48s
CI / Build and push Docker image (pull_request) Has been skipped
CI / Notify (pull_request) Has been skipped
2026-04-29 20:41:57 +02:00
mates e9c570b3d5 test: opravy Playwright testů
CI / Generate TypeScript types (push) Successful in 9s
CI / Generate TypeScript types (pull_request) Successful in 10s
CI / Server unit tests (push) Successful in 19s
CI / Build server (push) Successful in 24s
CI / Server unit tests (pull_request) Successful in 22s
CI / Build client (push) Successful in 32s
CI / Build server (pull_request) Successful in 25s
CI / Build client (pull_request) Successful in 33s
CI / Playwright E2E tests (push) Failing after 2m3s
CI / Build and push Docker image (push) Has been skipped
CI / Notify (push) Successful in 3s
CI / Playwright E2E tests (pull_request) Failing after 2m19s
CI / Build and push Docker image (pull_request) Has been skipped
CI / Notify (pull_request) Has been skipped
2026-04-29 20:29:25 +02:00
mates f400d1c5f2 fix: notifikace přes ntfy
CI / Generate TypeScript types (push) Successful in 11s
CI / Generate TypeScript types (pull_request) Successful in 10s
CI / Server unit tests (push) Successful in 25s
CI / Build server (push) Successful in 30s
CI / Build client (push) Successful in 45s
CI / Server unit tests (pull_request) Successful in 19s
CI / Build server (pull_request) Successful in 44s
CI / Build client (pull_request) Successful in 40s
CI / Playwright E2E tests (push) Failing after 1m57s
CI / Build and push Docker image (push) Has been skipped
CI / Notify (push) Successful in 4s
CI / Playwright E2E tests (pull_request) Failing after 2m14s
CI / Build and push Docker image (pull_request) Has been skipped
CI / Notify (pull_request) Has been skipped
2026-04-29 20:16:10 +02:00
mates ec6df8700b fix: Discord notifikace i při selhání workflow
CI / Generate TypeScript types (push) Successful in 10s
CI / Generate TypeScript types (pull_request) Successful in 10s
CI / Server unit tests (push) Successful in 21s
CI / Build server (push) Successful in 27s
CI / Server unit tests (pull_request) Successful in 21s
CI / Build client (push) Successful in 34s
CI / Build server (pull_request) Successful in 34s
CI / Build client (pull_request) Successful in 32s
CI / Playwright E2E tests (push) Failing after 2m3s
CI / Build and push Docker image (push) Has been skipped
CI / Discord notification (push) Has been skipped
CI / Playwright E2E tests (pull_request) Failing after 2m23s
CI / Build and push Docker image (pull_request) Has been skipped
CI / Discord notification (pull_request) Has been skipped
2026-04-29 20:06:17 +02:00
mates 85cda34881 fix: instalace types před buildem klienta
CI / Generate TypeScript types (push) Successful in 10s
CI / Generate TypeScript types (pull_request) Successful in 10s
CI / Server unit tests (push) Successful in 20s
CI / Build server (push) Successful in 26s
CI / Server unit tests (pull_request) Successful in 21s
CI / Build client (push) Successful in 33s
CI / Build server (pull_request) Successful in 25s
CI / Build client (pull_request) Successful in 32s
CI / Playwright E2E tests (push) Failing after 3m38s
CI / Build and push Docker image (push) Has been skipped
CI / Discord notification (push) Has been skipped
CI / Playwright E2E tests (pull_request) Failing after 4m16s
CI / Build and push Docker image (pull_request) Has been skipped
CI / Discord notification (pull_request) Has been skipped
2026-04-29 19:56:17 +02:00
batmanisko d91c48c599 fix: instalace types/node_modules před buildem serveru (tsc kompiluje ../types/**)
CI / Generate TypeScript types (push) Successful in 12s
CI / Generate TypeScript types (pull_request) Successful in 9s
CI / Server unit tests (push) Successful in 24s
CI / Build server (push) Successful in 24s
CI / Build client (push) Failing after 26s
CI / Playwright E2E tests (push) Has been skipped
CI / Server unit tests (pull_request) Successful in 18s
CI / Build client (pull_request) Failing after 25s
CI / Build server (pull_request) Successful in 28s
CI / Build and push Docker image (push) Has been skipped
CI / Playwright E2E tests (pull_request) Has been skipped
CI / Discord notification (push) Has been skipped
CI / Build and push Docker image (pull_request) Has been skipped
CI / Discord notification (pull_request) Has been skipped
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 19:46:24 +02:00
batmanisko e83cf14594 fix: downgrade artifact actions na v3 (v4 nepodporováno na Gitea/GHES)
CI / Generate TypeScript types (push) Successful in 19s
CI / Generate TypeScript types (pull_request) Successful in 17s
CI / Build server (push) Failing after 32s
CI / Server unit tests (push) Successful in 34s
CI / Server unit tests (pull_request) Successful in 19s
CI / Build client (push) Failing after 28s
CI / Playwright E2E tests (push) Has been skipped
CI / Build server (pull_request) Failing after 21s
CI / Build and push Docker image (push) Has been skipped
CI / Discord notification (push) Has been skipped
CI / Build client (pull_request) Failing after 24s
CI / Playwright E2E tests (pull_request) Has been skipped
CI / Build and push Docker image (pull_request) Has been skipped
CI / Discord notification (pull_request) Has been skipped
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 19:43:14 +02:00
batmanisko 2067c21a29 fix: instalace yarn přes npm před setup-node (yarn nebyl v PATH)
CI / Generate TypeScript types (push) Failing after 10s
CI / Server unit tests (push) Has been skipped
CI / Build server (push) Has been skipped
CI / Build client (push) Has been skipped
CI / Playwright E2E tests (push) Has been skipped
CI / Build and push Docker image (push) Has been skipped
CI / Generate TypeScript types (pull_request) Failing after 10s
CI / Discord notification (push) Has been skipped
CI / Server unit tests (pull_request) Has been skipped
CI / Build server (pull_request) Has been skipped
CI / Build client (pull_request) Has been skipped
CI / Playwright E2E tests (pull_request) Has been skipped
CI / Build and push Docker image (pull_request) Has been skipped
CI / Discord notification (pull_request) Has been skipped
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 19:39:51 +02:00
batmanisko 99260a3250 fix: oprava YAML chyby v discord-notify kroku (víceřádkový string)
CI / Generate TypeScript types (push) Failing after 1m26s
CI / Server unit tests (push) Has been skipped
CI / Build server (push) Has been skipped
CI / Build client (push) Has been skipped
CI / Playwright E2E tests (push) Has been skipped
CI / Build and push Docker image (push) Has been skipped
CI / Discord notification (push) Has been skipped
CI / Generate TypeScript types (pull_request) Failing after 1m42s
CI / Server unit tests (pull_request) Has been skipped
CI / Build server (pull_request) Has been skipped
CI / Build client (pull_request) Has been skipped
CI / Playwright E2E tests (pull_request) Has been skipped
CI / Build and push Docker image (pull_request) Has been skipped
CI / Discord notification (pull_request) Has been skipped
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 19:34:25 +02:00
batmanisko 091294f7f3 feat: migrace CI z Woodpecker na Gitea Actions
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 19:31:20 +02:00
batmanisko bfe819020d fix: redis-stack-server RC3 → 7.4.0-v1, obnova Redis pro E2E
ci/woodpecker/push/workflow Pipeline failed
ci/woodpecker/pr/workflow Pipeline was canceled
7.2.0-RC3 havaroval kvůli RedisAI modulu (odstraněn ve verzi 7.4).
Stable 7.4.0-v1 RedisAI neobsahuje, RedisJSON zůstává.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 19:07:52 +02:00
batmanisko 467e3c155a fix: E2E testy přepnuty na json storage, odstraněna Redis služba
redis/redis-stack-server:7.2.0-RC3 havaroval v CI kvůli chybě
inicializace RedisAI modulu, takže se server nikdy nepřipojil
a webServer timeout vyprchával. E2E testy testují chování aplikace,
ne storage backend – json storage stačí.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 18:45:26 +02:00
batmanisko d3224a36d5 fix: oprava HTTP_REMOTE_TRUSTED_IPS pro CI Playwright
ci/woodpecker/push/workflow Pipeline failed
ci/woodpecker/pr/workflow Pipeline was canceled
proxy-addr nepodporuje CIDR notaci (0.0.0.0/0), takže server
havaroval při startu. V CI kontejneru se browser připojuje ze
smyčkového rozhraní, takže 127.0.0.1,::1,::ffff:127.0.0.1 stačí.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 18:33:28 +02:00
batmanisko fe6bb3290e feat: přidání testů – Jest unit testy + Playwright E2E + CI pipeline
ci/woodpecker/push/workflow Pipeline was canceled
ci/woodpecker/pr/workflow Pipeline failed
Server:
- Jest unit testy (88 testů): auth, utils, restaurants, service, voting, pizza
- in-memory storage mock pro izolaci testů
- oprava race condition při inicializaci Redis (storageReady promise)
- dev route dostupná i pro NODE_ENV=test
- getStatsMock deterministický (nahrazení Math.random)
- exporty interních helperů pro testovatelnost
- /api/health endpoint pro Playwright readiness check
- tsconfig vylučuje test soubory z produkčního buildu

E2E (e2e/):
- Playwright s Firefoxem + Chromiem
- testy: login, menu, výběr jídla, pizza day životní cyklus, QR/nastavení
- trusted-header auth bypass pro testy, video + trace při selhání

CI (Woodpecker):
- pipeline spouštěna na všech větvích a PR (nejen master)
- redis-stack-server service pro E2E – čistý Redis per větev automaticky
- kroky: unit testy, build, E2E testy (parallel kde možné)
- Docker build zůstává pouze pro master

Co-Authored-By: Claude Opus (extra usage) 4.7 <noreply@anthropic.com>
2026-04-29 00:25:22 +02:00
batmanisko 1e1e23df80 feat: úhrada za všechny jednou osobou (issue #29, SINGLE_PAYMENT)
ci/woodpecker/push/workflow Pipeline was canceled
Přidává možnost, aby jeden strávník zaplatil celý účet v restauraci a ostatní
obdrželi QR kód pro refundaci.

Prerekvizita — podpora více QR kódů na (příjemce, den):
- PendingQr.id (UUID) nahrazuje deduplikaci podle data; každý QR má vlastní klíč
- QR obrázky uloženy do Redis/storage (base64) místo tmpdir — přežijí redeploy
- GET /api/qr vyžaduje ?id= parametr; dismissQr přijímá {id} místo {date}

Feature:
- Ikona 'Zaplatit za všechny' v choices-table pro každou LunchChoice (kromě
  PIZZA/NEOBEDVAM/ROZHODUJI); viditelná jen při ≥2 strávnících a vyplněném účtu
- PayForAllModal: tabulka strávníků s prefillovanými cenami z menu, příplatky
  per-diner, celkové dýško rozpočtené rovnoměrně, generování QR přes POST /api/qr/generate
- parsePriceCzk() helper pro parsing 'N Kč' → number

Co se nemění: POST /api/qr/generate API kontrakt, PizzaOrder.hasQr boolean

Co se mění v OpenAPI: PendingQr.id (required), getPizzaQr ?id param, dismissQr body

Co-Authored-By: opmrdkazkrtkaus <opmrdkazkrtkaus@melancholik.eu>
2026-04-28 22:44:32 +02:00
mates e5999852b7 docs: aktualizace CLAUDE.md
ci/woodpecker/push/workflow Pipeline was canceled
2026-04-28 13:40:32 +02:00
mates 4e7b83b667 fix: oprava parsování pro aktuální podobu TechTower
ci/woodpecker/push/workflow Pipeline failed
2026-04-28 12:50:19 +02:00
mates d6729388ab feat: podpora salátů z Pizza Chefie
ci/woodpecker/push/workflow Pipeline failed
2026-04-02 10:51:46 +02:00
mates e9696f722c feat: automatický výběr výchozího času
ci/woodpecker/push/workflow Pipeline failed
2026-03-09 11:50:24 +01:00
mates fdeb2636c2 fix: potvrzovací dialog pro Pizza day akce (#44)
ci/woodpecker/push/workflow Pipeline failed
2026-03-09 07:55:42 +01:00
mates 82ed16715f fix: odstranění textu "nepovinné"
ci/woodpecker/push/workflow Pipeline failed
2026-03-09 07:40:38 +01:00
mates 44cf749bc9 feat: nový způsob zobrazování novinek
ci/woodpecker/push/workflow Pipeline is pending
fix: oprava kopírování changelogů do Docker image

fix: oprava kopírování changelogů do Docker image

fix: oprava
2026-03-08 10:55:50 +01:00
batmanisko a1b1eed86d docs: přidána strategie vyhledávání kódu do CLAUDE.md
ci/woodpecker/push/workflow Pipeline was successful
2026-03-05 22:13:19 +01:00
batmanisko f8a65d7177 feat: detekce starého menu TechTower, příznak isStale
Pokud TechTower vrátí menu z jiného týdne, uloží data s příznakem
isStale a zobrazí varování "Data jsou z minulého týdne" místo chybové
hlášky. Odstraněno staré varování o datech starších 24 hodin.
2026-03-05 22:11:45 +01:00
batmanisko 607bcd9bf5 feat: uprava refresh menu hesel
každý může udělat refresh, jen ne tak často, bypass mimo zdrojak
2026-03-05 21:50:17 +01:00
batmanisko b6fdf1de98 feat: akce "Neobědvám" přímo z push notifikace
ci/woodpecker/push/workflow Pipeline was successful
2026-03-04 14:37:05 +01:00
batmanisko 27e56954bd fix: nahrazení selectu časovým inputem pro výběr času připomínky
ci/woodpecker/push/workflow Pipeline was successful
2026-03-04 14:14:29 +01:00
batmanisko 20cc7259a3 chore: test endpoint na push 2026-03-04 14:11:22 +01:00
batmanisko d62f6c1f5a feat: push notifikace pro připomínku výběru oběda
ci/woodpecker/push/workflow Pipeline was successful
2026-03-04 13:33:58 +01:00
batmanisko b77914404b retarded dsstore 2026-03-04 10:36:14 +01:00
batmanisko 8506b4e79f claudemd init
ci/woodpecker/push/workflow Pipeline failed
2026-03-04 10:35:13 +01:00
mates 5f79a9431c fix: oprava závislostí
ci/woodpecker/push/workflow Pipeline was successful
2026-02-20 14:32:02 +01:00
mates cc98c2be0d feat: podpora ručního generování QR kódů pro platby
ci/woodpecker/push/workflow Pipeline was successful
2026-02-20 14:17:39 +01:00
stanekpa a849f4e922 feat: zarovnani ikony varovani doprava
ci/woodpecker/push/workflow Pipeline was successful
2026-02-11 13:55:40 +01:00
mates ac6727efa5 feat: vylepšení Pizza day
ci/woodpecker/push/workflow Pipeline was successful
2026-02-10 23:59:58 +01:00
Stánek Pavel f13cd4ffa9 fix: opravy zobrazeni sekce vybranych jidel
ci/woodpecker/push/workflow Pipeline was successful
2026-02-05 10:18:58 +01:00
batmanisko 086646fd1c fix: přidání nových typů do OpenAPI spec pro přežití regenerace
ci/woodpecker/push/workflow Pipeline was successful
Typy PendingQr, NotificationSettings a nové endpointy
(dismissQr, notifications/settings) byly přidány přímo
do YAML specifikace místo ručních úprav generovaných souborů.
2026-02-04 17:34:05 +01:00
batmanisko b8629afef2 feat: trvalé zobrazení QR kódu do ručního zavření (#31)
QR kódy pro platbu za pizza day jsou nyní zobrazeny persistentně
i po následující dny, dokud uživatel nepotvrdí platbu tlačítkem
"Zaplatil jsem". Nevyřízené QR kódy jsou uloženy per-user v storage
a zobrazeny v sekci "Nevyřízené platby".
2026-02-04 17:34:05 +01:00
batmanisko d366ac39d4 feat: podpora per-user notifikací s Discord, ntfy a Teams (#39)
Uživatelé mohou v nastavení konfigurovat vlastní webhook URL/topic
pro Discord, MS Teams a ntfy, a zvolit události k odběru.
Notifikace jsou odesílány pouze uživatelům se stejnou zvolenou lokalitou.
2026-02-04 17:33:53 +01:00
batmanisko fdd42dc46a feat: zobrazení minulého týdne o víkendu místo "Užívejte víkend" (#30)
Na víkendu se nyní zobrazuje páteční menu s možností procházet celý týden.
Editační ovládací prvky jsou automaticky skryté díky existující logice canChangeChoice.
2026-02-04 14:56:24 +01:00
batmanisko 2b7197eff6 fix: zobrazení popisů funkcí místo varnames ve statistikách (#26)
ci/woodpecker/push/workflow Pipeline failed
2026-02-04 13:40:20 +01:00
batmanisko 6f43c74769 fix: resolve 6 Gitea issues (#9, #10, #12, #14, #15, #21)
- #21: Add missing await in removeChoiceIfPresent() to prevent user appearing in two restaurants
- #15: Add 1-hour TTL for menu refetching to avoid scraping on every page load
- #9: Block stats API and UI navigation for future dates
- #14: Add restaurant warnings (missing soup/prices, stale data) with warning icon
- #12: Pre-fill restaurant/departure dropdowns from existing choices on page refresh
- #10: Add voting statistics endpoint and table on stats page
2026-02-04 13:18:27 +01:00
Stánek Pavel d85c764c88 fix: opravy a ladeni vzhledu a UX 2026-02-04 12:06:17 +01:00
Stánek Pavel 37cacd895a feat: redesign aplikace pomocí claude code 2026-02-03 10:37:27 +01:00
batmanisko 6a1da97ef1 feat: podpora dark mode 2026-01-30 07:47:03 +01:00
mates f91973f1a4 Oprava parsování názvů TechTower 2026-01-19 10:18:24 +01:00