summaryrefslogtreecommitdiff
path: root/src/web_frontend/chart.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/web_frontend/chart.rs')
-rw-r--r--src/web_frontend/chart.rs13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/web_frontend/chart.rs b/src/web_frontend/chart.rs
index ed593dd..43ec3eb 100644
--- a/src/web_frontend/chart.rs
+++ b/src/web_frontend/chart.rs
@@ -23,8 +23,9 @@ struct ChartContext {
}
-#[get("/chart?<start>&<end>")]
-pub fn chart_handler(start : Option<&RawStr>, end : Option<&RawStr>) -> rocket_contrib::templates::Template {
+#[get("/chart/<account>?<start>&<end>")]
+pub fn chart_handler(account : &RawStr, start : Option<&RawStr>, end : Option<&RawStr>) -> rocket_contrib::templates::Template {
+ let account_name = account.to_string();
let date_start = match start {
Some(s) => { let mut tmp = s.to_string();
tmp.push_str("-01");
@@ -40,7 +41,7 @@ pub fn chart_handler(start : Option<&RawStr>, end : Option<&RawStr>) -> rocket_c
let date_range = crate::web_frontend::util::DateRange::new(date_start, date_end);
let asset_ini = "data/asset.ini";
let asset = crate::banking::asset::Asset::from_ini_file(asset_ini);
- let account = asset.get_account_by_name("Girokonto");
+ let account = asset.get_account_by_name(&account_name);
let acc;
match account {
Some(trans) => acc = trans,
@@ -55,12 +56,12 @@ pub fn chart_handler(start : Option<&RawStr>, end : Option<&RawStr>) -> rocket_c
}
let mut groups = HashMap::new();
- let t = acc.transactions;
+ let t = acc.transactions;
// filter transaction to match only the specified timeframe
println!("unfiltered number: {}", t.len());
let mut t_filtered = Vec::new();
for date in date_range {
- let mut tmp : Vec<_> = t.iter().filter(|x| x.date.month() == date.month()).collect();
+ let mut tmp : Vec<_> = t.iter().filter(|x| x.date.month() == date.month() && x.date.year() == date.year()).collect();
t_filtered.append(& mut tmp);
}
@@ -88,7 +89,7 @@ pub fn chart_handler(start : Option<&RawStr>, end : Option<&RawStr>) -> rocket_c
total_chart = total_chart + complete;
// ALSO INSERT OTHER, AKA THE REST
}
- let context = ChartContext { account_name : String::from("Girokonto"),
+ let context = ChartContext { account_name : account_name,
groups : groups, total_sum : total_sum, total_chart : total_chart,
date_start : date_start.to_string()[0..7].to_string(),
date_end : date_end.to_string()[0..7].to_string() };