nordabiz/blueprints
Maciej Pienczyn f274d59ae6
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
feat(fees): klikalne kwadraciki miesięcy w panelu składek — quick payment registration
Przed: w widoku rocznym /admin/fees kwadraciki miesięcy były tylko
dekoracyjne (span z tooltipem). Żeby wpisać płatność trzeba było
przełączyć widok na konkretny miesiąc przez dropdown i dopiero wtedy
pojawiał się przycisk „Opłać". Magdalena (kierownik biura) spędziła
8 minut próbując klikać w kwadraciki — nic się nie działo.

Teraz: każdy kwadrat miesiąca jest klikalny, otwiera okienko płatności
dla konkretnej firmy × miesiąca. Jeśli rekord MembershipFee nie istnieje
— backend sam go tworzy z wyliczoną stawką (200/300 zł wg zasad brand).

Zmiany:
- Nowy endpoint /admin/fees/ensure-and-mark-paid — tworzy rekord
  jeśli brak, potem mark-paid. Odrzuca firmy-córki (parent_company_id)
  z komunikatem „Płatność rejestruj przy firmie matce"
- openPaymentModalSmart() w JS — wybór między /mark-paid (istniejący fee)
  a /ensure-and-mark-paid (nowy fee) na podstawie obecności feeId
- Hidden fields company_id, fee_year, fee_month w formularzu modala
- Modal pokazuje teraz osobno „Stawka" (disabled) i „Kwota wpłacona"
  (editable) — jeden pole amount zmyliło Magdalenę
- Żółty info-box nad tabelą roczną: „Kliknij kwadrat miesiąca, aby
  zarejestrować wpłatę"
- Hover: kwadrat się powiększa, pokazuje cień — afordancja kliknięcia

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 19:07:17 +02:00
..
admin feat(fees): klikalne kwadraciki miesięcy w panelu składek — quick payment registration 2026-04-14 19:07:17 +02:00
api fix: auto-clear KRS people (zarząd/wspólnicy) when CEIDG data is fetched 2026-04-08 18:02:49 +02:00
audit feat: capture and display Google account email for OAuth connections 2026-03-11 07:32:43 +01:00
auth feat(notifications): D.2+D.3 — forum, broadcasty Izby, wydarzenia, cron 24h 2026-04-14 18:20:38 +02:00
benefits claude-mem plugin v10.3.3 2026-02-23 10:33:26 +01:00
board feat(notifications): D.2+D.3 — forum, broadcasty Izby, wydarzenia, cron 24h 2026-04-14 18:20:38 +02:00
chat fix: handle lazy loading error for company.category in chat routes 2026-03-28 05:54:49 +01:00
community feat(email): one-click unsubscribe w mailach powiadomień (RFC 8058) 2026-04-14 17:56:36 +02:00
education security(permissions): restrict guest access to members-only areas 2026-03-19 16:23:56 +01:00
forum feat(notifications): D.2+D.3 — forum, broadcasty Izby, wydarzenia, cron 24h 2026-04-14 18:20:38 +02:00
it_audit feat(security): Restrict audit access to single designated user 2026-02-09 12:31:10 +01:00
membership feat(membership): record workflow history for all status changes 2026-03-30 13:39:55 +02:00
messages feat(email): one-click unsubscribe w mailach powiadomień (RFC 8058) 2026-04-14 17:56:36 +02:00
public docs(releases): dopisz v1.67.0 dla 13.04 (@mentions + forum fix), renumeruj 14.04 → v1.68.0 2026-04-14 18:29:22 +02:00
push feat(push): Web Push (VAPID + pywebpush) dla prywatnych wiadomości 2026-04-14 16:56:49 +02:00
reports feat(reports): add membership structure breakdown to fees report 2026-03-31 11:48:57 +02:00
unsubscribe feat(email): one-click unsubscribe w mailach powiadomień (RFC 8058) 2026-04-14 17:56:36 +02:00
__init__.py feat(email): one-click unsubscribe w mailach powiadomień (RFC 8058) 2026-04-14 17:56:36 +02:00
CLAUDE.md chore: Clean up CLAUDE.md files and remove old downloaded files 2026-02-08 18:02:35 +01:00
pej_constants.py fix(pej): use SessionLocal instead of db_session 2026-03-16 18:30:24 +01:00