Remove water_usage_morning and improve pagination handling.
Removed all references to the water_usage_morning field to simplify data structures and form inputs. Introduced flexible autoload behavior in pagination and improved list filtering by excluding weekends and limiting displayed data to the most recent five days.
This commit is contained in:
@@ -77,12 +77,14 @@ export const setMeta = (currentPage, itemsPerPage, totalItems) => {
|
||||
setLastUpdated();
|
||||
};
|
||||
|
||||
export const setMetaItemsPerPage = (newItemsPerPage) => {
|
||||
export const setMetaItemsPerPage = (newItemsPerPage, autoload = true) => {
|
||||
metaItemsPerPage.value = newItemsPerPage;
|
||||
// Reset the page to 1
|
||||
setPage(1);
|
||||
// Load the list
|
||||
loadList();
|
||||
if (autoload) {
|
||||
loadList();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -337,6 +337,20 @@ export const SessionUser = {
|
||||
toLocalTimeHours: (date) => {
|
||||
return new Date(date).toLocaleTimeString('da-DK', {hour: '2-digit', minute: '2-digit'});
|
||||
},
|
||||
getDateWeekdayNumber: (date) => {
|
||||
const created_at_val = new Date(date);
|
||||
const weekday = created_at_val.getDay();
|
||||
return weekday === 0 ? 7 : weekday;
|
||||
},
|
||||
weekdayNumbers: {
|
||||
monday: 1,
|
||||
tuesday: 2,
|
||||
wednesday: 3,
|
||||
thursday: 4,
|
||||
friday: 5,
|
||||
saturday: 6,
|
||||
sunday: 7,
|
||||
}
|
||||
},
|
||||
/** Redirect to */
|
||||
redirectTo: {
|
||||
|
||||
@@ -43,15 +43,7 @@ import {ref} from "vue";
|
||||
}
|
||||
},
|
||||
water_usage: {
|
||||
label: "Vandforbrug (m3)",
|
||||
type: "number",
|
||||
sortable: true,
|
||||
creation: {
|
||||
required: true
|
||||
},
|
||||
},
|
||||
water_usage_morning: {
|
||||
label: "Vandforbrug, morgen (m3)",
|
||||
label: "Vandtal (m3)",
|
||||
type: "number",
|
||||
sortable: true,
|
||||
creation: {
|
||||
|
||||
+26
-9
@@ -2,7 +2,7 @@
|
||||
import {ref, watch} from 'vue';
|
||||
import { selected_department_id, onChangeCall } from "@/views/dashboards/departmentDashboard/modules/daily-report/DepartmentDailyReportObject.vue";
|
||||
import { SessionUser } from "@/components/session/token/SessionUser.vue";
|
||||
import { list, setEndpoint, loadList, setFilter, setMetaItemsPerPage } from "@/components/pagination/paginatedList.vue";
|
||||
import { list, setEndpoint, loadList, setFilter, setMetaItemsPerPage, orderBy, setOrder } from "@/components/pagination/paginatedList.vue";
|
||||
import { Colors as TemplateColors } from "@/ThemeConfig.vue";
|
||||
import {
|
||||
Chart as ChartJS,
|
||||
@@ -43,11 +43,6 @@ const parseData = () => {
|
||||
const tmpParsedList = {
|
||||
labels: [],
|
||||
datasets: [
|
||||
{
|
||||
label: SessionUser.objects.department_daily_reports.columns.water_usage_morning.label,
|
||||
backgroundColor: TemplateColors.global.primaryColor,
|
||||
data: []
|
||||
},
|
||||
{
|
||||
label: SessionUser.objects.department_daily_reports.columns.water_usage.label,
|
||||
backgroundColor: TemplateColors.global.secondaryColor,
|
||||
@@ -58,18 +53,40 @@ const parseData = () => {
|
||||
// Sort the list by created_at date
|
||||
list.value.sort((a, b) => new Date(a.created_at) - new Date(b.created_at));
|
||||
for (let i = 0; i < list.value.length; i++) {
|
||||
// console log the day name
|
||||
let dateWeekdayNumber = SessionUser.functions.date.getDateWeekdayNumber(list.value[i].created_at);
|
||||
// Filter out saturday and sunday
|
||||
let exclude = [
|
||||
// Saturday
|
||||
SessionUser.functions.date.weekdayNumbers.saturday,
|
||||
// Sunday
|
||||
SessionUser.functions.date.weekdayNumbers.sunday
|
||||
];
|
||||
if (exclude.includes(dateWeekdayNumber)) {
|
||||
//console.log('Excluding date', list.value[i].created_at);
|
||||
continue;
|
||||
}
|
||||
// If there's more than 5 days, remove the first one
|
||||
if (tmpParsedList.labels.length > 5) {
|
||||
tmpParsedList.labels.shift();
|
||||
tmpParsedList.datasets[0].data.shift();
|
||||
}
|
||||
tmpParsedList.labels.push(SessionUser.functions.date.toWords(list.value[i].created_at));
|
||||
// Add the water_usage_morning
|
||||
tmpParsedList.datasets[0].data.push(list.value[i].water_usage_morning);
|
||||
tmpParsedList.datasets[1].data.push(list.value[i].water_usage);
|
||||
tmpParsedList.datasets[0].data.push(list.value[i].water_usage);
|
||||
|
||||
}
|
||||
parsedList.value = tmpParsedList;
|
||||
};
|
||||
|
||||
const getReports = async () => {
|
||||
if (!selected_department_id.value) {
|
||||
return;
|
||||
}
|
||||
setEndpoint('/departments/daily-reports', false);
|
||||
setMetaItemsPerPage(7);
|
||||
setMetaItemsPerPage(9,false);
|
||||
// Set the order to date
|
||||
setOrder('created_at', 'desc');
|
||||
setFilter('department_id', parseInt(selected_department_id.value), true);
|
||||
};
|
||||
|
||||
|
||||
+3
-20
@@ -83,7 +83,6 @@ const getYesterdaysReport = async () => {
|
||||
yesterday.value.date
|
||||
)
|
||||
.then(response => {
|
||||
yesterday.value.water_usage_morning = parseInt(response.data.data.water_usage_morning);
|
||||
yesterday.value.water_usage = parseInt(response.data.data.water_usage);
|
||||
yesterday.value.notes = response.data.data.notes ? response.data.data.notes : '';
|
||||
yesterday.value.filled_by = response.data.data.filled_by ? response.data.data.filled_by : null;
|
||||
@@ -108,7 +107,6 @@ const getDailyReport = async () => {
|
||||
if (created_at_val.toDateString() === (selected_date.value ? new Date(selected_date.value) : today).toDateString()) {
|
||||
// The daily report is today
|
||||
// So we can set the values
|
||||
water_usage_morning.value = parseInt(response.data.data.water_usage_morning);
|
||||
water_usage.value = parseInt(response.data.data.water_usage);
|
||||
notes.value = response.data.data.notes ? response.data.data.notes : '';
|
||||
filled_by.value = response.data.data.filled_by ? response.data.data.filled_by : null;
|
||||
@@ -141,14 +139,12 @@ const getDailyReport = async () => {
|
||||
|
||||
const resetData = () => {
|
||||
water_usage.value = 0;
|
||||
water_usage_morning.value = 0;
|
||||
notes.value = null;
|
||||
filled_by.value = null;
|
||||
created_at.value = null;
|
||||
id.value = null;
|
||||
message.value = null;
|
||||
// Yesterday
|
||||
yesterday.value.water_usage_morning = 0;
|
||||
yesterday.value.water_usage = 0;
|
||||
yesterday.value.notes = null;
|
||||
yesterday.value.filled_by = null;
|
||||
@@ -180,28 +176,15 @@ onChangeCall(() => {
|
||||
<h4 class="subtitle is-5">{{ SessionUser.functions.date.toWords(selected_date) }}</h4>
|
||||
<ShowErrorField :error="uniqueId" />
|
||||
</div>
|
||||
<div class="column is-6">
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label class="label">Vandforbrug morgen (m3)</label>
|
||||
<div class="control">
|
||||
<input
|
||||
class="input"
|
||||
type="number"
|
||||
v-model="water_usage_morning"
|
||||
v-bind:placeholder="yesterday.water_usage ? yesterday.water_usage + ' ( I går )' : '0'"
|
||||
required
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column is-6">
|
||||
<div class="field">
|
||||
<label class="label">Vandforbrug (m3)</label>
|
||||
<label class="label">{{SessionUser.objects.department_daily_reports.columns.water_usage.label}}</label>
|
||||
<div class="control">
|
||||
<input
|
||||
class="input"
|
||||
type="number"
|
||||
v-model="water_usage"
|
||||
v-bind:placeholder="yesterday.water_usage ? yesterday.water_usage + ' ( I går )' : '0'"
|
||||
required
|
||||
>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user