Skip to content

Commit 591e538

Browse files
committed
add meta.comparison_partial_time_labels
1 parent 37411cf commit 591e538

2 files changed

Lines changed: 40 additions & 0 deletions

File tree

lib/plausible/stats/query_result.ex

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ defmodule Plausible.Stats.QueryResult do
6565
|> add_comparison_time_label_result_indices_meta(runner)
6666
|> add_present_index_meta(runner.main_query)
6767
|> add_partial_time_labels_meta(runner.main_query)
68+
|> add_comparison_partial_time_labels_meta(runner)
6869
|> add_total_rows_meta(runner.main_query, runner.total_rows)
6970
|> Enum.sort_by(&elem(&1, 0))
7071
end
@@ -180,6 +181,20 @@ defmodule Plausible.Stats.QueryResult do
180181
end
181182
end
182183

184+
defp add_comparison_partial_time_labels_meta(meta, %QueryRunner{main_query: query} = runner) do
185+
comparison_time_labels = meta[:comparison_time_labels]
186+
187+
if query.include.partial_time_labels and is_list(comparison_time_labels) do
188+
Map.put(
189+
meta,
190+
:comparison_partial_time_labels,
191+
Plausible.Stats.Time.partial_time_labels(comparison_time_labels, runner.comparison_query)
192+
)
193+
else
194+
meta
195+
end
196+
end
197+
183198
defp add_total_rows_meta(meta, query, total_rows) do
184199
if query.include.total_rows do
185200
Map.put(meta, :total_rows, total_rows)

test/plausible_web/controllers/api/stats_controller/main_graph_test.exs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1533,6 +1533,31 @@ defmodule PlausibleWeb.Api.StatsController.MainGraphTest do
15331533
assert response["meta"]["partial_time_labels"] == []
15341534
end
15351535

1536+
test "returns comparison_partial_time_labels", %{
1537+
conn: conn,
1538+
site: site
1539+
} do
1540+
response =
1541+
do_query(conn, site, %{
1542+
"date_range" => ["2026-02-08", "2026-02-25"],
1543+
"metrics" => ["visitors"],
1544+
"dimensions" => ["time:week"],
1545+
"include" => %{
1546+
"time_labels" => true,
1547+
"partial_time_labels" => true,
1548+
"compare" => ["2026-01-08", "2026-01-25"]
1549+
}
1550+
})
1551+
1552+
assert response["meta"]["comparison_time_labels"] == [
1553+
"2026-01-08",
1554+
"2026-01-12",
1555+
"2026-01-19"
1556+
]
1557+
1558+
assert response["meta"]["comparison_partial_time_labels"] == ["2026-01-08"]
1559+
end
1560+
15361561
test "returns stats for a day with a minute interval", %{conn: conn, site: site} do
15371562
populate_stats(site, [
15381563
build(:pageview, timestamp: ~N[2023-03-01 12:00:00])

0 commit comments

Comments
 (0)