closed #16
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user