Commit 3ceecbe

derdilla <82763757+NobodyForNothing@users.noreply.github.com>
2024-01-07 11:52:19
add pdf default columns
Signed-off-by: derdilla <82763757+NobodyForNothing@users.noreply.github.com>
1 parent ad17983
Changed files (4)
lib/components/export_warn_banner.dart
@@ -39,24 +39,24 @@ class _ExportWarnBannerState extends State<ExportWarnBanner> {
       case ExportFormat.db:
         return _buildOK();
       case ExportFormat.pdf:
-        return _buildNotExportable(context);
+        return _buildNotImportable(context);
       case ExportFormat.csv:
         if (widget.csvExportSettings.exportHeadline == false) return _buildNoHeadline(context);
-        if (widget.csvExportSettings.fieldDelimiter != ',' && widget.csvExportSettings.fieldDelimiter != '|') return _buildNotExportable(context);
-        if (widget.csvExportSettings.textDelimiter != '"' && widget.csvExportSettings.textDelimiter != "'") return _buildNotExportable(context);
+        if (widget.csvExportSettings.fieldDelimiter != ',' && widget.csvExportSettings.fieldDelimiter != '|') return _buildNotImportable(context);
+        if (widget.csvExportSettings.textDelimiter != '"' && widget.csvExportSettings.textDelimiter != "'") return _buildNotImportable(context);
         final preset = widget.csvExportSettings.exportFieldsConfiguration.activePreset;
         switch (preset) {
           case ExportImportPreset.bloodPressureApp:
             return _buildOK();
           case ExportImportPreset.myHeart:
-            return _buildNotExportable(context);
+            return _buildNotImportable(context);
           case ExportImportPreset.none:
             final exportedColumns = widget.csvExportSettings.exportFieldsConfiguration
                 .getActiveColumns(widget.availableColumns);
             final exportedTypes = exportedColumns
                 .map((column) => column.restoreAbleType);
 
-            if (!exportedTypes.contains(RowDataFieldType.timestamp)) return _buildNotExportable(context);
+            if (!exportedTypes.contains(RowDataFieldType.timestamp)) return _buildNotImportable(context);
 
             if (exportedColumns.firstWhereOrNull((e) => (e is TimeColumn)) != null) return _buildAccuracyLoss(context);
 
@@ -68,6 +68,8 @@ class _ExportWarnBannerState extends State<ExportWarnBanner> {
             if (missingTypes.isEmpty) return _buildOK();
 
             return _buildIncompleteExport(context, missingTypes);
+          case ExportImportPreset.bloodPressureAppPdf:
+            return _buildNotImportable(context);
         }
     }
   }
@@ -76,7 +78,7 @@ class _ExportWarnBannerState extends State<ExportWarnBanner> {
   Widget _buildOK() => const SizedBox.shrink();
 
   /// Exports made with this configuration are not importable for a variety of reasons.
-  Widget _buildNotExportable(BuildContext context) {
+  Widget _buildNotImportable(BuildContext context) {
     final localizations = AppLocalizations.of(context)!;
     return _banner(localizations.exportWarnConfigNotImportable, localizations);
   }
lib/model/export_import/column.dart
@@ -121,8 +121,9 @@ class BuildInColumn extends ExportColumn {
   BuildInColumn._create(this.internalIdentifier, this.csvTitle, String formatString, this._userTitle)
       : _formatter = ScriptedFormatter(formatString);
   
-  static final List<BuildInColumn> allColumns = [
+  static final List<ExportColumn> allColumns = [
     pulsePressure,
+    formattedTime,
     mhDate,
     mhSys,
     mhDia,
@@ -139,9 +140,14 @@ class BuildInColumn extends ExportColumn {
       r'{{$SYS-$DIA}}', 
       (localizations) => localizations.pulsePressure
   );
+  static final formattedTime = TimeColumn.explicit(
+      'buildin.formattedTime',
+      'Time',
+      'dd MMM yyyy, HH:mm'
+  );
 
   // my heart columns
-  static final mhDate = BuildInColumn._create(
+  static final mhDate = BuildInColumn._create( // FIXME
       'buildin.mhDate',
       'DATUM',
       r'$FORMAT{$TIMESTAMP,yyyy-MM-dd HH:mm:ss}',
lib/model/export_import/export_configuration.dart
@@ -99,6 +99,12 @@ class ActiveExportColumnConfiguration extends ChangeNotifier {
         BuildInColumn.mhWeight,
         BuildInColumn.mhOxygen,
       ],
+      ExportImportPreset.bloodPressureAppPdf => [
+        BuildInColumn.formattedTime,
+        NativeColumn.systolic,
+        NativeColumn.diastolic,
+        NativeColumn.pulse,
+      ]
     });
 }
 
@@ -112,18 +118,26 @@ enum ExportImportPreset {
   ///
   /// All [NativeColumn]s.
   bloodPressureApp,
+
+  /// Default preset for pdf exports.
+  ///
+  /// Includes time, sys, dia, pu
+  bloodPressureAppPdf,
+
   myHeart;
 
   String localize(AppLocalizations localizations) => switch (this) {
     ExportImportPreset.none => localizations.custom,
     ExportImportPreset.bloodPressureApp => localizations.default_,
+    ExportImportPreset.bloodPressureAppPdf => localizations.pdf,
     ExportImportPreset.myHeart => '"My Heart" export'
   };
 
   int encode() => switch (this) {
     ExportImportPreset.none => 0,
     ExportImportPreset.bloodPressureApp => 1,
-    ExportImportPreset.myHeart => 2
+    ExportImportPreset.myHeart => 2,
+    ExportImportPreset.bloodPressureAppPdf => 3,
   };
 
   static ExportImportPreset? decode(dynamic e) {
@@ -131,6 +145,7 @@ enum ExportImportPreset {
       0 => ExportImportPreset.none,
       1 => ExportImportPreset.bloodPressureApp,
       2 => ExportImportPreset.myHeart,
+      3 => ExportImportPreset.bloodPressureAppPdf,
       _ => (){
         assert(e is! int, 'non ints can happen through bad user values, other ints can happen as well, but should developers should be notified.');
         return null;
lib/model/storage/export_pdf_settings_store.dart
@@ -112,7 +112,9 @@ class PdfExportSettings extends ChangeNotifier implements CustomFieldsSettings {
     notifyListeners();
   }
 
-  ActiveExportColumnConfiguration _exportFieldsConfiguration = ActiveExportColumnConfiguration();
+  ActiveExportColumnConfiguration _exportFieldsConfiguration = ActiveExportColumnConfiguration(
+    activePreset: ExportImportPreset.bloodPressureAppPdf, // TODO: update function
+  );
   @override
   ActiveExportColumnConfiguration get exportFieldsConfiguration => _exportFieldsConfiguration;