Skip to content

Commit

Permalink
Make admin graphs cumulative
Browse files Browse the repository at this point in the history
  • Loading branch information
rafalp committed Sep 25, 2019
1 parent 3976858 commit 249a07f
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 15 deletions.
33 changes: 21 additions & 12 deletions misago/admin/src/analytics.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,27 +26,29 @@ const getAnalytics = gql`
query getAnalytics($span: Int!) {
analytics(span: $span) {
users {
current
previous
...data
}
threads {
current
previous
...data
}
posts {
current
previous
...data
}
attachments {
current
previous
...data
}
dataDownloads {
current
previous
...data
}
}
}
fragment data on AnalyticsData {
current
currentCumulative
previous
previousCumulative
}
`

class Analytics extends React.Component {
Expand Down Expand Up @@ -152,6 +154,7 @@ const Error = ({ message }) => (

const CURRENT = "C"
const PREVIOUS = "P"
const CURRENT_SERIES = 0

const AnalyticsItem = ({ data, legend, name, span }) => {
const options = {
Expand Down Expand Up @@ -188,6 +191,12 @@ const AnalyticsItem = ({ data, legend, name, span }) => {
now.subtract(span - dataPointIndex - 1, "days")
return now.format("ll")
}
},
formatter: function(value, { dataPointIndex, seriesIndex }) {
if (seriesIndex === CURRENT_SERIES) {
return data.current[dataPointIndex]
}
return data.previous[dataPointIndex]
}
}
},
Expand All @@ -214,8 +223,8 @@ const AnalyticsItem = ({ data, legend, name, span }) => {
}

const series = [
{ name: CURRENT, data: data.current },
{ name: PREVIOUS, data: data.previous }
{ name: CURRENT, data: data.currentCumulative },
{ name: PREVIOUS, data: data.previousCumulative }
]

return (
Expand Down
19 changes: 17 additions & 2 deletions misago/graphql/admin/analytics.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,22 @@ def get_data_for_model(self, model, date_attr):
data[date] += 1

values = list(data.values())
current = list(reversed(values[: self.span]))
previous = list(reversed(values[self.span :]))

return {
"current": list(reversed(values[: self.span])),
"previous": list(reversed(values[self.span :])),
"current": current,
"currentCumulative": cumulate_data(current),
"previous": previous,
"previousCumulative": cumulate_data(previous)
}


def cumulate_data(data_series):
data = []
for v in data_series:
if not data:
data.append(v)
else:
data.append(data[-1] + v)
return data
2 changes: 2 additions & 0 deletions misago/graphql/admin/schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ type Analytics {

type AnalyticsData {
current: [Int!]!
currentCumulative: [Int!]!
previous: [Int!]!
previousCumulative: [Int!]!
}

type Version {
Expand Down
2 changes: 1 addition & 1 deletion misago/static/misago/admin/index.js

Large diffs are not rendered by default.

0 comments on commit 249a07f

Please sign in to comment.