Einstellung 'Erster Tag der Woche = Sonntag' wird in der UI ignoriert #9

Closed
opened 2026-09-09 20:12:44 +00:00 by Aceless · 1 comment
Owner

SettingsService und MealPlanNotifier._getWeekStart unterstuetzen WeekStartDay.sunday, die UI rechnet an mehreren Stellen fest mit Montag:

1. DailyPlanScreen.initState:

_pageController = PageController(initialPage: _selectedDate.weekday - 1);

Bei Sonntagsstart ist Sonntag Index 0, weekday - 1 ergibt aber 6 - die App oeffnet den falschen Tag.

2. ModernWeekField._pickWeek normalisiert immer auf Montag:

final monday = picked.subtract(Duration(days: picked.weekday - DateTime.monday));

3. MealPlanDayCard._getDayName und DailyPlanScreen._getDayName indizieren feste Montag-first-Arrays.

Vorschlag: Den Index konsistent aus weekStartDay ableiten, z.B. eine gemeinsame Hilfsfunktion int dayIndex(DateTime d, WeekStartDay start) in settings_service.dart, und ModernWeekField den Wochenstart als Parameter uebergeben.

Dateien: app/lib/screens/daily_plan_screen.dart:30-31,528-531, app/lib/widgets/modern_week_field.dart:27-33

`SettingsService` und `MealPlanNotifier._getWeekStart` unterstuetzen `WeekStartDay.sunday`, die UI rechnet an mehreren Stellen fest mit Montag: **1.** `DailyPlanScreen.initState`: ```dart _pageController = PageController(initialPage: _selectedDate.weekday - 1); ``` Bei Sonntagsstart ist Sonntag Index 0, `weekday - 1` ergibt aber 6 - die App oeffnet den falschen Tag. **2.** `ModernWeekField._pickWeek` normalisiert immer auf Montag: ```dart final monday = picked.subtract(Duration(days: picked.weekday - DateTime.monday)); ``` **3.** `MealPlanDayCard._getDayName` und `DailyPlanScreen._getDayName` indizieren feste Montag-first-Arrays. **Vorschlag:** Den Index konsistent aus `weekStartDay` ableiten, z.B. eine gemeinsame Hilfsfunktion `int dayIndex(DateTime d, WeekStartDay start)` in `settings_service.dart`, und `ModernWeekField` den Wochenstart als Parameter uebergeben. Dateien: `app/lib/screens/daily_plan_screen.dart:30-31,528-531`, `app/lib/widgets/modern_week_field.dart:27-33`
Author
Owner

Behoben auf Branch frontend-improvements.

startOfWeek und dayIndexInWeek als gemeinsame Helfer; DailyPlanScreen und ModernWeekField nutzen den eingestellten Wochenstart. Wochentagsnamen kommen aus intl.

Commits
  • 47edeeb Added Claude
  • 9b16a6e Einstellungen mit Ladebalken, url_launcher-Plugin-Registrierung
  • 8ad68a4 Settings erreichbar, Secrets sichern, Theme-Tokens, toter Code weg, Tests
  • bf204d3 Rezeptliste, Detail, Vorschlaege und Spaces ueberarbeiten
  • d85c681 Rezept-Editor: Absturz, stiller Datenverlust und Controller-Leaks beheben
  • d970fbe Provider-State korrigieren, Fehler sichtbar machen, Wochenlogik zentralisieren
  • 71e557d Start entkoppeln, API-Client haerten, Theme auf Tokens umstellen

flutter analyze: 0 Issues. flutter test: 22 Tests gruen.

Behoben auf Branch `frontend-improvements`. startOfWeek und dayIndexInWeek als gemeinsame Helfer; DailyPlanScreen und ModernWeekField nutzen den eingestellten Wochenstart. Wochentagsnamen kommen aus intl. <details><summary>Commits</summary> - 47edeeb Added Claude - 9b16a6e Einstellungen mit Ladebalken, url_launcher-Plugin-Registrierung - 8ad68a4 Settings erreichbar, Secrets sichern, Theme-Tokens, toter Code weg, Tests - bf204d3 Rezeptliste, Detail, Vorschlaege und Spaces ueberarbeiten - d85c681 Rezept-Editor: Absturz, stiller Datenverlust und Controller-Leaks beheben - d970fbe Provider-State korrigieren, Fehler sichtbar machen, Wochenlogik zentralisieren - 71e557d Start entkoppeln, API-Client haerten, Theme auf Tokens umstellen </details> `flutter analyze`: 0 Issues. `flutter test`: 22 Tests gruen.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Aceless/RecipePlanner#9
No description provided.