Commit Graph

418 Commits

Author SHA1 Message Date
Torsten Schulz (local)
b404c289bb feat: Implement Windows runner for Flutter desktop app
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 57s
- Added runner.exe.manifest for DPI awareness and compatibility settings.
- Created utils.cpp and utils.h for console management and command line argument handling.
- Developed win32_window.cpp and win32_window.h for high DPI-aware window management.
- Established basic window creation, message handling, and theme updating.
- Added documentation for Flutter desktop app implementation plan and MVP specifications.
2026-07-30 10:01:54 +02:00
Torsten Schulz (local)
ee526dc3f2 feat: Update member table schema to link users and enhance calendar events structure
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 52s
2026-07-24 14:47:21 +02:00
Torsten Schulz (local)
01ca924e3e feat: Add Berlin date-time formatting for match results processing
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 54s
2026-07-24 13:31:49 +02:00
Torsten Schulz (local)
e2e8ba0d54 feat: Implement member inbox with read status and question functionality
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 53s
2026-07-24 09:17:57 +02:00
Torsten Schulz (local)
63a5db1196 feat: Implement member self-service features for profile change requests and event responses
- Added MemberProfileChangeRequest and MemberEventResponse models with associations.
- Created API endpoints for member dashboard, profile change requests, event responses, and training attendance updates.
- Developed MemberHomeView component to display member-specific information and actions.
- Updated routing to include new member dashboard and profile change request functionalities.
- Added SQL migration scripts for new database tables related to member self-service.
- Enhanced login functionality to redirect members based on their roles and club associations.
2026-07-24 07:53:05 +02:00
Torsten Schulz (local)
3ac4039097 feat: implement user linking for members and update database schema for user associations
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 53s
2026-07-22 23:54:45 +02:00
Torsten Schulz (local)
46079fc16e feat: update navigation link for club payments in dashboard and enhance error handling in Home view
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 51s
2026-07-22 16:17:19 +02:00
Torsten Schulz (local)
e38f2c2e19 feat: add archived documents section and filtering options to club archive view
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 52s
2026-07-22 16:07:31 +02:00
Torsten Schulz (local)
d190c2cb70 feat: add optional reply address to communication threads and enhance email transport status handling
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 52s
2026-07-22 15:28:39 +02:00
Torsten Schulz (local)
110519c7b8 feat: add team name normalization for club matching in match service
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 51s
2026-07-17 15:35:57 +02:00
Torsten Schulz (local)
6afa5a5629 fix: improve existing match handling in CSV import to ensure correct league and location updates
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 50s
2026-07-17 15:19:23 +02:00
Torsten Schulz (local)
7bf7ae2bef fix: ensure leagueId is retained when editing a team to prevent accidental removal of MyTischtennis link
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 51s
2026-07-17 14:53:06 +02:00
Torsten Schulz (local)
f83e3986b7 feat: add age group code extraction and link youth club teams to imported leagues
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 50s
2026-07-17 14:10:52 +02:00
Torsten Schulz (local)
bb9a030e89 fix: update clubId handling in CSV upload to support query parameters and improve form data processing
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 53s
2026-07-17 14:02:54 +02:00
Torsten Schulz (local)
35031e3ae5 fix: improve error handling for CSV import in upload and ScheduleView
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 51s
2026-07-17 13:48:56 +02:00
Torsten Schulz (local)
370df07c2a feat: implement team name normalization and enhance CSV import match detection
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 51s
2026-07-17 12:25:58 +02:00
Torsten Schulz (local)
94385231d3 fix: update CSV import to correctly decode Windows-1252 encoding for venue names
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 51s
2026-07-17 12:00:17 +02:00
Torsten Schulz (local)
5357dac9e1 chore: update file permissions for multiple files and add migration for club fee rules
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 54s
- Changed file permissions from 644 to 755 for various files in the mobile-app and mobile-app_legacy_rn_expo directories, ensuring executable permissions where necessary.
- Added a new SQL migration script to the backend to introduce missing columns for club billing and invoice settings in the clubs table, maintaining synchronization with the current Sequelize model.
2026-07-17 11:51:24 +02:00
Torsten Schulz (local)
ac97332e6f feat: Enhance club payment claims and task automation
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 1m0s
- Added `paid_amount_cents` column to `club_payment_claims` for better tracking of payments.
- Implemented compatibility checks for the new column in `clubPaymentClaimService` and `clubTaskAutomationService`.
- Updated various views to handle read-only states when editing is not allowed.
- Refactored forms in `ClubAccountsView`, `ClubInvoicesView`, `ClubTasksView`, and `ClubCommunicationView` to use factory functions for cleaner code.
- Introduced a new migration script to add the `paid_amount_cents` column if it doesn't exist and initialize it for existing paid claims.
- Created a detailed plan for enhancing club features and ensuring stability in existing modules.
2026-07-13 17:01:13 +02:00
Torsten Schulz (local)
90e6c2f9f6 Updates, overview extended, club view implemented 2026-06-23 16:17:07 +02:00
Torsten Schulz (local)
302ed20a9b more club funtions, fix for team edit 2026-06-21 17:15:04 +02:00
Torsten Schulz (local)
542fae089c implementierung der ersten schritte eine komplett-suite 2026-06-19 15:47:32 +02:00
Torsten Schulz (local)
8d1bce2ff9 Fixed tournament - groups in end round and place 3
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 47s
2026-06-10 08:08:31 +02:00
Torsten Schulz (local)
16465fafc8 Feedback-Window
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 50s
2026-06-09 07:57:36 +02:00
Torsten Schulz (local)
f0142d5682 auto-set von "hat gespielt"
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 45s
2026-06-06 12:56:48 +02:00
Torsten Schulz (local)
5194d4582f Freundschaftsspiele korrigiert
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 52s
2026-06-06 12:42:17 +02:00
Torsten Schulz (local)
0ff67dae80 Implement cross-club friendly match concept with invitations and shared matches
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 49s
- Added controllers for handling friendly match invitations and shared matches.
- Created migration scripts for `friendly_match_invitation` and `friendly_match_shared` tables.
- Developed models for `FriendlyMatchInvitation` and `FriendlyMatchShared`.
- Established routes for managing invitations and shared matches.
- Implemented services for business logic related to invitations and shared matches.
- Documented the concept plan for the new feature including API endpoints and data models.
2026-05-30 17:50:35 +02:00
Torsten Schulz (local)
9d9481ac76 feat: Add excludeFromBilling option for diary dates and update related functionality
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 44s
2026-05-30 16:10:34 +02:00
Torsten Schulz (local)
25f3802d66 Refactor code structure for improved readability and maintainability
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 45s
2026-05-30 15:53:07 +02:00
Torsten Schulz (local)
e57cdc6ad8 Refactor code structure for improved readability and maintainability
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 53s
2026-05-27 23:53:41 +02:00
Torsten Schulz (local)
0f946e9514 feat: Optimize activity ordering and enhance plan item movement functionality
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 45s
2026-05-22 13:48:43 +02:00
Torsten Schulz (local)
ecfd3bf851 feat: Implement account deletion feature with UI and API integration
Some checks failed
Deploy tt-tagebuch / deploy (push) Has been cancelled
2026-05-18 14:12:14 +02:00
Torsten Schulz (local)
b9bbd45ae9 Refactor code structure and remove redundant sections for improved readability and maintainability
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 47s
2026-05-18 13:01:35 +02:00
Torsten Schulz (local)
5dfdcb63bc feat: Implement friendly match management features
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 44s
- Added backend support for managing friendly matches including listing, creating, updating, and deleting matches.
- Introduced a new database table `friendly_match` with relevant fields for match details.
- Created a service layer to handle business logic related to friendly matches.
- Developed API routes for friendly match operations with appropriate authentication and authorization.
- Added a Vue component for managing participants in friendly matches, allowing selection of members and manual entry of names.
- Updated existing tournament editor screens to integrate friendly match functionalities.
2026-05-18 00:43:42 +02:00
Torsten Schulz (local)
040e758044 feat: implement table distribution logic and update UI for match assignments
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 43s
2026-05-18 00:06:56 +02:00
Torsten Schulz (local)
697e67d46e feat: implement table assignment and distribution for tournament matches
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 44s
2026-05-17 23:55:39 +02:00
Torsten Schulz (local)
f8f1c797e7 feat: add number of tables to tournament updates and enhance related UI components
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 47s
2026-05-16 00:18:59 +02:00
Torsten Schulz (local)
40bd5e0745 feat: improve user token handling and add club selection clearing button in settings
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 43s
2026-05-15 16:52:26 +02:00
Torsten Schulz (local)
669f3f0365 feat: update app version to 1.3.1 and increment version code to 7
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 45s
2026-05-15 16:17:11 +02:00
Torsten Schulz (local)
eb54b4f7cf feat(i18n): add scripts for locale translation and patching
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 45s
- Implemented `fill-de-extended-gaps.js` to fill missing billing/orders keys in de-extended from de.
- Created `fill-i18n-deep.py` for deep translation of locale JSONs using deep-translator with fallback options.
- Added `fill-i18n-locales.js` to translate locale JSONs and write overrides for untranslated keys.
- Introduced `fix-en-leaks.py` to translate keys that still match the en-US merge, addressing English leaks.
- Developed `patch-de-ch-swiss.js` to replace 'ß' with 'ss' in de-CH.json without deleting existing entries.
- Created `patch-en-gb-au.js` to apply UK/AU spelling corrections in en-GB and en-AU locales.
- Added shell scripts `run-fix-en-leaks.sh` and `run-i18n-deep-fill.sh` for sequential execution of translation tasks.
- Implemented `update-i18n-todo-stats.js` to update statistics in the I18N_TODO.md file based on translation completeness.
2026-05-15 15:52:54 +02:00
Torsten Schulz (local)
bf3e1af084 feat(TrainingGroup): add excludeFromQuickDiaryCreate feature and update related logic
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 44s
- Introduced a new boolean field `excludeFromQuickDiaryCreate` in the TrainingGroup model to control group visibility in quick diary creation.
- Updated the `updateTrainingGroup` service method to handle the new field, allowing for dynamic updates based on user input.
- Enhanced the TrainingTimesTab component to include a checkbox for excluding groups from quick diary creation, improving user interaction.
- Updated localization files to include new strings related to the exclude feature, ensuring clarity in multiple languages.
- Refactored logic in DiaryView and mobile app to consider the new exclusion criteria when suggesting training slots.
2026-05-14 22:47:02 +02:00
Torsten Schulz (local)
7981371136 feat(TrainingCancellation): enhance cancellation functionality and localization support
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 44s
- Updated the training cancellation controller to accept training group IDs, improving the cancellation process.
- Modified the database schema to include a JSON field for training group IDs in the training cancellations table.
- Enhanced the TrainingCancellation model to support the new training group IDs field.
- Updated the training cancellation service to normalize and handle training group IDs effectively.
- Added localization support for training cancellation features across multiple languages, improving user experience.
2026-05-13 10:57:23 +02:00
Torsten Schulz (local)
004801b1a6 feat(Calendar): integrate CalendarEvent model and enhance calendar functionality
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 43s
- Added CalendarEvent model to the backend, establishing relationships with the Club model for better event management.
- Updated server.js to include calendarEventRoutes, enabling API access for calendar events.
- Enhanced CalendarView.vue to support custom event creation and management, improving user interaction with the calendar.
- Refactored various components to streamline event handling and improve overall user experience in the calendar interface.
- Updated TODO and DEVELOPMENT documentation to reflect new calendar features and architectural decisions.
2026-05-13 10:21:30 +02:00
Torsten Schulz (local)
54d9b9fc86 feat(MatchService): enhance match filtering for own teams and update mobile app settings
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 43s
- Added logic in MatchService to filter matches based on the user's own teams, ensuring only relevant matches are displayed.
- Updated the mobile app's TODO list to reflect progress on ClubSettings and Predefined Activities features.
- Enhanced the AppRoot and ClubStammdatenScreens to support new settings and permissions for club management.
- Introduced new API methods for creating and updating training groups and times, improving the training management capabilities.
- Refactored MembersManager to include methods for managing training groups and times, streamlining the member management process.
2026-05-13 00:01:25 +02:00
Torsten Schulz (local)
57468f1efb feat(Tournament): add official tournament participation feature
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 43s
- Introduced functionality to load and display official tournament participation events in the CalendarView.
- Updated the API client to fetch official tournament data, enhancing the event management capabilities.
- Added new UI elements to represent official tournaments, including visual indicators and event details.
- Enhanced the ClubManager to support fetching and managing official tournament data.
- Updated the mobile app's TODO list to reflect progress on tournament-related features.
2026-05-12 23:52:54 +02:00
Torsten Schulz (local)
bea5facb7d feat(ClubSettings): add country and state code fields for regional calendar data
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 43s
- Introduced `countryCode` and `stateCode` fields in the Club model to support regional calendar data.
- Updated ClubSettings component to allow users to select their country and state, enhancing the configuration options for clubs.
- Enhanced the ClubService to handle normalization of country and state codes during updates.
- Added new routes and middleware to support the training cancellation feature and calendar integration in the backend.
- Updated frontend navigation to include a calendar link, improving user access to scheduling features.
2026-05-12 23:46:07 +02:00
Torsten Schulz (local)
48f71b9df1 chore: update .gitignore and enhance backend and mobile app functionality
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 44s
- Added mobile app build directories and configuration files to .gitignore for cleaner repository management.
- Improved error handling in diaryMemberController by requiring diaryDateId and memberId query parameters.
- Refactored DiaryMemberService to log tag IDs instead of raw values for better debugging.
- Enhanced TournamentParticipantsTab and TournamentTab components with improved touch-action properties for better user experience.
- Updated mobile app's gradle.properties and build.gradle.kts for compatibility with AGP 9.x and Kotlin 2.1.21, including new dependencies for Coil and UCrop.
- Refactored MainApplication to simplify initialization and improved MainActivity to handle dependencies more robustly.
- Updated various UI components in the mobile app to enhance layout and functionality, including MemberDetailScreen and MemberEditScreen.
2026-05-12 23:14:31 +02:00
Torsten Schulz (local)
be9caf92a4 refactor(DiaryDateActivityService): improve orderId calculation logic for group activities
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 44s
- Updated the logic for determining the maximum orderId to handle cases with and without groupId more clearly.
- Enhanced code readability by consolidating the where clause for fetching max orderId based on group context.
2026-05-08 14:02:25 +02:00
Torsten Schulz (local)
912bf88c3f feat(DiaryDateActivity, DiaryView): integrate groupId for enhanced activity management
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 42s
- Added `groupId` field to the DiaryDateActivity model to support group-specific activities.
- Updated create and update methods in DiaryDateActivityService to handle groupId, ensuring proper validation and association with groups.
- Enhanced DiaryView component to allow selection of groups for activities, improving user experience and activity organization.
- Implemented filtering logic in DiaryView to display activities based on selected group, enhancing data clarity and usability.
2026-05-08 11:58:57 +02:00
Torsten Schulz (local)
93796cecd6 feat(DiaryView, DiaryDateActivityService): implement group filtering and enhance activity display
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 43s
- Added a group filter dropdown in the DiaryView component to allow users to filter group activities by selected group.
- Updated the DiaryDateActivityService to include groupId in the query for maximum orderId, improving activity management.
- Enhanced the display logic for group activities to reflect the selected filter, improving user experience and data clarity.
2026-05-08 11:35:22 +02:00