Prevent wrong data for agenda + add translations for month filter

This commit is contained in:
Thomas Fransolet 2024-07-10 14:53:55 +02:00
parent 5885053ea9
commit 4035e50190
4 changed files with 25 additions and 15 deletions

View File

@ -10,7 +10,11 @@ class Agenda {
List<EventAgenda> events = []; List<EventAgenda> events = [];
for (var eventData in jsonList) { for (var eventData in jsonList) {
events.add(EventAgenda.fromJson(eventData)); try {
events.add(EventAgenda.fromJson(eventData));
} catch(e) {
print("Erreur lors du parsing du json : ${e.toString()}");
}
} }
return Agenda(events: events); return Agenda(events: events);
@ -52,12 +56,12 @@ class EventAgenda {
return EventAgenda( return EventAgenda(
name: json['name'], name: json['name'],
description: json['description'], description: json['description'],
type: json['type'], type: json['type'] is !bool ? json['type'] : null,
dateAdded: DateTime.parse(json['date_added']), dateAdded: json['date_added'] != null && json['date_added'].isNotEmpty ? DateTime.parse(json['date_added']) : null,
dateFrom: DateTime.parse(json['date_from']), dateFrom: json['date_from'] != null && json['date_from'].isNotEmpty ? DateTime.parse(json['date_from']) : null,
dateTo: DateTime.parse(json['date_to']), dateTo: json['date_to'] != null && json['date_to'].isNotEmpty ? DateTime.parse(json['date_to']) : null,
dateHour: json['date_hour'], dateHour: json['date_hour'],
address: EventAddress.fromJson(json['address']), address: json['address'] is !bool ? EventAddress.fromJson(json['address']) : null,
website: json['website'], website: json['website'],
phone: json['phone'], phone: json['phone'],
idVideoYoutube: json['id_video_youtube'], idVideoYoutube: json['id_video_youtube'],

View File

@ -60,7 +60,7 @@ class _AgendaView extends State<AgendaView> {
var jsonString = await response.transform(utf8.decoder).join(); var jsonString = await response.transform(utf8.decoder).join();
agenda = Agenda.fromJson(jsonString); agenda = Agenda.fromJson(jsonString);
agenda.events = agenda.events.where((a) => a.dateFrom!.isAfter(DateTime.now())).toList(); agenda.events = agenda.events.where((a) => a.dateFrom != null && a.dateFrom!.isAfter(DateTime.now())).toList();
agenda.events.sort((a, b) => a.dateFrom!.compareTo(b.dateFrom!)); agenda.events.sort((a, b) => a.dateFrom!.compareTo(b.dateFrom!));
filteredAgenda.value = agenda.events; filteredAgenda.value = agenda.events;

View File

@ -20,10 +20,16 @@ class _MonthFilterState extends State<MonthFilter> {
String? _selectedMonth; String? _selectedMonth;
Map<String, List<String>> monthNames = { Map<String, List<String>> monthNames = {
'fr': ['', 'fr': ['', 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre' 'en': ['', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
], 'de': ['', 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
// Ajoutez d'autres langues au besoin 'nl': ['', 'Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December'],
'it': ['', 'Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'],
'es': ['', 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
'pl': ['', 'Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień'],
'cn': ['', '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
'uk': ['', 'Січень', 'Лютий', 'Березень', 'Квітень', 'Травень', 'Червень', 'Липень', 'Серпень', 'Вересень', 'Жовтень', 'Листопад', 'Грудень'],
'ar': ['', 'يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],
}; };
@override @override
@ -48,7 +54,7 @@ class _MonthFilterState extends State<MonthFilter> {
// Vérifier si nbrEvents est supérieur à 0 // Vérifier si nbrEvents est supérieur à 0
if (nbrEvents > 0) { if (nbrEvents > 0) {
String monthName = _getTranslatedMonthName(monthYear); String monthName = _getTranslatedMonthName(tabletAppContext, monthYear);
RegExp regExp = RegExp(r'\d{4}'); RegExp regExp = RegExp(r'\d{4}');
String annee = regExp.stringMatch(monthYear)!; String annee = regExp.stringMatch(monthYear)!;
@ -78,11 +84,11 @@ class _MonthFilterState extends State<MonthFilter> {
); );
} }
String _getTranslatedMonthName(String monthYear) { String _getTranslatedMonthName(TabletAppContext tabletAppContext, String monthYear) {
// Récupérez le numéro du mois à partir de la chaîne "monthYear" // Récupérez le numéro du mois à partir de la chaîne "monthYear"
int monthIndex = int.parse(monthYear.split('-')[0]); int monthIndex = int.parse(monthYear.split('-')[0]);
// Récupérez le nom du mois traduit dans la langue sélectionnée // Récupérez le nom du mois traduit dans la langue sélectionnée
String translatedMonthName = monthNames["fr"]![monthIndex]; String translatedMonthName = monthNames[tabletAppContext.language!.toLowerCase()]![monthIndex];
return translatedMonthName; return translatedMonthName;
} }

View File

@ -15,7 +15,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at # Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 2.1.0+20 version: 2.1.1+21
environment: environment:
sdk: ">=3.1.0 <4.0.0" sdk: ">=3.1.0 <4.0.0"