summaryrefslogtreecommitdiffstats
path: root/src/actions/index/bucketable.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/actions/index/bucketable.rs')
-rw-r--r--src/actions/index/bucketable.rs15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/actions/index/bucketable.rs b/src/actions/index/bucketable.rs
index 299d055..27ab9a6 100644
--- a/src/actions/index/bucketable.rs
+++ b/src/actions/index/bucketable.rs
@@ -2,7 +2,8 @@ use chrono::{Local, Date, Datelike, Duration};
use std::collections::HashMap;
use std::{hash, cmp};
-use crate::icalwrap::{IcalVEvent, IcalVCalendar};
+use crate::icalwrap::IcalVCalendar;
+//use crate::icalwrap::IcalVEvent;
use crate::utils::misc;
use crate::khline::KhLine;
use crate::khevent::KhEvent;
@@ -22,18 +23,19 @@ pub trait Bucketable {
}
}
-impl Bucketable for IcalVEvent {
+impl Bucketable for KhEvent {
fn get_buckets(&self) -> Result<HashMap<String, Vec<String>>, String> {
let mut result: HashMap<String, Vec<String>> = HashMap::new();
let start_date: Date<Local> = self.get_start().ok_or_else(|| format!("Invalid DTSTART in {}", self.get_uid()))?.into();
- let mut end_date: Date<Local> = self.get_end().map(|date| date.into()).unwrap_or(start_date);
+ //let mut end_date: Date<Local> = self.get_end().map(|date| date.into()).unwrap_or(start_date);
+ let mut end_date = self.get_last_relevant_date().map(|date| date.into()).unwrap_or(start_date);
// end-dtimes are non-inclusive
// so in case of date-only events, the last day of the event is dtend-1
- if self.is_allday() {
- end_date = end_date.pred();
- }
+ //if self.is_allday() {
+ //end_date = end_date.pred();
+ //}
let buckets = Self::buckets_for_interval(start_date, end_date);
let khline = KhLine::from(self);
@@ -62,6 +64,7 @@ impl Bucketable for IcalVCalendar {
fn get_buckets(&self) -> Result<HashMap<String, Vec<String>>, String> {
let mut result: HashMap<String, Vec<String>> = HashMap::new();
for event in self.events_iter() {
+ let event = KhEvent::from_event(event);
let recur_buckets = event.get_buckets()?;
result.merge(recur_buckets);
}