feat(crm): support datetime column sort on contract list.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
wuzilongandCursor committed 2026-09-08 21:45:52 +08:00
1 parent 8f63430881
commit f14a96b28d
2 files changed
+16 -1

No files matched your search

+14 -1
View File
@@ -30,6 +30,7 @@ from app.crud.crm.contract_product import (
)
from app.crud.crm.customer import get_customer
from app.crud.crm.invoice_info import list_invoice_info_by_customer
from app.services.crm.list_sort import resolve_datetime_order_by
from app.services.crm_settlement_clause import default_settlement_clause
from app.services.crm_supplier_hazard import assert_products_allowed_for_supplier
from app.crud.crm.product import resolve_product_id_for_quote_item
@@ -445,7 +446,19 @@ def _build_contract_filters(
else:
q = q.filter(CrmContract.id == "__none__")
return q.order_by(CrmContract.create_time.desc())
default_order = CrmContract.create_time.desc()
whitelist = {
"signDate": CrmContract.sign_date,
"startDate": CrmContract.start_date,
"endDate": CrmContract.end_date,
"createTime": CrmContract.create_time,
"updateTime": CrmContract.update_time,
}
sort_field = _get_field(filters, "sort_field", "sortField")
sort_order = _get_field(filters, "sort_order", "sortOrder")
return q.order_by(
resolve_datetime_order_by(sort_field, sort_order, whitelist, default_order)
)
def list_contracts(
+2
View File
@@ -84,6 +84,8 @@ class ContractListQuery(BaseModel):
signDateEnd: Optional[str] = None
beginTime: Optional[str] = None
endTime: Optional[str] = None
sortField: Optional[str] = None
sortOrder: Optional[str] = None
class ContractCreateBody(BaseModel):