Filter statistics

This commit is contained in:
pietervdvn 2022-09-14 19:15:50 +02:00
parent 640ff8e382
commit 992ba62ada
3 changed files with 20 additions and 5 deletions

View file

@ -1 +0,0 @@
{"features":[]}

View file

@ -106,6 +106,9 @@ class StatisticsForOverviewFile extends Combine {
console.log("All keys:", allKeys) console.log("All keys:", allKeys)
const valuesToSum = [ const valuesToSum = [
"create",
"modify",
"delete",
"answer", "answer",
"move", "move",
"deletion", "deletion",
@ -117,11 +120,18 @@ class StatisticsForOverviewFile extends Combine {
"soft-delete"] "soft-delete"]
const excludedThemes = new Set<string>()
excludedThemes.add("grb")
excludedThemes.add("etymology")
const summedValues = valuesToSum
.map(key => [key, overview.sum(key, excludedThemes)])
.filter(kv => kv[1] != 0)
.map(kv => kv.join(": "))
const elements: BaseUIElement[] = [ const elements: BaseUIElement[] = [
new Title("General statistics"), new Title("General statistics (excluding etymology- and GRB-theme changes)"),
new Combine([ new Combine([
overview._meta.length + " changesets match the filters", overview._meta.length + " changesets match the filters",
new List(valuesToSum.map(key => key + ": " + overview.sum(key))) new List(summedValues)
]).SetClass("flex flex-col border rounded-xl"), ]).SetClass("flex flex-col border rounded-xl"),
new Title("Breakdown") new Title("Breakdown")
@ -228,10 +238,13 @@ class ChangesetsOverview {
return new ChangesetsOverview(this._meta.filter(predicate)) return new ChangesetsOverview(this._meta.filter(predicate))
} }
public sum(key: string): number { public sum(key: string, excludeThemes: Set<string>): number {
let s = 0 let s = 0
for (const feature of this._meta) { for (const feature of this._meta) {
const parsed = Number(feature[key]) if(excludeThemes.has(feature.properties.theme)){
continue
}
const parsed = Number(feature.properties[key])
if (!isNaN(parsed)) { if (!isNaN(parsed)) {
s += parsed s += parsed
} }

View file

@ -0,0 +1,3 @@
import StatisticsGUI from "./UI/StatisticsGUI";
new StatisticsGUI().AttachTo("maindiv")