From dec1ab53a54d0cf2f5b62566f036e123dd5cfcb2 Mon Sep 17 00:00:00 2001 From: rix1337 <> Date: Sat, 5 Aug 2023 11:32:57 +0200 Subject: [PATCH] Mark Budgets as booked on monthly basis --- .github/Changelog.md | 2 +- .../vuejs_frontend/src/components/Budgets.vue | 27 ++++++++++--------- .../vuejs_frontend/src/components/Head.vue | 7 +++-- .../web_interface/vuejs_frontend/src/main.js | 4 +++ budgeteer/web_interface/web_server.py | 7 ----- 5 files changed, 23 insertions(+), 24 deletions(-) diff --git a/.github/Changelog.md b/.github/Changelog.md index 9b408b3..30e57a3 100644 --- a/.github/Changelog.md +++ b/.github/Changelog.md @@ -9,8 +9,8 @@ #### v.0.1.2 - Fehlerbehebung bei Aktivierung von Basic Auth - Die Gültigkeit von künftigen Budgets wird bei deren Berechnung beachtet +- Budgets können monatlich als gebucht markiert werden - ToDo - - Mark budgets booked per month (NOT GLOBALLY) - Add Yearly budget type (select month only for validity) - Add Weekly budget type - calculate weeks of month automatically diff --git a/budgeteer/web_interface/vuejs_frontend/src/components/Budgets.vue b/budgeteer/web_interface/vuejs_frontend/src/components/Budgets.vue index 2454cee..58cc4d6 100644 --- a/budgeteer/web_interface/vuejs_frontend/src/components/Budgets.vue +++ b/budgeteer/web_interface/vuejs_frontend/src/components/Budgets.vue @@ -27,23 +27,22 @@ function calculateCategoryTotal(i) { } function displayMonthIsCurrentMonth() { - let check_display_month = new Date(display_month.value) + let check_display_month = new Date(store.state.display_month) let check_current_month = new Date() return check_display_month.getMonth() === check_current_month.getMonth() && check_display_month.getFullYear() === check_current_month.getFullYear() } -const display_month = ref(new Date().toISOString().slice(0, 7)) const display_month_index = ref(0) function updateDisplayMonth(index) { display_month_index.value += index let indexed_date = new Date().setMonth(new Date().getMonth() + display_month_index.value) - display_month.value = new Date(indexed_date).toISOString().slice(0, 7) + store.commit('setDisplayMonth', new Date(indexed_date).toISOString().slice(0, 7)) } function calculateEntry(entry) { if (displayMonthIsCurrentMonth()) { - return !entry.booked && checkEntryInDisplayMonth(entry) + return !checkEntryBookedThisMonth(entry) && checkEntryInDisplayMonth(entry) } else { return checkEntryInDisplayMonth(entry) } @@ -51,14 +50,14 @@ function calculateEntry(entry) { function showEntry(entry) { if (store.state.locked && displayMonthIsCurrentMonth()) { - return !entry.booked && checkEntryInDisplayMonth(entry) + return !checkEntryBookedThisMonth(entry) && checkEntryInDisplayMonth(entry) } else { return entry } } function checkEntryInDisplayMonth(entry) { - let current_month = new Date(display_month.value) + let current_month = new Date(store.state.display_month) let valid_from = new Date("1970-01-01") let valid_to = new Date("2100-01-01") @@ -71,6 +70,10 @@ function checkEntryInDisplayMonth(entry) { return current_month >= valid_from && current_month <= valid_to } + +function checkEntryBookedThisMonth(entry) { + return entry.booked === store.state.display_month +}