Commit Graph

113 Commits

Author SHA1 Message Date
Matt d34d16fda1 Fix critical member management issues: dues tracking, member IDs, and profile display
Build And Push Image / docker (push) Successful in 2m20s Details
- Fix dues payment logic to automatically calculate payment_due_date as 1 year from payment date
- Remove redundant dues_paid_until field and replace with payment_due_date throughout
- Implement member ID generation system with format MUSA-YYYY-XXXX
- Create migration endpoints for generating member IDs and fixing payment dates
- Update admin members page to display actual member_id from database
- Ensure ProfileAvatar components use correct member_id field
- Add support for profile images in list and grid views with initials fallback
- Fix countries export alias for backward compatibility

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-04 18:45:47 +02:00
Matt abd71445ab Fix registration API to use new group-based user creation method
Build And Push Image / docker (push) Successful in 1m56s Details
- Replace deprecated createUserWithRoleRegistration with createUserWithGroupAssignment
- Update comments to reflect group-based system instead of role-based
- Resolves registration error when creating new users
2025-08-31 19:13:09 +02:00
Matt 70e79d2618 Replace all mock data in admin and board pages with real data
Build And Push Image / docker (push) Successful in 1m56s Details
- Admin members page now loads real member data from NocoDB API
- Admin users page fetches actual users from Keycloak with tier determination
- Board members page uses real member data with proper transformations
- Admin payments page generates payment records from dues tracking data
- Created new /api/admin/users endpoint for Keycloak user management
- All stats cards now calculate from real data instead of hardcoded values
- Removed all mock/placeholder data arrays from production pages

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 18:43:04 +02:00
Matt 1aef356d78 Replace all mock/placeholder data with real data systems
Build And Push Image / docker (push) Successful in 2m13s Details
- Added getUserCount() method to Keycloak admin for real user statistics
- Replaced hardcoded userCount (25) with live Keycloak data in admin stats
- Fixed board meeting API to query real events, removed Jan 15 2025 fallback
- Updated board stats to count real events instead of hardcoded 3
- Created member-tiers service for proper tier determination
- Created dues-calculator service for accurate dues tracking
- Updated auth callback to use member-tiers service
- Updated overdue-count API to use dues-calculator
- Added data quality tracking with confidence levels
- Added proper error handling - returns null/0 instead of fake data
- Included source tracking for all data (live/calculated/fallback)

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 18:28:38 +02:00
Matt 4b78080f53 fixes
Build And Push Image / docker (push) Successful in 1m34s Details
2025-08-15 15:53:13 +02:00
Matt 17b78b3514 fixes
Build And Push Image / docker (push) Successful in 1m36s Details
2025-08-15 15:22:24 +02:00
Matt df4b89a45a fixes
Build And Push Image / docker (push) Successful in 1m24s Details
2025-08-15 15:13:47 +02:00
Matt dc0a3c6a2f fixes
Build And Push Image / docker (push) Successful in 1m36s Details
2025-08-15 15:06:39 +02:00
Matt df6d549573 fixes
Build And Push Image / docker (push) Successful in 1m31s Details
2025-08-15 14:52:18 +02:00
Matt a8022d8fb3 fixes
Build And Push Image / docker (push) Failing after 1m6s Details
2025-08-15 14:48:19 +02:00
Matt 888059a612 Implement dues reminder system with monthly payment cycle
Build And Push Image / docker (push) Failing after 1m10s Details
- Add API endpoint and email templates for dues reminders
- Change due date calculation from yearly to monthly billing
- Add visual status indicators for overdue and due-soon members
- Enhance member cards with status stripes and styling
2025-08-15 14:39:22 +02:00
Matt 3da5a64dbb fixes
Build And Push Image / docker (push) Successful in 1m39s Details
2025-08-14 15:39:30 +02:00
Matt 503d68cd2d Replace date-fns with native date formatting and remove unused code
Build And Push Image / docker (push) Successful in 1m34s Details
Remove date-fns dependency in favor of native Intl.DateTimeFormat APIs, clean up obsolete admin endpoints, utility files, and archived documentation. Consolidate docs structure and remove unused plugins.
2025-08-14 15:08:40 +02:00
Matt 503d10f0ab fixes
Build And Push Image / docker (push) Failing after 1m9s Details
2025-08-14 10:43:21 +02:00
Matt 2ff0c31bbd Add profile image system with MinIO storage
Build And Push Image / docker (push) Failing after 1m5s Details
- Implement ProfileAvatar component for user avatars
- Integrate MinIO for profile image storage and management
- Add profile image fields to Member type definition
- Create server utilities and API endpoints for image handling
- Replace basic avatar icon with new ProfileAvatar in dashboard
- Update sharp dependency to v0.34.3
2025-08-14 10:28:40 +02:00
Matt 400f9cdd52 Add board-specific welcome email template and logic
Build And Push Image / docker (push) Successful in 1m43s Details
- Create separate welcome email template for board members
- Add conditional logic to use board template based on membership tier
- Update email service to support sendWelcomeBoardEmail method
- Include board-specific subject line and template preloading
2025-08-14 09:25:56 +02:00
Matt 3d565e8185 fixes
Build And Push Image / docker (push) Successful in 1m24s Details
2025-08-13 22:53:14 +02:00
Matt fc1d691950 fixes
Build And Push Image / docker (push) Successful in 1m26s Details
2025-08-13 22:43:40 +02:00
Matt 44aee8f2f9 Refactor event form to use separate date/time inputs with validation
Build And Push Image / docker (push) Successful in 1m26s Details
- Split combined datetime pickers into separate date and time fields
- Add validation for past dates and time consistency
- Implement error message display with dismissible alerts
- Add watchers to combine date/time values into ISO strings
- Set minimum date constraints to prevent past date selection
- Add delete endpoint for events
2025-08-13 22:23:06 +02:00
Matt 9ee0b2f14e Clean up codebase and reorganize plugin architecture
Build And Push Image / docker (push) Successful in 1m30s Details
- Archive documentation files to docs-archive/
- Remove numbered prefixes from plugin files for cleaner organization
- Remove unused dependencies (@nuxt/ui, @vuepic/vue-datepicker)
- Update event components and API endpoints
- Simplify plugin structure with descriptive names
2025-08-13 22:10:00 +02:00
Matt b4e72ddf9a fixes
Build And Push Image / docker (push) Successful in 3m42s Details
2025-08-13 21:48:05 +02:00
Matt 34fdf820fe fixes
Build And Push Image / docker (push) Successful in 4m21s Details
2025-08-13 18:58:43 +02:00
Matt b49148cf95 fixes
Build And Push Image / docker (push) Has been cancelled Details
2025-08-13 18:55:49 +02:00
Matt 9b183b48cc fixes
Build And Push Image / docker (push) Successful in 3m27s Details
2025-08-13 17:24:31 +02:00
Matt e097fb746f fixes
Build And Push Image / docker (push) Successful in 3m45s Details
2025-08-13 17:16:22 +02:00
Matt b833826a1e fixes
Build And Push Image / docker (push) Successful in 3m54s Details
2025-08-13 16:47:53 +02:00
Matt 4b1a77de90 Add Keycloak group management for member portal access control
Build And Push Image / docker (push) Successful in 3m53s Details
- Add portal access control section to EditMemberDialog for admins
- Implement API endpoints for managing member Keycloak groups
- Add group selection UI with user/board/admin access levels
- Enhance admin config with reload functionality
- Support real-time group synchronization and status feedback
2025-08-13 16:31:54 +02:00
Matt 5371ad4fa2 fixes
Build And Push Image / docker (push) Successful in 4m16s Details
2025-08-13 15:57:34 +02:00
Matt db19eb2708 fixes
Build And Push Image / docker (push) Successful in 3m41s Details
2025-08-13 15:35:53 +02:00
Matt 62fb84d25e Add guest support for events and RSVP system
Build And Push Image / docker (push) Successful in 3m52s Details
- Add guest settings to event creation with configurable max guests per person
- Implement guest selection in RSVP form when guests are permitted
- Update API endpoints to handle guest count in RSVP requests
- Extend event and RSVP types to support guest-related fields
2025-08-13 15:14:43 +02:00
Matt 234c939dcd fixes
Build And Push Image / docker (push) Successful in 3m47s Details
2025-08-13 14:30:26 +02:00
Matt d215dfedc7 db updates and fixes
Build And Push Image / docker (push) Successful in 3m59s Details
2025-08-13 13:51:27 +02:00
Matt 072acf95eb Fix type safety and data consistency in events system
Build And Push Image / docker (push) Successful in 3m25s Details
- Add proper TypeScript type annotations and assertions
- Handle string/number conversion for attendee counts consistently
- Improve null/undefined checks for events array
- Make event handlers async for better error handling
- Fix data type inconsistencies between components and API
2025-08-12 17:23:42 +02:00
Matt 70b77fbe9f Resolve merge conflicts in events system
Build And Push Image / docker (push) Successful in 3m13s Details
- Fixed conflicts in server/api/events/index.get.ts with improved logging and session management
- Fixed conflicts in server/api/events/index.post.ts with better validation and error handling
- Fixed conflicts in server/utils/nocodb-events.ts incorporating admin config integration and token validation
- Events system now uses proper session management and NocoDB v2 API patterns
- Maintains compatibility with existing admin configuration system
2025-08-12 17:05:33 +02:00
Matt 7d55468a21 Add comprehensive debug logging and refactor events API session handling
- Add extensive console logging throughout events GET/POST endpoints
- Replace getUserSession with createSessionManager for better session handling
- Temporarily disable complex filtering/sorting logic to isolate issues
- Enhance error handling with proper statusCode checking
2025-08-12 16:58:31 +02:00
Matt 287af29f6c feat(board): Add real data integration for board dashboard
Build And Push Image / docker (push) Successful in 3m22s Details
- Create /api/board/stats endpoint for member statistics and overview data
- Create /api/board/next-meeting endpoint for upcoming meeting information
- Update board.vue to fetch real data instead of using mock data
- Add loading states and error handling with graceful fallbacks
- Board Overview now shows actual member counts and pending actions
- Next Meeting section displays real event data when available

The board dashboard now displays live data from the database while maintaining
fallback functionality if any data sources are unavailable.
2025-08-12 14:18:55 +02:00
Matt 1d5ecfddcd debug(events): Strip down to minimal query to isolate 422 errors
Build And Push Image / docker (push) Successful in 3m22s Details
- Removed ALL filtering (dates, status, search, role-based)
- Removed ALL sorting
- Added comprehensive debug logging
- This will test if even basic field filtering causes 422 errors
- Goal: Isolate exactly what NocoDB query syntax works vs fails
2025-08-12 13:49:42 +02:00
Matt c4789ec9df fix(events): Complete field name and query syntax fix based on debug findings
Build And Push Image / docker (push) Successful in 3m34s Details
Root cause identified and fixed:
- Events table uses 'Id' (capital I) not 'id' (lowercase)
- Fixed all field references to use correct NocoDB field names
- Added proper filtering with gte/lte operators (btw didn't work)
- Fixed RSVP lookup to prevent undefined event ID errors
- Updated calendar transformation to use correct field names

 Debug findings showed:
- Basic table access works (mp3wigub1fzdo1b confirmed correct)
- Sample record revealed actual field structure
- Issue was field name mismatch causing undefined IDs in queries

 This should resolve all 422 errors and make events calendar functional
2025-08-12 13:41:59 +02:00
Matt 9c029eb510 debug(events): Enhanced field name discovery debugging
Build And Push Image / docker (push) Successful in 3m20s Details
- Added comprehensive logging to identify exact table access issues
- Will show actual field names from events table if query succeeds
- Will show detailed error information if query fails
- This will help identify if issue is field names, permissions, or other factors
- Uses emojis for easy log scanning in production
2025-08-12 13:33:23 +02:00
Matt d01758b947 debug(events): Remove ALL filtering and sorting to test basic NocoDB API
Build And Push Image / docker (push) Has been cancelled Details
- Completely stripped down query to test if basic API call works
- No where clauses, no sorting, just limit/offset
- Added debug logging to identify the root cause
- This will help determine if issue is with query syntax or basic connectivity
2025-08-12 13:30:16 +02:00
Matt c0c5ae6c44 fix(events): Update NocoDB query syntax to match official API documentation
Build And Push Image / docker (push) Waiting to run Details
- Use btw (between) operator for date ranges instead of gte/lte
- Use proper ~or and ~and logical operators for complex conditions
- Use like operator with %wildcards% for search functionality
- Role-based filtering with correct OR conditions for board visibility
- All query syntax now matches official NocoDB v2 API documentation

This should resolve the 422 Unprocessable Entity errors by using the
correct query parameter format that NocoDB expects.
2025-08-12 13:22:41 +02:00
Matt 54a4f05c2a fix(events): Simplify NocoDB query to test basic functionality
Build And Push Image / docker (push) Has been cancelled Details
- Removed complex query conditions to isolate the issue
- Using simple (status,eq,active) query to test field names
- Will build up complexity once basic queries work
2025-08-12 13:21:27 +02:00
Matt 0688c23093 fix(events): Convert NocoDB query syntax from SQL-like to v2 API format
Build And Push Image / docker (push) Successful in 3m20s Details
- Updated all where clauses to use NocoDB v2 syntax: (field,operator,value)
- Changed SQL-like syntax (field >= 'value' AND field = 'value') to v2 format
- Fixed date range queries: (start_datetime,gte,date) and (start_datetime,lte,date)
- Fixed equality queries: (status,eq,active) instead of (status = 'active')
- Fixed AND/OR logic: ~and() and ~or() syntax for complex conditions
- Updated findEventRSVPs, findUserRSVP, and findUserEvents methods
- Fixed RSVP queries to use proper v2 format for member and event matching

This should resolve the 422 Unprocessable Entity errors that were caused by
using deprecated SQL-like syntax with the v2 API endpoints.
2025-08-12 13:15:06 +02:00
Matt 122d6fdd26 fixes
Build And Push Image / docker (push) Successful in 3m34s Details
2025-08-12 13:07:43 +02:00
Matt 85e8a20f40 fix(events): Convert events NocoDB client from v1 to v2 API
Build And Push Image / docker (push) Successful in 3m15s Details
- Updated all NocoDB API calls from v1/db/data/v1/ to v2/tables/ endpoints
- Fixed 422 Unprocessable Entity errors on events calendar page
- Ensures consistency with members system which already uses v2 API
- Updated methods: findAll, findOne, create, update, delete, createRSVP, findEventRSVPs, findUserRSVP, updateRSVP, updateAttendeeCount, findUserEvents
- Maintains same functionality while using correct API version

Resolves continuous 422 errors when loading events calendar.
2025-08-12 13:02:13 +02:00
Matt e75579e3e4 fixes
Build And Push Image / docker (push) Successful in 3m6s Details
2025-08-12 12:53:05 +02:00
Matt 490cb57b66 fixes
Build And Push Image / docker (push) Successful in 3m23s Details
2025-08-12 12:29:59 +02:00
Matt 67d4d5236b Add NocoDB events/RSVPs table config and improve session handling
Build And Push Image / docker (push) Successful in 3m24s Details
- Add events and rsvps table ID fields to NocoDB settings dialog
- Replace mock getUserSession with proper SessionManager integration
- Improve type safety with explicit type casting and error handling
- Add comprehensive events system bug analysis documentation
2025-08-12 12:24:16 +02:00
Matt e06f639454 fixes
Build And Push Image / docker (push) Successful in 2m54s Details
2025-08-12 04:31:21 +02:00
Matt f096897129 Add event management system with calendar and CRUD operations
Build And Push Image / docker (push) Failing after 2m37s Details
- Add EventCalendar component with FullCalendar integration
- Create event CRUD dialogs and upcoming event banner
- Implement server-side events API and database utilities
- Add events dashboard page and navigation
- Improve dues calculation with better overdue day logic
- Install FullCalendar and date-fns dependencies
2025-08-12 04:25:35 +02:00