Projects: fix model and add api

This commit is contained in:
phil 2024-01-03 17:05:54 +05:30
parent 653a7cbc05
commit be8d7c3175
2 changed files with 15 additions and 7 deletions

View file

@ -16,6 +16,7 @@ from gisaf.models.to_migrate import DataProvider
from gisaf.config import conf from gisaf.config import conf
from gisaf.models.bootstrap import BootstrapData from gisaf.models.bootstrap import BootstrapData
from gisaf.models.store import Store 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.database import pandas_query, fastapi_db_session as db_session
from gisaf.security import ( from gisaf.security import (
Token, Token,
@ -108,6 +109,13 @@ async def get_stores() -> list[Store]:
drop(columns=['model', 'raw_model', 'base_gis_type']) drop(columns=['model', 'raw_model', 'base_gis_type'])
return df.to_dict(orient="records") 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") # @api.get("/user-role")
# async def get_user_role_relation( # async def get_user_role_relation(

View file

@ -1,4 +1,4 @@
from datetime import datetime from datetime import datetime, date
from csv import writer from csv import writer
from collections import defaultdict from collections import defaultdict
from io import BytesIO, StringIO from io import BytesIO, StringIO
@ -11,7 +11,7 @@ from gisaf.config import conf
from gisaf.models.models_base import Model from gisaf.models.models_base import Model
from gisaf.models.metadata import gisaf_admin from gisaf.models.metadata import gisaf_admin
class Project(Model): class Project(Model, table=True):
metadata = gisaf_admin metadata = gisaf_admin
class Admin: class Admin:
@ -22,11 +22,11 @@ class Project(Model):
name: str name: str
contact_person: str contact_person: str
site: str site: str
date_approved: datetime date_approved: date
start_date_planned: datetime start_date_planned: date
start_date_effective: datetime start_date_effective: date
end_date_planned: datetime end_date_planned: date
end_date_effective: datetime end_date_effective: date
def __str__(self): def __str__(self):
return '{self.name:s}'.format(self=self) return '{self.name:s}'.format(self=self)