mirror of
https://gitlab.com/bramw/baserow.git
synced 2025-04-10 15:47:32 +00:00
Resolve "Fix naming collisions for fields in LocalBaserowGroupedAggregateRowsUserServiceType"
This commit is contained in:
parent
8ada997b81
commit
ca2004ebf5
5 changed files with 202 additions and 113 deletions
backend/src/baserow/contrib/database/fields
enterprise
backend
src/baserow_enterprise/integrations/local_baserow
tests/baserow_enterprise_tests
api/dashboard
integrations/local_baserow/service_types
web-frontend/modules/baserow_enterprise/dashboard/components/widget
|
@ -2264,7 +2264,11 @@ class FieldAggregationType(Instance):
|
|||
return self.raw_type().get_aggregation(field.db_column, model_field, field)
|
||||
|
||||
def _get_aggregation_dict(
|
||||
self, queryset: QuerySet, model_field: DjangoField, field: Field
|
||||
self,
|
||||
queryset: QuerySet,
|
||||
model_field: DjangoField,
|
||||
field: Field,
|
||||
include_agg_type=False,
|
||||
) -> dict:
|
||||
"""
|
||||
Returns a dictinary defining the aggregation for the queryset.aggregate
|
||||
|
@ -2278,14 +2282,15 @@ class FieldAggregationType(Instance):
|
|||
"""
|
||||
|
||||
aggregation = self._get_raw_aggregation(model_field, field.specific)
|
||||
aggregation_dict = {f"{field.db_column}_raw": aggregation}
|
||||
key = f"{field.db_column}_{self.type}" if include_agg_type else field.db_column
|
||||
aggregation_dict = {f"{key}_raw": aggregation}
|
||||
# Check if the returned aggregations contain a `AnnotatedAggregation`,
|
||||
# and if so, apply the annotations and only keep the actual aggregation in
|
||||
# the dict. This is needed because some aggregations require annotated values
|
||||
# before they work.
|
||||
if isinstance(aggregation, AnnotatedAggregation):
|
||||
queryset = queryset.annotate(**aggregation.annotations)
|
||||
aggregation_dict[field.db_column] = aggregation.aggregation
|
||||
aggregation_dict[key] = aggregation.aggregation
|
||||
|
||||
if self.with_total:
|
||||
aggregation_dict["total"] = Count("id", distinct=True)
|
||||
|
|
|
@ -474,7 +474,7 @@ class LocalBaserowGroupedAggregateRowsUserServiceType(
|
|||
)
|
||||
|
||||
combined_agg_dict |= agg_type._get_aggregation_dict(
|
||||
queryset, model_field, agg_series.field
|
||||
queryset, model_field, agg_series.field, include_agg_type=True
|
||||
)
|
||||
|
||||
for key, value in combined_agg_dict.items():
|
||||
|
@ -484,11 +484,10 @@ class LocalBaserowGroupedAggregateRowsUserServiceType(
|
|||
|
||||
def process_individual_result(result: dict):
|
||||
for agg_series in defined_agg_series:
|
||||
raw_value = result.pop(f"{agg_series.field.db_column}_raw")
|
||||
key = f"{agg_series.field.db_column}_{agg_series.aggregation_type}"
|
||||
raw_value = result.pop(f"{key}_raw")
|
||||
agg_type = grouped_aggregation_registry.get(agg_series.aggregation_type)
|
||||
result[
|
||||
f"{agg_series.field.db_column}"
|
||||
] = agg_type._compute_final_aggregation(
|
||||
result[key] = agg_type._compute_final_aggregation(
|
||||
raw_value, result.get("total", None)
|
||||
)
|
||||
if "total" in result:
|
||||
|
|
|
@ -294,25 +294,29 @@ def test_grouped_aggregate_rows_dispatch_dashboard_data_source(
|
|||
assert response.status_code == HTTP_200_OK, response_json
|
||||
assert response_json == {
|
||||
"result": [
|
||||
{
|
||||
f"field_{field.id}": 90.0,
|
||||
f"field_{field_2.id}": 9.0,
|
||||
f"field_{field_3.id}": 3.0,
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": 60.0,
|
||||
f"field_{field_2.id}": 6.0,
|
||||
f"field_{field_3.id}": 6.0,
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": 30.0,
|
||||
f"field_{field_2.id}": 3.0,
|
||||
f"field_{field_3.id}": 6.0,
|
||||
f"field_{field.id}_sum": 90.0,
|
||||
f"field_{field_2.id}_sum": 9.0,
|
||||
f"field_{field_3.id}_sum": 3.0,
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": 20.0,
|
||||
f"field_{field.id}_sum": 60.0,
|
||||
f"field_{field_2.id}_sum": 6.0,
|
||||
f"field_{field_3.id}_sum": 6.0,
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": 10.0,
|
||||
f"field_{field.id}_sum": 30.0,
|
||||
f"field_{field_2.id}_sum": 3.0,
|
||||
f"field_{field_3.id}_sum": 6.0,
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": None,
|
||||
f"field_{field_2.id}": 100.0,
|
||||
f"field_{field_3.id}": 100.0,
|
||||
f"field_{field.id}_sum": None,
|
||||
f"field_{field_2.id}_sum": 100.0,
|
||||
f"field_{field_3.id}_sum": 100.0,
|
||||
},
|
||||
],
|
||||
}
|
||||
|
|
|
@ -955,12 +955,74 @@ def test_grouped_aggregate_rows_service_dispatch(data_fixture):
|
|||
|
||||
assert result.data == {
|
||||
"result": {
|
||||
f"field_{field.id}": Decimal("20"),
|
||||
f"field_{field_2.id}": Decimal("8"),
|
||||
f"field_{field.id}_sum": Decimal("20"),
|
||||
f"field_{field_2.id}_sum": Decimal("8"),
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_grouped_aggregate_rows_service_dispatch_same_agg_fields(data_fixture):
|
||||
user = data_fixture.create_user()
|
||||
dashboard = data_fixture.create_dashboard_application(user=user)
|
||||
table = data_fixture.create_database_table(user=user)
|
||||
field = data_fixture.create_number_field(table=table)
|
||||
field_2 = data_fixture.create_number_field(table=table)
|
||||
view = data_fixture.create_grid_view(user=user, table=table)
|
||||
integration = data_fixture.create_local_baserow_integration(
|
||||
application=dashboard, user=user
|
||||
)
|
||||
service = data_fixture.create_service(
|
||||
LocalBaserowGroupedAggregateRows,
|
||||
integration=integration,
|
||||
table=table,
|
||||
view=view,
|
||||
)
|
||||
LocalBaserowTableServiceAggregationSeries.objects.create(
|
||||
service=service, field=field, aggregation_type="min", order=1
|
||||
)
|
||||
LocalBaserowTableServiceAggregationSeries.objects.create(
|
||||
service=service, field=field, aggregation_type="max", order=1
|
||||
)
|
||||
LocalBaserowTableServiceAggregationGroupBy.objects.create(
|
||||
service=service, field=field_2, order=1
|
||||
)
|
||||
|
||||
RowHandler().create_rows(
|
||||
user,
|
||||
table,
|
||||
rows_values=[
|
||||
{f"field_{field.id}": 2, f"field_{field_2.id}": 1},
|
||||
{f"field_{field.id}": 4, f"field_{field_2.id}": 1},
|
||||
{f"field_{field.id}": 6, f"field_{field_2.id}": 1},
|
||||
{f"field_{field.id}": 8, f"field_{field_2.id}": 1},
|
||||
{f"field_{field.id}": 1, f"field_{field_2.id}": 2},
|
||||
{f"field_{field.id}": 3, f"field_{field_2.id}": 2},
|
||||
{f"field_{field.id}": 9, f"field_{field_2.id}": 2},
|
||||
{f"field_{field.id}": 10, f"field_{field_2.id}": 2},
|
||||
],
|
||||
)
|
||||
|
||||
dispatch_context = FakeDispatchContext()
|
||||
|
||||
result = ServiceHandler().dispatch_service(service, dispatch_context)
|
||||
|
||||
assert result.data == {
|
||||
"result": [
|
||||
{
|
||||
f"field_{field.id}_max": Decimal("8"),
|
||||
f"field_{field.id}_min": Decimal("2"),
|
||||
f"field_{field_2.id}": Decimal("1"),
|
||||
},
|
||||
{
|
||||
f"field_{field.id}_max": Decimal("10"),
|
||||
f"field_{field.id}_min": Decimal("1"),
|
||||
f"field_{field_2.id}": Decimal("2"),
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_grouped_aggregate_rows_service_dispatch_with_view(data_fixture):
|
||||
user = data_fixture.create_user()
|
||||
|
@ -1005,8 +1067,8 @@ def test_grouped_aggregate_rows_service_dispatch_with_view(data_fixture):
|
|||
|
||||
assert result.data == {
|
||||
"result": {
|
||||
f"field_{field.id}": Decimal("6"),
|
||||
f"field_{field_2.id}": Decimal("4"),
|
||||
f"field_{field.id}_sum": Decimal("6"),
|
||||
f"field_{field_2.id}_sum": Decimal("4"),
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -1055,8 +1117,8 @@ def test_grouped_aggregate_rows_service_dispatch_with_service_filters(data_fixtu
|
|||
|
||||
assert result.data == {
|
||||
"result": {
|
||||
f"field_{field.id}": Decimal("6"),
|
||||
f"field_{field_2.id}": Decimal("4"),
|
||||
f"field_{field.id}_sum": Decimal("6"),
|
||||
f"field_{field_2.id}_sum": Decimal("4"),
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -1280,8 +1342,8 @@ def test_grouped_aggregate_rows_service_dispatch_with_total_aggregation(data_fix
|
|||
|
||||
assert result.data == {
|
||||
"result": {
|
||||
f"field_{field.id}": 75.0,
|
||||
f"field_{field_2.id}": 25.0,
|
||||
f"field_{field.id}_checked_percentage": 75.0,
|
||||
f"field_{field_2.id}_not_checked_percentage": 25.0,
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -1361,23 +1423,23 @@ def test_grouped_aggregate_rows_service_dispatch_group_by(data_fixture):
|
|||
assert result.data == {
|
||||
"result": [
|
||||
{
|
||||
f"field_{field.id}": Decimal("1"),
|
||||
f"field_{field_2.id}": Decimal("1"),
|
||||
f"field_{field.id}_sum": Decimal("1"),
|
||||
f"field_{field_2.id}_sum": Decimal("1"),
|
||||
f"field_{field_3.id}": None,
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("1"),
|
||||
f"field_{field_2.id}": Decimal("1"),
|
||||
f"field_{field.id}_sum": Decimal("1"),
|
||||
f"field_{field_2.id}_sum": Decimal("1"),
|
||||
f"field_{field_3.id}": "Third group",
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("8"),
|
||||
f"field_{field_2.id}": Decimal("6"),
|
||||
f"field_{field.id}_sum": Decimal("8"),
|
||||
f"field_{field_2.id}_sum": Decimal("6"),
|
||||
f"field_{field_3.id}": "First group",
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("22"),
|
||||
f"field_{field_2.id}": Decimal("7"),
|
||||
f"field_{field.id}_sum": Decimal("22"),
|
||||
f"field_{field_2.id}_sum": Decimal("7"),
|
||||
f"field_{field_3.id}": "Second group",
|
||||
},
|
||||
]
|
||||
|
@ -1428,22 +1490,26 @@ def test_grouped_aggregate_rows_service_dispatch_group_by_id(data_fixture):
|
|||
"result": [
|
||||
{
|
||||
f"field_{field.id}": Decimal("2"),
|
||||
f"field_{field_2.id}": Decimal("2"),
|
||||
f"field_{field.id}_sum": Decimal("2"),
|
||||
f"field_{field_2.id}_sum": Decimal("2"),
|
||||
"id": 1,
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("4"),
|
||||
f"field_{field_2.id}": Decimal("2"),
|
||||
f"field_{field.id}_sum": Decimal("4"),
|
||||
f"field_{field_2.id}_sum": Decimal("2"),
|
||||
"id": 2,
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("6"),
|
||||
f"field_{field_2.id}": Decimal("2"),
|
||||
f"field_{field.id}_sum": Decimal("6"),
|
||||
f"field_{field_2.id}_sum": Decimal("2"),
|
||||
"id": 3,
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("8"),
|
||||
f"field_{field_2.id}": Decimal("2"),
|
||||
f"field_{field.id}_sum": Decimal("8"),
|
||||
f"field_{field_2.id}_sum": Decimal("2"),
|
||||
"id": 4,
|
||||
},
|
||||
]
|
||||
|
@ -1556,25 +1622,29 @@ def test_grouped_aggregate_rows_service_dispatch_sort_by_series_with_group_by(
|
|||
|
||||
assert result.data == {
|
||||
"result": [
|
||||
{
|
||||
f"field_{field.id}": Decimal("90"),
|
||||
f"field_{field_2.id}": Decimal("9"),
|
||||
f"field_{field_3.id}": Decimal("3"),
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("60"),
|
||||
f"field_{field_2.id}": Decimal("6"),
|
||||
f"field_{field_3.id}": Decimal("6"),
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("30"),
|
||||
f"field_{field_2.id}": Decimal("3"),
|
||||
f"field_{field_3.id}": Decimal("6"),
|
||||
f"field_{field.id}_sum": Decimal("90"),
|
||||
f"field_{field_2.id}_sum": Decimal("9"),
|
||||
f"field_{field_3.id}_sum": Decimal("3"),
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("20"),
|
||||
f"field_{field.id}_sum": Decimal("60"),
|
||||
f"field_{field_2.id}_sum": Decimal("6"),
|
||||
f"field_{field_3.id}_sum": Decimal("6"),
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("10"),
|
||||
f"field_{field.id}_sum": Decimal("30"),
|
||||
f"field_{field_2.id}_sum": Decimal("3"),
|
||||
f"field_{field_3.id}_sum": Decimal("6"),
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": None,
|
||||
f"field_{field_2.id}": Decimal("100"),
|
||||
f"field_{field_3.id}": Decimal("100"),
|
||||
f"field_{field.id}_sum": None,
|
||||
f"field_{field_2.id}_sum": Decimal("100"),
|
||||
f"field_{field_3.id}_sum": Decimal("100"),
|
||||
},
|
||||
],
|
||||
}
|
||||
|
@ -1659,32 +1729,37 @@ def test_grouped_aggregate_rows_service_dispatch_sort_by_series_with_group_by_ro
|
|||
"result": [
|
||||
{
|
||||
f"field_{field.id}": None,
|
||||
f"field_{field_2.id}": Decimal("5"),
|
||||
f"field_{field_3.id}": Decimal("1"),
|
||||
f"field_{field.id}_sum": None,
|
||||
f"field_{field_2.id}_sum": Decimal("5"),
|
||||
f"field_{field_3.id}_sum": Decimal("1"),
|
||||
"id": 5,
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("3"),
|
||||
f"field_{field_2.id}": Decimal("3"),
|
||||
f"field_{field_3.id}": Decimal("2"),
|
||||
f"field_{field.id}_sum": Decimal("3"),
|
||||
f"field_{field_2.id}_sum": Decimal("3"),
|
||||
f"field_{field_3.id}_sum": Decimal("2"),
|
||||
"id": 4,
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("3"),
|
||||
f"field_{field_2.id}": Decimal("3"),
|
||||
f"field_{field_3.id}": Decimal("3"),
|
||||
f"field_{field.id}_sum": Decimal("3"),
|
||||
f"field_{field_2.id}_sum": Decimal("3"),
|
||||
f"field_{field_3.id}_sum": Decimal("3"),
|
||||
"id": 3,
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("2"),
|
||||
f"field_{field_2.id}": Decimal("2"),
|
||||
f"field_{field_3.id}": Decimal("3"),
|
||||
f"field_{field.id}_sum": Decimal("2"),
|
||||
f"field_{field_2.id}_sum": Decimal("2"),
|
||||
f"field_{field_3.id}_sum": Decimal("3"),
|
||||
"id": 2,
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("1"),
|
||||
f"field_{field_2.id}": Decimal("1"),
|
||||
f"field_{field_3.id}": Decimal("4"),
|
||||
f"field_{field.id}_sum": Decimal("1"),
|
||||
f"field_{field_2.id}_sum": Decimal("1"),
|
||||
f"field_{field_3.id}_sum": Decimal("4"),
|
||||
"id": 1,
|
||||
},
|
||||
],
|
||||
|
@ -1766,9 +1841,9 @@ def test_grouped_aggregate_rows_service_dispatch_sort_by_series_without_group_by
|
|||
# the results are still a dictionary, not sorted on the backend
|
||||
assert result.data == {
|
||||
"result": {
|
||||
f"field_{field.id}": Decimal("9"),
|
||||
f"field_{field_2.id}": Decimal("14"),
|
||||
f"field_{field_3.id}": Decimal("13"),
|
||||
f"field_{field.id}_sum": Decimal("9"),
|
||||
f"field_{field_2.id}_sum": Decimal("14"),
|
||||
f"field_{field_3.id}_sum": Decimal("13"),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1873,23 +1948,23 @@ def test_grouped_aggregate_rows_service_dispatch_sort_by_group_by_field(data_fix
|
|||
"result": [
|
||||
{
|
||||
f"field_{field.id}": None,
|
||||
f"field_{field_2.id}": Decimal("100"),
|
||||
f"field_{field_3.id}": Decimal("100"),
|
||||
f"field_{field_2.id}_sum": Decimal("100"),
|
||||
f"field_{field_3.id}_sum": Decimal("100"),
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("10"),
|
||||
f"field_{field_2.id}": Decimal("3"),
|
||||
f"field_{field_3.id}": Decimal("6"),
|
||||
f"field_{field_2.id}_sum": Decimal("3"),
|
||||
f"field_{field_3.id}_sum": Decimal("6"),
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("20"),
|
||||
f"field_{field_2.id}": Decimal("6"),
|
||||
f"field_{field_3.id}": Decimal("6"),
|
||||
f"field_{field_2.id}_sum": Decimal("6"),
|
||||
f"field_{field_3.id}_sum": Decimal("6"),
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("30"),
|
||||
f"field_{field_2.id}": Decimal("9"),
|
||||
f"field_{field_3.id}": Decimal("3"),
|
||||
f"field_{field_2.id}_sum": Decimal("9"),
|
||||
f"field_{field_3.id}_sum": Decimal("3"),
|
||||
},
|
||||
],
|
||||
}
|
||||
|
@ -1966,32 +2041,32 @@ def test_grouped_aggregate_rows_service_dispatch_sort_by_group_by_row_id(data_fi
|
|||
"result": [
|
||||
{
|
||||
f"field_{field.id}": "",
|
||||
f"field_{field_2.id}": Decimal("5"),
|
||||
f"field_{field_3.id}": Decimal("1"),
|
||||
f"field_{field_2.id}_sum": Decimal("5"),
|
||||
f"field_{field_3.id}_sum": Decimal("1"),
|
||||
"id": 5,
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": "A",
|
||||
f"field_{field_2.id}": Decimal("1"),
|
||||
f"field_{field_3.id}": Decimal("4"),
|
||||
f"field_{field_2.id}_sum": Decimal("1"),
|
||||
f"field_{field_3.id}_sum": Decimal("4"),
|
||||
"id": 1,
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": "B",
|
||||
f"field_{field_2.id}": Decimal("3"),
|
||||
f"field_{field_3.id}": Decimal("2"),
|
||||
f"field_{field_2.id}_sum": Decimal("3"),
|
||||
f"field_{field_3.id}_sum": Decimal("2"),
|
||||
"id": 4,
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": "H",
|
||||
f"field_{field_2.id}": Decimal("2"),
|
||||
f"field_{field_3.id}": Decimal("3"),
|
||||
f"field_{field_2.id}_sum": Decimal("2"),
|
||||
f"field_{field_3.id}_sum": Decimal("3"),
|
||||
"id": 2,
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": "I",
|
||||
f"field_{field_2.id}": Decimal("3"),
|
||||
f"field_{field_3.id}": Decimal("3"),
|
||||
f"field_{field_2.id}_sum": Decimal("3"),
|
||||
f"field_{field_3.id}_sum": Decimal("3"),
|
||||
"id": 3,
|
||||
},
|
||||
],
|
||||
|
@ -2211,23 +2286,27 @@ def test_grouped_aggregate_rows_service_dispatch_sort_by_series_with_group_by_ig
|
|||
"result": [
|
||||
{
|
||||
f"field_{field.id}": None,
|
||||
f"field_{field_2.id}": Decimal("100"),
|
||||
f"field_{field_3.id}": Decimal("100"),
|
||||
f"field_{field.id}_sum": None,
|
||||
f"field_{field_2.id}_sum": Decimal("100"),
|
||||
f"field_{field_3.id}_sum": Decimal("100"),
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("10"),
|
||||
f"field_{field.id}_sum": Decimal("30"),
|
||||
f"field_{field_2.id}_sum": Decimal("3"),
|
||||
f"field_{field_3.id}_sum": Decimal("6"),
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("30"),
|
||||
f"field_{field_2.id}": Decimal("3"),
|
||||
f"field_{field_3.id}": Decimal("6"),
|
||||
f"field_{field.id}_sum": Decimal("90"),
|
||||
f"field_{field_2.id}_sum": Decimal("9"),
|
||||
f"field_{field_3.id}_sum": Decimal("3"),
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("90"),
|
||||
f"field_{field_2.id}": Decimal("9"),
|
||||
f"field_{field_3.id}": Decimal("3"),
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("60"),
|
||||
f"field_{field_2.id}": Decimal("6"),
|
||||
f"field_{field_3.id}": Decimal("6"),
|
||||
f"field_{field.id}": Decimal("20"),
|
||||
f"field_{field.id}_sum": Decimal("60"),
|
||||
f"field_{field_2.id}_sum": Decimal("6"),
|
||||
f"field_{field_3.id}_sum": Decimal("6"),
|
||||
},
|
||||
],
|
||||
}
|
||||
|
@ -2301,19 +2380,19 @@ def test_grouped_aggregate_rows_service_dispatch_max_buckets_sort_on_group_by_fi
|
|||
assert result.data == {
|
||||
"result": [
|
||||
{
|
||||
f"field_{field.id}": Decimal("10"),
|
||||
f"field_{field.id}_sum": Decimal("10"),
|
||||
f"field_{field_2.id}": "A",
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("60"),
|
||||
f"field_{field.id}_sum": Decimal("60"),
|
||||
f"field_{field_2.id}": "H",
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("20"),
|
||||
f"field_{field.id}_sum": Decimal("20"),
|
||||
f"field_{field_2.id}": "K",
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("30"),
|
||||
f"field_{field.id}_sum": Decimal("30"),
|
||||
f"field_{field_2.id}": "L",
|
||||
},
|
||||
],
|
||||
|
@ -2388,19 +2467,19 @@ def test_grouped_aggregate_rows_service_dispatch_max_buckets_sort_on_series(
|
|||
assert result.data == {
|
||||
"result": [
|
||||
{
|
||||
f"field_{field.id}": Decimal("10"),
|
||||
f"field_{field.id}_sum": Decimal("10"),
|
||||
f"field_{field_2.id}": "A",
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("20"),
|
||||
f"field_{field.id}_sum": Decimal("20"),
|
||||
f"field_{field_2.id}": "K",
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("30"),
|
||||
f"field_{field.id}_sum": Decimal("30"),
|
||||
f"field_{field_2.id}": "L",
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("40"),
|
||||
f"field_{field.id}_sum": Decimal("40"),
|
||||
f"field_{field_2.id}": "Z",
|
||||
},
|
||||
],
|
||||
|
@ -2475,22 +2554,22 @@ def test_grouped_aggregate_rows_service_dispatch_max_buckets_sort_on_primary_fie
|
|||
assert result.data == {
|
||||
"result": [
|
||||
{
|
||||
f"field_{field.id}": Decimal("10"),
|
||||
f"field_{field.id}_sum": Decimal("10"),
|
||||
f"field_{field_2.id}": "A",
|
||||
"id": rows[3].id,
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("60"),
|
||||
f"field_{field.id}_sum": Decimal("60"),
|
||||
f"field_{field_2.id}": "H",
|
||||
"id": rows[4].id,
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("20"),
|
||||
f"field_{field.id}_sum": Decimal("20"),
|
||||
f"field_{field_2.id}": "K",
|
||||
"id": rows[1].id,
|
||||
},
|
||||
{
|
||||
f"field_{field.id}": Decimal("30"),
|
||||
f"field_{field.id}_sum": Decimal("30"),
|
||||
f"field_{field_2.id}": "L",
|
||||
"id": rows[2].id,
|
||||
},
|
||||
|
|
|
@ -82,7 +82,7 @@ export default {
|
|||
const datasets = []
|
||||
for (const [index, series] of this.seriesConfig.entries()) {
|
||||
const seriesData = this.result.map((item) => {
|
||||
return item[series.fieldName]
|
||||
return item[`${series.fieldName}_${series.aggregationType}`]
|
||||
})
|
||||
const label = this.getLabel(series.fieldName, series.aggregationType)
|
||||
datasets.push({
|
||||
|
@ -100,7 +100,9 @@ export default {
|
|||
const labels = ['']
|
||||
const datasets = []
|
||||
for (const [index, series] of this.seriesConfig.entries()) {
|
||||
const seriesData = [this.result[series.fieldName]]
|
||||
const seriesData = [
|
||||
this.result[`${series.fieldName}_${series.aggregationType}`],
|
||||
]
|
||||
const label = this.getLabel(series.fieldName, series.aggregationType)
|
||||
datasets.push({
|
||||
data: seriesData,
|
||||
|
|
Loading…
Add table
Reference in a new issue