nordabiz/blueprints/admin
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
..
__init__.py feat: add Roadmap admin page with kanban-style board 2026-04-09 22:29:11 +02:00
CLAUDE.md chore: Clean up CLAUDE.md files and remove old downloaded files 2026-02-08 18:02:35 +01:00
routes_analytics.py refactor: simplify AI monitoring dashboard with PLN costs 2026-03-11 04:22:27 +01:00
routes_announcements.py feat(notifications): D.2+D.3 — forum, broadcasty Izby, wydarzenia, cron 24h 2026-04-14 18:20:38 +02:00
routes_audits.py fix: remove stale AUDIT_OWNER_EMAIL import in access overview 2026-03-13 18:32:50 +01:00
routes_benefits.py feat: Add member benefits module with WisprFlow affiliate 2026-02-02 22:26:44 +01:00
routes_bulk_enrichment.py feat: add data quality dashboard, auto-scoring, bulk enrichment and GBP data flow 2026-02-21 07:02:45 +01:00
routes_companies.py feat(admin): add company creation wizard — 5-step guided flow for office managers 2026-04-03 11:57:51 +02:00
routes_company_wizard.py improve(wizard): auto-shorten name, PKD→category, clean WWW, UX polish 2026-04-03 12:54:17 +02:00
routes_competitors.py feat: Add new services, scripts, and competitor dashboard 2026-02-07 12:00:54 +01:00
routes_data_quality.py feat: show rejected domains per company in discovery dashboard 2026-02-21 10:29:43 +01:00
routes_insights.py refactor: Migrate access control from is_admin to role-based system 2026-02-01 21:05:22 +01:00
routes_krs_api.py refactor(rbac): Complete RBAC migration - 154/154 admin routes protected 2026-02-05 21:36:14 +01:00
routes_membership.py fix(membership): set reviewed_at in start_review + backfill for app 11 2026-03-30 15:28:24 +02:00
routes_model_comparison.py refactor: Migrate access control from is_admin to role-based system 2026-02-01 21:05:22 +01:00
routes_pej.py fix(pej): use SessionLocal instead of db_session 2026-03-16 18:30:24 +01:00
routes_people.py refactor: Migrate access control from is_admin to role-based system 2026-02-01 21:05:22 +01:00
routes_portal_seo.py fix: correct links_without_text count and add overall score calculation 2026-02-21 16:09:54 +01:00
routes_roadmap.py feat: add public tenders aggregator to roadmap 2026-04-09 22:55:48 +02:00
routes_security.py feat: security panel - recent blocks table + top attacked paths 2026-04-10 10:45:29 +02:00
routes_social_publisher.py feat: auto-load charts from DB cache on page load, show cache date 2026-02-20 09:18:54 +01:00
routes_social.py refactor: remove /admin/social-media panel, rename menu labels 2026-03-12 16:29:19 +01:00
routes_status.py feat: migrate prod docs to OVH VPS + UTC→Warsaw timezone in all templates 2026-04-06 13:41:53 +02:00
routes_user_activity.py feat(admin): show PWA badge in user activity panel 2026-03-18 09:19:24 +01:00
routes_user_insights.py feat: simplify Chat tab - topic categories and cleaner feedback view 2026-03-11 04:05:15 +01:00
routes_users_api.py feat: sorting/filtering by roles in admin users + OFFICE_MANAGER access 2026-04-10 14:45:06 +02:00
routes_website_discovery.py feat: remember rejected candidates, skip in future bulk discovery 2026-02-21 10:24:55 +01:00
routes_zopk_dashboard.py refactor: Migrate access control from is_admin to role-based system 2026-02-01 21:05:22 +01:00
routes_zopk_knowledge.py fix(zopk): Translate remaining English messages and unify skip status 2026-02-09 15:44:34 +01:00
routes_zopk_news.py fix(zopk): Polish error messages and show failures as skipped, not errors 2026-02-09 15:36:00 +01:00
routes_zopk_timeline.py feat(zopk): Add AI-powered roadmap analysis with status updates and gap detection 2026-02-09 17:10:28 +01:00
routes.py feat(fees): klikalne kwadraciki miesięcy w panelu składek — quick payment registration 2026-04-14 19:07:17 +02:00