This commit is contained in:
Trey t
2022-01-15 12:15:26 -06:00
parent b7bb06ddad
commit ef4cc2f159
2 changed files with 16 additions and 12 deletions

View File

@@ -74,12 +74,22 @@ struct PersistenceController {
return last ?? nil
}
public func getData(startDate: Date, endDate: Date) -> [MoodEntry] {
let predicate = NSPredicate(format: "%K >= %@ && %K <= %@",
public func getData(startDate: Date, endDate: Date, includedDays: [Int]) -> [MoodEntry] {
var includedDays16 = [Int16]()
if includedDays.isEmpty {
includedDays16 = [Int16(1), Int16(2), Int16(3), Int16(4), Int16(5), Int16(6), Int16(7)]
} else {
includedDays16 = includedDays.map({
Int16($0)
})
}
let predicate = NSPredicate(format: "%K >= %@ && %K <= %@ && weekDay IN %@",
"forDate",
startDate as NSDate,
"forDate",
endDate as NSDate)
endDate as NSDate,
includedDays16)
let fetchRequest = NSFetchRequest<MoodEntry>(entityName: "MoodEntry")
fetchRequest.predicate = predicate

View File

@@ -59,7 +59,7 @@ struct FilterView: View {
]
private func filterEntries(startDate: Date, endDate: Date) {
let filteredEntries = PersistenceController.shared.getData(startDate: startDate, endDate: endDate)
let filteredEntries = PersistenceController.shared.getData(startDate: startDate, endDate: endDate, includedDays: selectedDays)
self.dataHolder.data.removeAll()
let filledOutData = buildGridData(withData: filteredEntries)
self.dataHolder.data = filledOutData
@@ -124,13 +124,7 @@ struct FilterView: View {
if let item = monthEntries.filter({ entry in
let components = calendar.dateComponents([.day, .weekday], from: entry.forDate!)
let date = components.day
let weekday = components.weekday!
if selectedDays.isEmpty {
return day == date
} else {
return day == date && selectedDays.contains(weekday)
}
return day == date
}).first {
let view = DayChartView(color: item.mood.color,
weekDay: Int(item.weekDay),
@@ -181,7 +175,7 @@ struct FilterView: View {
gridView
.onAppear(perform: {
let monthEntries = PersistenceController.shared.getData(startDate: Date(timeIntervalSince1970: 0), endDate: Date())
let monthEntries = PersistenceController.shared.getData(startDate: Date(timeIntervalSince1970: 0), endDate: Date(), includedDays: selectedDays)
entryStartDate = monthEntries.first!.forDate!
entryEndDate = monthEntries.last!.forDate!
self.dataHolder.data = buildGridData(withData: monthEntries)