Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions open_needs_server/extensions/domain/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ async def get_domains(db: AsyncSession, skip: int = 0, limit: int = 100):


async def create_domain(db: AsyncSession, domain: DomainSchema):
cursor = await db.execute(insert(DomainModel), domain)
cursor = await db.execute(insert(DomainModel).values(**domain).returning(DomainModel.id))
await db.commit()
domain_id = cursor.inserted_primary_key[0]
domain_id = cursor.fetchone()[0]
return {**domain, "id": domain_id}


Expand Down
4 changes: 2 additions & 2 deletions open_needs_server/extensions/need/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ async def create_need(ext: ONSExtension, db: AsyncSession, need: NeedReturnSchem
data = ext.fire_event("need_create", {"need": need, "project": db_project})
need = data["need"]

cursor = await db.execute(insert(NeedModel), need)
cursor = await db.execute(insert(NeedModel).values(**need).returning(NeedModel.id))
await db.commit()
need_id = cursor.inserted_primary_key[0]
need_id = cursor.fetchone()[0]

need = ext.fire_event("need_create_done", need)

Expand Down
6 changes: 3 additions & 3 deletions open_needs_server/extensions/ons_admin/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import importlib
import logging
from sqladmin import Admin, ModelAdmin
from sqladmin import Admin, ModelView

from open_needs_server.extensions.base import ONSExtension
from open_needs_server.database import engine
Expand All @@ -24,7 +24,7 @@ def __init__(self, *args, **kwargs):
self.admin = Admin(self.ons_app, engine)

for admin_model in self._get_models():
self.admin.register_model(admin_model)
self.admin.add_view(admin_model)

def _get_models(self):
models = []
Expand All @@ -49,7 +49,7 @@ def _get_models(self):

new_class = types.new_class(
name=f"{class_str}Admin",
bases=(ModelAdmin,),
bases=(ModelView,),
kwds={"model": clazz},
exec_body=lambda ns: ns.update(
{
Expand Down
4 changes: 2 additions & 2 deletions open_needs_server/extensions/organization/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,9 @@ async def create_organization(
ext: ONSExtension, db: AsyncSession, organization: OrganizationCreateSchema
):
organization = ext.fire_event("org_create", organization)
cursor = await db.execute(insert(OrganizationModel), organization)
cursor = await db.execute(insert(OrganizationModel).values(**organization).returning(OrganizationModel.id))
await db.commit()
organization_id = cursor.inserted_primary_key[0]
organization_id = cursor.fetchone()[0]
new_organization = {**organization, "id": organization_id}
new_organization = ext.fire_event("org_create_done", new_organization)
return new_organization
Expand Down
9 changes: 7 additions & 2 deletions open_needs_server/extensions/project/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,14 @@ async def create_project(db: AsyncSession, project: ProjectSchema):
raise HTTPException(404, detail=f"Unknown domain id: {domain_id}")
domains_db.append(domain_db)

cursor = await db.execute(insert(ProjectModel), project)

project = {
"title": project["title"],
"organization_id": project["organization_id"]
}
cursor = await db.execute(insert(ProjectModel).values(**project).returning(ProjectModel.id))
await db.commit()
project_id = cursor.inserted_primary_key[0]
project_id = cursor.fetchone()[0]
project_db = await get_project(db, project_id)
project_db.domains = domains_db
await db.commit()
Expand Down