Skip to content

Commit 3653c31

Browse files
committed
test
1 parent 1aeeea7 commit 3653c31

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

application/data_access/digital_land_queries.py

+21
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import logging
22
from typing import List
33
from sqlalchemy.orm import Session
4+
from sqlalchemy import func
45

56
from application.core.models import (
67
DatasetModel,
@@ -44,6 +45,13 @@ def get_dataset_query(session: Session, dataset) -> DatasetModel:
4445

4546
def get_datasets_with_data_by_typology(
4647
session: Session, typology
48+
) -> List[DatasetModel]:
49+
# return get_datasets_with_data_by_typology_old(session, typology)
50+
return get_datasets_with_data_by_typology_new(session, typology)
51+
52+
53+
def get_datasets_with_data_by_typology_old(
54+
session: Session, typology
4755
) -> List[DatasetModel]:
4856
from sqlalchemy import func
4957

@@ -57,6 +65,19 @@ def get_datasets_with_data_by_typology(
5765
return [DatasetModel.from_orm(ds.DatasetOrm) for ds in datasets]
5866

5967

68+
def get_datasets_with_data_by_typology_new(
69+
session: Session, typology
70+
) -> List[DatasetModel]:
71+
query = session.query(DatasetOrm).join(
72+
EntityOrm, DatasetOrm.dataset == EntityOrm.dataset
73+
)
74+
query = query.filter(DatasetOrm.typology == typology)
75+
query = query.group_by(DatasetOrm.dataset)
76+
query = query.having(func.count(EntityOrm.entity) > 0)
77+
datasets = query.all()
78+
return [DatasetModel.from_orm(ds) for ds in datasets]
79+
80+
6081
def get_typologies(session: Session) -> List[TypologyModel]:
6182
typologies = session.query(TypologyOrm).order_by(TypologyOrm.typology).all()
6283
return [TypologyModel.from_orm(t) for t in typologies]

0 commit comments

Comments
 (0)