summaryrefslogtreecommitdiff
path: root/src/web_frontend/transactions.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/web_frontend/transactions.rs')
-rw-r--r--src/web_frontend/transactions.rs37
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)
}