feat(crm): support datetime column sort on contract list.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
8f63430881
commit
f14a96b28d
2 files changed
+16
-1
No files matched your search
@@ -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(
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in new issue
Block a user