From f145787fa5f5534ce18cab1ab3c7d34d343fd269 Mon Sep 17 00:00:00 2001 From: timofejmalinin Date: Mon, 14 Nov 2022 23:02:19 +0400 Subject: [PATCH] New filters --- service/utils.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/service/utils.py b/service/utils.py index bc32bb3..abb79fb 100644 --- a/service/utils.py +++ b/service/utils.py @@ -14,6 +14,8 @@ def raschet(tables, filters, koefs): conn = sqlalchemy.create_engine(settings.DB_URL, connect_args={'options': '-csearch_path=public'}) msk_ao = filters.get('msk_ao') msk_rayon = filters.get('msk_rayon') + rate_from = filters.get('rate_from', None) + rate_to = filters.get('rate_to', None) category = filters.get('category', []) categories = ','.join([f"'{c}'" for c in category]) points_df = None @@ -28,6 +30,8 @@ def raschet(tables, filters, koefs): query = f"select * from {table} where category in ({categories});" if len(categories) > 0 else f"select * from {table};" points = pd.read_sql(query, conn) points_df = raschet_real(points, koefs) + if rate_from is not None and rate_to is not None: + points_df = points_df[(points_df['rate'] >= rate_from) & (points_df['rate'] <= rate_to)] if 'net' in table: if msk_ao is not None: @@ -38,5 +42,7 @@ def raschet(tables, filters, koefs): query = f"select * from {table};" nets = pd.read_sql(query, conn) nets_df = raschet_real(nets, koefs) + if rate_from is not None and rate_to is not None: + nets_df = nets_df[(nets_df['rate'] >= rate_from) & (nets_df['rate'] <= rate_to)] return points_df, nets_df