From be8d7c31758a37f3881d0d0e453cd1f14f38e3be Mon Sep 17 00:00:00 2001 From: phil Date: Wed, 3 Jan 2024 17:05:54 +0530 Subject: [PATCH] Projects: fix model and add api --- src/gisaf/api.py | 8 ++++++++ src/gisaf/models/project.py | 14 +++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/gisaf/api.py b/src/gisaf/api.py index fb42e2b..abd0cbe 100644 --- a/src/gisaf/api.py +++ b/src/gisaf/api.py @@ -16,6 +16,7 @@ from gisaf.models.to_migrate import DataProvider from gisaf.config import conf from gisaf.models.bootstrap import BootstrapData from gisaf.models.store import Store +from gisaf.models.project import Project from gisaf.database import pandas_query, fastapi_db_session as db_session from gisaf.security import ( Token, @@ -108,6 +109,13 @@ async def get_stores() -> list[Store]: drop(columns=['model', 'raw_model', 'base_gis_type']) return df.to_dict(orient="records") +@api.get("/projects") +async def get_projects( + db_session: db_session, + ) -> list[Project]: + query = select(Project) + df = await db_session.run_sync(pandas_query, query) + return df.to_dict(orient="records") # @api.get("/user-role") # async def get_user_role_relation( diff --git a/src/gisaf/models/project.py b/src/gisaf/models/project.py index d099ea3..6130d11 100644 --- a/src/gisaf/models/project.py +++ b/src/gisaf/models/project.py @@ -1,4 +1,4 @@ -from datetime import datetime +from datetime import datetime, date from csv import writer from collections import defaultdict from io import BytesIO, StringIO @@ -11,7 +11,7 @@ from gisaf.config import conf from gisaf.models.models_base import Model from gisaf.models.metadata import gisaf_admin -class Project(Model): +class Project(Model, table=True): metadata = gisaf_admin class Admin: @@ -22,11 +22,11 @@ class Project(Model): name: str contact_person: str site: str - date_approved: datetime - start_date_planned: datetime - start_date_effective: datetime - end_date_planned: datetime - end_date_effective: datetime + date_approved: date + start_date_planned: date + start_date_effective: date + end_date_planned: date + end_date_effective: date def __str__(self): return '{self.name:s}'.format(self=self)