Fix(Categorie): filter table on categories
This commit is contained in:
@@ -3,7 +3,7 @@ import Vue from 'vue'
|
||||
import path from 'path'
|
||||
import Papa from 'papaparse'
|
||||
import moment from 'moment'
|
||||
import { appendTag, formatDate, tagFilter } from '../../libs/data_processing'
|
||||
import { appendKeywordField, formatDate, keywordFilter } from '../../libs/data_processing'
|
||||
|
||||
export default {
|
||||
namespaced: true,
|
||||
@@ -69,11 +69,33 @@ export default {
|
||||
rows = getters.spending_rows
|
||||
}
|
||||
if (tags.length > 0) {
|
||||
return tagFilter(rows, tags, invert)
|
||||
return keywordFilter(rows, 'tags', tags, invert)
|
||||
} else {
|
||||
if (invert) {
|
||||
return rows.filter(r => {
|
||||
return r.tags.map(t => t.name.toLowerCase()).toString() === ['cb'].toString()
|
||||
return r.tags.length === 0
|
||||
})
|
||||
} else {
|
||||
return rows
|
||||
}
|
||||
}
|
||||
},
|
||||
categorie_filter_rows: (state, getters) => (categories, invert, dateFilter = true) => {
|
||||
// return rows filtered by categories
|
||||
// by default it filters rows by date
|
||||
// to disable date filtering set date_filter to false
|
||||
var rows
|
||||
if (dateFilter) {
|
||||
rows = getters.date_filter_rows
|
||||
} else {
|
||||
rows = getters.spending_rows
|
||||
}
|
||||
if (categories.length > 0) {
|
||||
return keywordFilter(rows, 'categorie', categories, invert)
|
||||
} else {
|
||||
if (invert) {
|
||||
return rows.filter(r => {
|
||||
return r.categories.length === 0
|
||||
})
|
||||
} else {
|
||||
return rows
|
||||
@@ -103,7 +125,6 @@ export default {
|
||||
// Set of month
|
||||
return [...new Set(getters.rows.map(x => moment(x.Date).format('MMMM YYYY')))]
|
||||
}
|
||||
|
||||
},
|
||||
mutations: {
|
||||
CLEAR_DATA: (state) => {
|
||||
@@ -158,9 +179,11 @@ export default {
|
||||
},
|
||||
clean_store_data (context, { filename, parsed }) {
|
||||
var tags = Object.values(context.rootGetters['config/tags'])
|
||||
var categories = Object.values(context.rootGetters['config/categories'])
|
||||
parsed.data = parsed.data.filter(x => x.Libellé !== undefined)
|
||||
parsed.data.forEach(row => {
|
||||
appendTag(row, tags, 'Libellé')
|
||||
appendKeywordField(row, 'tags', tags, 'Libellé')
|
||||
appendKeywordField(row, 'categorie', categories, 'Libellé')
|
||||
formatDate(row, 'Date')
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user