diff options
Diffstat (limited to 'src/web_frontend/transactions.rs')
| -rw-r--r-- | src/web_frontend/transactions.rs | 37 |
1 files changed, 16 insertions, 21 deletions
diff --git a/src/web_frontend/transactions.rs b/src/web_frontend/transactions.rs index 6e5ae8c..b3aa8cf 100644 --- a/src/web_frontend/transactions.rs +++ b/src/web_frontend/transactions.rs @@ -49,32 +49,27 @@ pub fn transaction_handler(account : &RawStr, start : Option<&RawStr>, end : Opt None => String::from("") }; let tf_c = transaction_filter.clone(); - let test = Uri::percent_decode_lossy(tf_c.as_bytes()); - let transaction_filter = test.to_string(); + let filter_html_decoded = Uri::percent_decode_lossy(tf_c.as_bytes()); + let transaction_filter = filter_html_decoded.to_string(); let asset_ini = "data/asset.ini"; let asset : Asset = crate::banking::asset::Asset::from_ini_file(asset_ini); - let transactions = asset.get_account_by_name(&account_name); - let acc; - match transactions { + let transactions = asset.get_account_by_name(&account_name); + let acc; + match transactions { Some(trans) => acc = trans, None => panic!("could not read file") - } - let t = acc.transactions; - // apply parameters - // apply date filters - let date_range = crate::web_frontend::util::DateRange::new(date_start, date_end); - let mut t_filtered = Vec::new(); - for date in date_range { - let tc = t.clone(); - let mut tmp : Vec<_> = tc.into_iter().filter(|x| x.date.month() == date.month() && x.date.year() == date.year()).collect(); - t_filtered.append(&mut tmp); } + let t = acc.transactions; + // apply parameters - // apply filter - let ft = crate::web_frontend::util::apply_transaction_filter(transaction_filter.clone(), t_filtered); + // apply date filters + let t_filtered = crate::web_frontend::util::apply_date_filter(t.clone(), date_start, date_end); + // apply filter + let ft = crate::web_frontend::util::apply_transaction_filter(transaction_filter.clone(), t_filtered); - let context = TransactionContext { transactions: ft, account_name : account_name, - filter : transaction_filter, date_start : date_start.to_string()[0..7].to_string(), - date_end : date_end.to_string()[0..7].to_string()}; - Template::render("transaction", context) + let context = TransactionContext { transactions: ft, account_name : account_name, + filter : transaction_filter, date_start : date_start.to_string()[0..7].to_string(), + date_end : date_end.to_string()[0..7].to_string()}; + + Template::render("transaction", context) } |
