diff options
| author | Benedict Börger <benedict@0xb8000.de> | 2019-06-28 22:00:33 +0200 |
|---|---|---|
| committer | Benedict Börger <benedict@0xb8000.de> | 2019-06-28 22:00:33 +0200 |
| commit | 236a2609eb153ae428b35c9a31eaedf197a5b036 (patch) | |
| tree | ae70d754d402184c664b0739f3f83c6b969376a9 /src/web_frontend/transactions.rs | |
| parent | 5d33ed945c5be832d6a6e08eda4e35dde00ac362 (diff) | |
[web_frontemd] move date filtering to util
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) } |
