Przeglądaj źródła

Add meal notes (Food Type)

Jon Mårtensson 2 lat temu
rodzic
commit
e15deef87b

+ 2 - 2
FreeAPS/Sources/APS/Storage/CarbsStorage.swift

@@ -81,7 +81,7 @@ final class BaseCarbsStorage: CarbsStorage, Injectable {
                     } else { useDate = useDate.addingTimeInterval(interval.minutes.timeInterval) }
 
                     let eachCarbEntry = CarbsEntry(
-                        id: UUID().uuidString, createdAt: useDate, carbs: equivalent, fat: 0, protein: 0,
+                        id: UUID().uuidString, createdAt: useDate, carbs: equivalent, fat: 0, protein: 0, note: nil,
                         enteredBy: CarbsEntry.manual, isFPU: true,
                         fpuID: fpuID
                     )
@@ -185,10 +185,10 @@ final class BaseCarbsStorage: CarbsStorage, Injectable {
                 enteredBy: CarbsEntry.manual,
                 bolus: nil,
                 insulin: nil,
-                notes: nil,
                 carbs: $0.carbs,
                 fat: nil,
                 protein: nil,
+                foodType: $0.note,
                 targetTop: nil,
                 targetBottom: nil
             )

+ 2 - 0
FreeAPS/Sources/Models/CarbsEntry.swift

@@ -6,6 +6,7 @@ struct CarbsEntry: JSON, Equatable, Hashable {
     let carbs: Decimal
     let fat: Decimal?
     let protein: Decimal?
+    let note: String?
     let enteredBy: String?
     let isFPU: Bool?
     let fpuID: String?
@@ -29,6 +30,7 @@ extension CarbsEntry {
         case carbs
         case fat
         case protein
+        case note
         case enteredBy
         case isFPU
         case fpuID

+ 2 - 0
FreeAPS/Sources/Models/NightscoutTreatment.swift

@@ -15,6 +15,7 @@ struct NigtscoutTreatment: JSON, Hashable, Equatable {
     var carbs: Decimal?
     var fat: Decimal?
     var protein: Decimal?
+    var foodType: String?
     let targetTop: Decimal?
     let targetBottom: Decimal?
 
@@ -47,6 +48,7 @@ extension NigtscoutTreatment {
         case carbs
         case fat
         case protein
+        case foodType
         case targetTop
         case targetBottom
     }

+ 2 - 0
FreeAPS/Sources/Modules/AddCarbs/AddCarbsStateModel.swift

@@ -17,6 +17,7 @@ extension AddCarbs {
         @Published var selection: Presets?
         @Published var summation: [String] = []
         @Published var maxCarbs: Decimal = 0
+        @Published var note: String = ""
 
         let coredataContext = CoreDataStack.shared.persistentContainer.viewContext
 
@@ -40,6 +41,7 @@ extension AddCarbs {
                     carbs: carbs,
                     fat: fat,
                     protein: protein,
+                    note: note,
                     enteredBy: CarbsEntry.manual,
                     isFPU: false, fpuID: nil
                 )]

+ 9 - 4
FreeAPS/Sources/Modules/AddCarbs/View/AddCarbsRootView.swift

@@ -10,6 +10,7 @@ extension AddCarbs {
         @State var isPromtPresented = false
         @State var saved = false
         @State private var showAlert = false
+        @State var displayNote = false
 
         @FetchRequest(
             entity: Presets.entity(),
@@ -54,6 +55,10 @@ extension AddCarbs {
                         proteinAndFat()
                     }
                     HStack {
+                        Text("Note").foregroundColor(.secondary)
+                        TextField("", text: $state.note)
+                    }
+                    HStack {
                         Button {
                             state.useFPUconversion.toggle()
                         }
@@ -107,12 +112,12 @@ extension AddCarbs {
                     DatePicker("Date", selection: $state.date)
                 }
 
-                Section(footer: Text(state.waitersNotepad().description)) {
+                Section {
                     Button { state.add() }
                     label: { Text("Save and continue").font(.title3) }
                         .disabled(state.carbs <= 0 && state.fat <= 0 && state.protein <= 0)
                         .frame(maxWidth: .infinity, alignment: .center)
-                }
+                } footer: { Text(state.waitersNotepad().description) }
 
                 if !state.useFPUconversion {
                     Section {
@@ -126,7 +131,7 @@ extension AddCarbs {
 
         var presetPopover: some View {
             Form {
-                Section(header: Text("Enter Meal Preset Name")) {
+                Section {
                     TextField("Name Of Dish", text: $dish)
                     Button {
                         saved = true
@@ -148,7 +153,7 @@ extension AddCarbs {
                         saved = false
                         isPromtPresented = false }
                     label: { Text("Cancel") }
-                }
+                } header: { Text("Enter Meal Preset Name") }
             }
         }
 

+ 4 - 1
FreeAPS/Sources/Modules/DataTable/DataTableDataFlow.swift

@@ -65,6 +65,7 @@ enum DataTable {
         let duration: Decimal?
         let isFPU: Bool?
         let fpuID: String?
+        let note: String?
 
         private var numberFormater: NumberFormatter {
             let formatter = NumberFormatter()
@@ -90,7 +91,8 @@ enum DataTable {
             id: String? = nil,
             idPumpEvent: String? = nil,
             isFPU: Bool? = false,
-            fpuID: String? = nil
+            fpuID: String? = nil,
+            note: String? = nil
         ) {
             self.units = units
             self.type = type
@@ -102,6 +104,7 @@ enum DataTable {
             self.idPumpEvent = idPumpEvent
             self.isFPU = isFPU
             self.fpuID = fpuID
+            self.note = note
         }
 
         static func == (lhs: Treatment, rhs: Treatment) -> Bool {

+ 5 - 3
FreeAPS/Sources/Modules/DataTable/DataTableStateModel.swift

@@ -40,10 +40,11 @@ extension DataTable {
                                 type: .carbs,
                                 date: $0.createdAt,
                                 amount: $0.carbs,
-                                id: id
+                                id: id,
+                                note: $0.note
                             )
                         } else {
-                            return Treatment(units: units, type: .carbs, date: $0.createdAt, amount: $0.carbs)
+                            return Treatment(units: units, type: .carbs, date: $0.createdAt, amount: $0.carbs, note: $0.note)
                         }
                     }
 
@@ -57,7 +58,8 @@ extension DataTable {
                             amount: $0.carbs,
                             id: $0.id,
                             isFPU: $0.isFPU,
-                            fpuID: $0.fpuID
+                            fpuID: $0.fpuID,
+                            note: $0.note
                         )
                     }
 

+ 4 - 0
FreeAPS/Sources/Modules/DataTable/View/DataTableRootView.swift

@@ -120,6 +120,10 @@ extension DataTable {
                 }
 
                 if item.type == .carbs {
+                    if item.note != "" {
+                        Spacer()
+                        Text(item.note ?? "").foregroundColor(.brown)
+                    }
                     Spacer()
                     Image(systemName: "xmark.circle").foregroundColor(.secondary)
                         .contentShape(Rectangle())

+ 1 - 1
FreeAPS/Sources/Services/WatchManager/WatchManager.swift

@@ -276,7 +276,7 @@ extension BaseWatchManager: WCSessionDelegate {
                     createdAt: Date(),
                     carbs: Decimal(carbs),
                     fat: Decimal(fat),
-                    protein: Decimal(protein),
+                    protein: Decimal(protein), note: nil,
                     enteredBy: CarbsEntry.manual,
                     isFPU: false, fpuID: nil
                 )]