feat: datasource i18n

This commit is contained in:
junjun
2025-07-18 15:20:59 +08:00
parent 233c7906ad
commit 0bbdd4f3d5
4 changed files with 18 additions and 15 deletions
+5 -5
View File
@@ -7,7 +7,7 @@ import pandas as pd
from fastapi import APIRouter, File, UploadFile, HTTPException
from apps.db.engine import create_table, get_data_engine, insert_data
from common.core.deps import SessionDep, CurrentUser
from common.core.deps import SessionDep, CurrentUser, Trans
from ..crud.datasource import get_datasource_list, check_status, create_ds, update_ds, delete_ds, getTables, getFields, \
execSql, update_table_and_fields, getTablesByDs, chooseTables, preview, updateTable, updateField, get_ds, fieldEnum
from ..crud.field import get_fields_by_table_id
@@ -34,8 +34,8 @@ async def check(session: SessionDep, ds: CoreDatasource):
@router.post("/add", response_model=CoreDatasource)
async def add(session: SessionDep, user: CurrentUser, ds: CreateDatasource):
return create_ds(session, user, ds)
async def add(session: SessionDep, trans: Trans, user: CurrentUser, ds: CreateDatasource):
return create_ds(session, trans, user, ds)
@router.post("/chooseTables/{id}")
@@ -44,8 +44,8 @@ async def choose_tables(session: SessionDep, id: int, tables: List[CoreTable]):
@router.post("/update", response_model=CoreDatasource)
async def update(session: SessionDep,user: CurrentUser, ds: CoreDatasource):
return update_ds(session,user, ds)
async def update(session: SessionDep, trans: Trans, user: CurrentUser, ds: CoreDatasource):
return update_ds(session, trans, user, ds)
@router.post("/delete/{id}", response_model=CoreDatasource)
+9 -8
View File
@@ -2,6 +2,7 @@ import datetime
import json
from typing import List
from fastapi import HTTPException
from sqlalchemy import and_, text, cast
from sqlalchemy.dialects.postgresql import JSONB
from sqlbot_xpack.permissions.models.ds_permission import DsPermission
@@ -13,7 +14,7 @@ from apps.db.constant import DB
from apps.db.db import get_engine, get_tables, get_fields, exec_sql
from apps.db.engine import get_engine_config, get_engine_conn
from apps.db.type import db_type_relation
from common.core.deps import SessionDep, CurrentUser
from common.core.deps import SessionDep, CurrentUser, Trans
from common.utils.utils import deepcopy_ignore_extra
from .table import get_tables_by_ds_id
from ..crud.field import delete_field_by_ds_id, update_field
@@ -45,23 +46,23 @@ def check_status(session: SessionDep, ds: CoreDatasource):
return False
def check_name(session: SessionDep, user: CurrentUser, ds: CoreDatasource):
def check_name(session: SessionDep, trans: Trans, user: CurrentUser, ds: CoreDatasource):
if ds.id is not None:
ds_list = session.query(CoreDatasource).filter(
and_(CoreDatasource.name == ds.name, CoreDatasource.id != ds.id, CoreDatasource.oid == user.oid)).all()
if ds_list is not None and len(ds_list) > 0:
raise 'Name exist'
raise HTTPException(status_code=500, detail=trans('i18n_ds_name_exist'))
else:
ds_list = session.query(CoreDatasource).filter(
and_(CoreDatasource.name == ds.name, CoreDatasource.oid == user.oid)).all()
if ds_list is not None and len(ds_list) > 0:
raise 'Name exist'
raise HTTPException(status_code=500, detail=trans('i18n_ds_name_exist'))
def create_ds(session: SessionDep, user: CurrentUser, create_ds: CreateDatasource):
def create_ds(session: SessionDep, trans: Trans, user: CurrentUser, create_ds: CreateDatasource):
ds = CoreDatasource()
deepcopy_ignore_extra(create_ds, ds)
check_name(session, user, ds)
check_name(session, trans, user, ds)
ds.create_time = datetime.datetime.now()
# status = check_status(session, ds)
ds.create_by = user.id
@@ -87,9 +88,9 @@ def chooseTables(session: SessionDep, id: int, tables: List[CoreTable]):
updateNum(session, ds)
def update_ds(session: SessionDep, user: CurrentUser, ds: CoreDatasource):
def update_ds(session: SessionDep, trans: Trans, user: CurrentUser, ds: CoreDatasource):
ds.id = int(ds.id)
check_name(session, user, ds)
check_name(session, trans, user, ds)
status = check_status(session, ds)
ds.status = "Success" if status is True else "Fail"
record = session.exec(select(CoreDatasource).where(CoreDatasource.id == ds.id)).first()
+2 -1
View File
@@ -1,3 +1,4 @@
{
"i18n_default_workspace": "Default workspace"
"i18n_default_workspace": "Default workspace",
"i18n_ds_name_exist": "Name exist"
}
+2 -1
View File
@@ -1,3 +1,4 @@
{
"i18n_default_workspace": "默认工作空间"
"i18n_default_workspace": "默认工作空间",
"i18n_ds_name_exist": "名称已存在"
}