Commit Graph

37 Commits

Author SHA1 Message Date
b3982a3309 fix(company-edit): host Quill editor locally instead of CDN
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
CDN (cdn.jsdelivr.net) was being blocked, causing all WYSIWYG editors
to fail silently — description, history, values, and services fields
were not editable. Now served from static/js/vendor/ like D3 and Chart.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 18:12:39 +01:00
e75586f0b9 fix(pej): use local YouTube thumbnails — CSP blocks img.youtube.com
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
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 21:25:55 +01:00
ea2a5e0939 fix(pej): use YouTube thumbnails and local infographics
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
YouTube iframes blocked by CSP, pej.pl blocks hotlinking.
Videos now show as clickable thumbnail cards with play button.
Infographics downloaded to static/images/pej/.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 21:19:55 +01:00
3a7faa782b feat: user avatar upload with crop, resize, and EXIF strip
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
- POST /konto/avatar: upload, center-crop to square, resize 300x300
- POST /konto/avatar/delete: remove file and clear DB
- dane.html: interactive avatar editor with hover overlay
- person_detail.html: show photo if available, fallback to initials
- Migration 070: avatar_path column on users table

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 10:18:29 +01:00
41ad6a1b18 fix: use local Chart.js instead of jsdelivr CDN (503 from production)
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
jsdelivr.net returns 503 from production network (behind FortiGate).
Downloaded Chart.js 4.4.7 UMD bundle locally to eliminate CDN dependency.
Updated all 4 templates that used the CDN link.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 18:37:10 +01:00
5ac24009dd feat: add service worker and native PWA install prompt for Android
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
Adds minimal service worker for PWA installability. On Android Chrome,
the smart banner and install page now trigger the native install dialog
directly instead of showing manual instructions. iOS still shows
step-by-step guide (Apple provides no install API).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 11:57:00 +01:00
f9bd941d19 fix: add compass logo PNG for emails (SVG converted to 128x128 PNG)
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
Previous logo-circle.png was 404, favicon-192 was wrong icon.
Generated logo-email.png from favicon.svg compass via sharp.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 18:33:38 +01:00
5fc9cae4a5 feat: Add Informatyk1 company logo (SVG + WebP)
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
Extracted SVG logo from informatyk1.pl website, converted to WebP via cwebp.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 15:49:43 +01:00
4a033f0d81 feat: Add Social Media Publisher module (MVP)
Admin panel module for publishing posts on NORDA chamber Facebook page.
Includes AI content generation (Gemini), post workflow (draft/approved/
scheduled/published), Facebook Graph API publishing, and engagement tracking.

New: migration 070, SocialPost/SocialMediaConfig models, publisher service,
admin routes with AJAX, 3 templates (list/form/settings).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 12:08:29 +01:00
b91c59a312 chore: Update docs, roadmap, and remove stale ralph-loop config
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
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 18:13:03 +01:00
7bd34824ab feat(calendar): Add image support for events
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
Add image_url column to NordaEvent model with migration 066.
Display event banner image above description in event detail page.
Include converted WebP image for Lean breakfast event (2026-02-20).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 11:28:40 +01:00
893687f577 fix(company): Rename UNIMOT logo to match updated slug
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
unimot.webp -> unimot-energia-i-gaz.webp

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 09:54:29 +01:00
094bcc808d feat(company): Add UNIMOT Energia i Gaz logo
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
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 09:49:08 +01:00
5497a9d7b0 feat(company): Add Alter Energy logo
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
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:35:00 +01:00
963f9ec5c8 feat(company): Add Fiume Studio logo
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
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:10:55 +01:00
c4c113aa6f fix(zopk): Add Brave API rate limit handling and heartbeat limit fix
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
Brave free tier was returning 429 for ~50% of queries due to back-to-back
requests. Added 1.1s delay between queries and retry with exponential
backoff (1.5s, 3s). Heartbeat endpoint exempted from Flask-Limiter and
interval increased from 30s to 60s to reduce log noise.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 14:43:34 +01:00
725cf5dbad feat(ux): Add branded maintenance page with Norda Biznes logo
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
Shown by nginx during gunicorn restart (502/503/504). Auto-refreshes
after 8 seconds. Replaces generic NPM error page.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 13:05:15 +01:00
507529fa64 feat(companies): Add Termo and Studio N°33 logos
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
New member companies: Termo sp. z o.o. (electrical) and
STUDIO N°33 Premium Body & Mental (fitness/wellness).
Both operate under NIP 5882495040.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 17:41:46 +01:00
448937dabd fix: Rename pkd_codes column to ceidg_pkd_list to avoid backref conflict
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 07:22:32 +01:00
0055857df4 feat: Rozbudowa systemu analityki użytkowników
Nowe funkcjonalności:
- GeoIP enrichment (kraj, miasto, region)
- UTM parameters tracking (source, medium, campaign, term, content)
- Bounce rate calculation
- Search queries logging
- Conversion tracking (register, login, contact_click, rsvp)
- Scroll depth tracking (25%, 50%, 75%, 100%)
- JS error tracking (window.onerror)
- Performance metrics (Web Vitals)
- CSV export (sessions, pageviews, searches, conversions)

Nowe tabele SQL:
- search_queries
- conversion_events
- js_errors
- popular_searches_daily
- hourly_activity

Dashboard rozszerzony o nowe sekcje i metryki.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 15:52:18 +01:00
6e1c46e13c feat: Animacje scroll z IntersectionObserver (Sprint 4)
Dodano system animacji fadeIn przy scrollowaniu:
- CSS keyframes: fadeIn, fadeInLeft, fadeInRight, fadeInUp, scaleIn
- IntersectionObserver w static/js/scroll-animations.js
- Event banner: data-animate="fadeIn"
- Chat banner: data-animate="fadeIn"
- Company cards: data-animate="fadeInUp" z delay stagger
- Search section: data-animate="fadeIn"
- Wsparcie dla prefers-reduced-motion

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 14:43:30 +01:00
b680e3f61c style: Sprint 3 - Chat page + Fluent CSS niebieski primary
Zmiany graficzne:
- chat.html: wszystkie #7c3aed → #2E4872
- chat.html: wszystkie #5b21b6 → #1e3050
- fluent-nordabiz.css: zmienne Fluent na NordaBiz blue
- Sidebar, header, avatary, input focus, send button - niebieski

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 14:21:19 +01:00
1cee516950 feat(chat): Update NordaGPT icon - smiling green robot (R4-A)
- Modern robot design with visor
- INPI green colors (#22c55e → #14b8a6 gradient)
- Glowing eyes effect
- Friendly smile
- Yellow antenna (north indicator)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 12:05:18 +01:00
bd78ba0688 feat(chat): New NordaGPT icon and updated example questions
- Created nordagpt-icon.svg combining Norda compass + INPI circuit motif
- Navy blue background with green AI chip center
- Yellow north indicator (Norda brand color)
- Updated header icon from robot emoji to new SVG
- Updated empty state icon
- Changed example questions to be more relevant:
  - 'Szukam partnera do projektu budowlanego'
  - 'Kto w Izbie zajmuje się marketingiem?'
  - 'Poleć firmę z dobrymi opiniami Google'
  - 'Co nowego na forum?'

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:54:14 +01:00
eac72f48f6 feat(pwa): Apple Touch Icon + Web Manifest + PNG fallbacks
Dodano pełne wsparcie dla ikon na wszystkich urządzeniach:
- apple-touch-icon.png (180x180) - iOS "Dodaj do ekranu głównego"
- favicon-192.png, favicon-512.png - Android PWA
- favicon-16.png, favicon-32.png - PNG fallback dla starszych przeglądarek
- site.webmanifest - PWA manifest z theme_color #233e6d
- meta theme-color - kolor paska adresu na mobile

Gwiazda Nordy z żółtym wskaźnikiem północy (różni się od Izby
dla łatwego rozróżnienia zakładek).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 23:44:11 +01:00
dddd7fb01f feat(branding): Favicon z gwiazdą Nordy (kompas)
- Stworzono SVG favicon z kompasem/gwiazdą Nordy
- Żółty wskaźnik północy, białe ramiona, granatowe tło
- Zgodne z brandingiem Norda Biznes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 23:33:37 +01:00
4a03638c74 feat(branding): Dodanie oficjalnego logo Izby Norda
- Logo w headerze (zastąpienie generycznej ikony SVG)
- Logo w footerze (nad nazwą "Norda Biznes Hub")
- Logo pobrane lokalnie do static/img/ dla wydajności

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 17:51:39 +01:00
394e51b3ba feat(chat): Dodaj przycisk pomocy wideo w NordaGPT
- Przycisk ▶️ w headerze chatu obok badge'a modelu
- Modal z 40-sekundowym tutorialem wideo z polskim narratorem
- Poster (miniaturka) wideo
- Sekcja "Szybkie wskazówki" pod odtwarzaczem
- Responsywny design dla mobile

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 11:50:04 +01:00
e14d95394d feat(announcements): System ogłoszeń i aktualności dla członków
- Model Announcement z kategoriami, statusami, slugami URL
- Panel admina /admin/announcements (CRUD, filtry, AJAX)
- Strona /ogloszenia tylko dla zalogowanych członków
- Szczegóły ogłoszenia /ogloszenia/<slug>
- Migracja SQL rozszerzająca istniejącą tabelę
- Testowe ogłoszenia: ARP baza noclegowa, Tytani Przedsiębiorczości
- Pliki PDF regulaminu i harmonogramu konkursu Tytani

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 22:10:54 +01:00
2f37267475 feat: Update footer with INPI branding
- Add INPI logo with link to inpi.pl
- Change copyright to INPI as creator
- Update contact email to maciej.pienczyn@inpi.pl
- Add WhatsApp contact link
- Make phone and email clickable (tel:/mailto:)
- Add CSS styles for footer creator section

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 08:23:43 +01:00
a148d464af feat: Add user analytics panel (/admin/analytics)
- Track user sessions, page views, clicks
- Measure engagement score and session duration
- Device breakdown (desktop/mobile/tablet)
- User rankings by activity
- Popular pages statistics
- Recent sessions feed
- SQL migration for analytics tables
- JavaScript tracker for frontend events

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 19:40:37 +01:00
99b44d6ccd feat: Mapa Powiązań - modal fullscreen z filtrami i licznikami
- Fullscreen modal z panelem filtrów (zamiast osobnej strony)
- Filtry węzłów: Firmy, Osoby (checkboxy)
- Filtry powiązań: Zarząd, Wspólnicy, Prokurenci, JDG (checkboxy)
- Liczniki przy każdym filtrze (aktualizowane na bieżąco)
- Wyszukiwarka z autocomplete
- Etykiety ukryte domyślnie, widoczne przy hover
- D3.js v7 do wizualizacji grafu

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 14:09:08 +01:00
8ee5945ccd fix: Handle NULL views_count in forum and classifieds
- Forum topics and classifieds now handle NULL views_count gracefully
- Prevents TypeError when incrementing view counter
2026-01-11 06:03:13 +01:00
6e4e7c2240 Sync: Current production state
- Added CompanyRecommendation system
- Made company pages public (removed @login_required)
- CSS refactor: inline styles instead of external fluent CSS
- Added release notes page
- Added admin recommendations panel
- Company logos (webp format)
- Docker compose configuration

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 12:26:22 +01:00
055d9c1cfa Add company logos, migration and docs
- Add 80+ company logo images (webp/svg)
- Add membership_fees migration SQL
- Add incident report doc
- Update .gitignore for worktrees

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 22:31:17 +01:00
6d589407be Sync local repo with production state
- Add MembershipFee and MembershipFeeConfig models
- Add /health endpoint for monitoring
- Add Microsoft Fluent Design CSS
- Update templates with new CSS structure
- Add Announcement model
- Update .gitignore to exclude analysis files

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 22:23:28 +01:00
02fc67bf40 Initial commit 2026-01-01 14:01:49 +01:00