Statistiques — refonte complète, aucun changement backend statistics_screen.dart réécrit (+1832) : barres horizontales monochromes à la place des barres verticales tronquées et des deux anneaux, barre de filtres unique avec les volumes par canal, règle mono-canal, 4 KPI portant chacun leur variation, bandeau « à retenir », courbe en aire avec bandes de week-end. La période précédente s'obtient en rappelant le même endpoint. statistics_report.dart : export PDF généré côté client (paquet pdf Dart), il partage les valeurs calculées de l'écran — un chiffre ne peut pas diverger entre l'écran et le document envoyé à la commune. Deux puces du sommaire promettaient des données inexistantes (parcours terminés, questions au guide IA), retirées. ⚠️ Jamais ouvert dans un navigateur. Cases de test : test-plan.md §8bis / §8ter. Guide IA Screens/GuideIa/guide_ia_screen.dart — onglet Configuration. Menu conditionné à isAssistant, le même drapeau que la garde d'AiController. L'onglet « Ce que demandent vos visiteurs » n'est pas dans ce commit : le schéma backend est prêt, l'UI non. Onboarding self-service Screens/Auth/ (mot de passe oublié, définition du mot de passe), Screens/Billing/subscription_screen.dart, ai_quota_hint.dart. ⚠️ Aucun parcours joué de bout en bout — test-plan.md §18. Parcours guidés progression_mode.dart : 9 booléens sur 3 niveaux remplacés par 3 questions. Popups GuidedPath / GuidedStep / QuizQuestion mises à jour en conséquence. Client API (manager_api_new) — édité À LA MAIN, ne pas relancer la génération onboarding_api.dart, authentication_api.dart (+80), instance_dto (champs Guide*), guided_step / quiz_question_guided_step (flags morts retirés). Le // @dart=2.18 manquant dans onboarding_api.dart cassait les 3 apps Flutter d'un coup — corrigé ici. i18n : ~180 clés par langue (FR/EN/NL) + fichiers générés. Tests : progression_mode_test, statistics_report_test (le second a attrapé deux plantages qui seraient sortis au premier clic). flutter build web ✅. flutter analyze : 68 erreurs, toutes dans les fichiers modèle orphelins de manager_api_new — dette connue, pas une régression, ces fichiers ne sont pas dans le graphe de compilation.
87 lines
2.9 KiB
Dart
87 lines
2.9 KiB
Dart
import 'package:manager_api_new/api.dart';
|
|
//import 'package:openapi_dart_common/openapi.dart';
|
|
|
|
class Client {
|
|
ApiClient? _apiClient;
|
|
ApiClient? get apiApi => _apiClient;
|
|
|
|
AuthenticationApi? _authenticationApi;
|
|
AuthenticationApi? get authenticationApi => _authenticationApi;
|
|
|
|
ApplicationInstanceApi? _applicationInstanceApi;
|
|
ApplicationInstanceApi? get applicationInstanceApi => _applicationInstanceApi;
|
|
|
|
UserApi? _userApi;
|
|
UserApi? get userApi => _userApi;
|
|
|
|
InstanceApi? _instanceApi;
|
|
InstanceApi? get instanceApi => _instanceApi;
|
|
|
|
ConfigurationApi? _configurationApi;
|
|
ConfigurationApi? get configurationApi => _configurationApi;
|
|
|
|
SectionApi? _sectionApi;
|
|
SectionApi? get sectionApi => _sectionApi;
|
|
|
|
ResourceApi? _resourceApi;
|
|
ResourceApi? get resourceApi => _resourceApi;
|
|
|
|
DeviceApi? _deviceApi;
|
|
DeviceApi? get deviceApi => _deviceApi;
|
|
|
|
SectionMapApi? _sectionMapApi;
|
|
SectionMapApi? get sectionMapApi => _sectionMapApi;
|
|
|
|
SectionQuizApi? _sectionQuizApi;
|
|
SectionQuizApi? get sectionQuizApi => _sectionQuizApi;
|
|
|
|
SectionAgendaApi? _sectionAgendaApi;
|
|
SectionAgendaApi? get sectionAgendaApi => _sectionAgendaApi;
|
|
|
|
SectionEventApi? _sectionEventApi;
|
|
SectionEventApi? get sectionEventApi => _sectionEventApi;
|
|
|
|
SectionParcoursApi? _sectionParcoursApi;
|
|
SectionParcoursApi? get sectionParcoursApi => _sectionParcoursApi;
|
|
|
|
StatsApi? _statsApi;
|
|
StatsApi? get statsApi => _statsApi;
|
|
|
|
ApiKeyApi? _apiKeyApi;
|
|
ApiKeyApi? get apiKeyApi => _apiKeyApi;
|
|
|
|
NotificationApi? _notificationApi;
|
|
NotificationApi? get notificationApi => _notificationApi;
|
|
|
|
SubscriptionPlanApi? _subscriptionPlanApi;
|
|
SubscriptionPlanApi? get subscriptionPlanApi => _subscriptionPlanApi;
|
|
|
|
OnboardingApi? _onboardingApi;
|
|
OnboardingApi? get onboardingApi => _onboardingApi;
|
|
|
|
Client(String path) {
|
|
_apiClient = ApiClient(basePath: path);
|
|
//basePath: "https://192.168.31.140");
|
|
//basePath: "https://localhost:44339");
|
|
_apiClient!.addDefaultHeader("Access-Control_Allow_Origin", "*");
|
|
_authenticationApi = AuthenticationApi(_apiClient);
|
|
_instanceApi = InstanceApi(_apiClient);
|
|
_applicationInstanceApi = ApplicationInstanceApi(_apiClient);
|
|
_userApi = UserApi(_apiClient);
|
|
_configurationApi = ConfigurationApi(_apiClient);
|
|
_sectionApi = SectionApi(_apiClient);
|
|
_resourceApi = ResourceApi(_apiClient);
|
|
_deviceApi = DeviceApi(_apiClient);
|
|
_sectionMapApi = SectionMapApi(_apiClient);
|
|
_sectionQuizApi = SectionQuizApi(_apiClient);
|
|
_sectionAgendaApi = SectionAgendaApi(_apiClient);
|
|
_sectionEventApi = SectionEventApi(_apiClient);
|
|
_sectionParcoursApi = SectionParcoursApi(_apiClient);
|
|
_statsApi = StatsApi(_apiClient);
|
|
_apiKeyApi = ApiKeyApi(_apiClient);
|
|
_notificationApi = NotificationApi(_apiClient);
|
|
_subscriptionPlanApi = SubscriptionPlanApi(_apiClient);
|
|
_onboardingApi = OnboardingApi(_apiClient);
|
|
}
|
|
}
|