feat(crm): support datetime column sort on quote list.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
72a8f97bd1
commit
8f63430881
2 files changed
+16
-1
No files matched your search
@@ -35,6 +35,7 @@ from app.crud.crm.supplier_info import get_supplier_info
|
||||
from app.models.crm_models import CrmContract, CrmCustomer, CrmQuote, CrmQuoteApproval
|
||||
from app.models.models import SysUser
|
||||
from app.services.crm_quote_pdf import generate_quote_pdf
|
||||
from app.services.crm.list_sort import resolve_datetime_order_by
|
||||
from app.crud.crm.data_scope_helpers import apply_crm_owner_scope, ensure_crm_owner_row_in_scope
|
||||
|
||||
_FMT = "%Y-%m-%d %H:%M:%S"
|
||||
@@ -350,7 +351,19 @@ def _build_quote_filters(
|
||||
)
|
||||
)
|
||||
|
||||
return q.order_by(CrmQuote.create_time.desc())
|
||||
default_order = CrmQuote.create_time.desc()
|
||||
whitelist = {
|
||||
"quoteDate": CrmQuote.quote_date,
|
||||
"expireDate": CrmQuote.expire_date,
|
||||
"lastViewTime": CrmQuote.last_view_time,
|
||||
"createTime": CrmQuote.create_time,
|
||||
"updateTime": CrmQuote.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 _fill_contract_linked_count(db: Session, rows: List[Dict[str, Any]]) -> None:
|
||||
|
||||
@@ -58,6 +58,8 @@ class QuoteListBody(BaseModel):
|
||||
endTime: Optional[str] = None
|
||||
approvedByUserId: Optional[str] = None
|
||||
pendingApprovalUserId: Optional[str] = None
|
||||
sortField: Optional[str] = None
|
||||
sortOrder: Optional[str] = None
|
||||
|
||||
ids: Optional[List[str]] = Field(default=None, description="导出指定ID列表")
|
||||
columns: Optional[List[str]] = Field(default=None, description="导出列(前端 visibleColumns)")
|
||||
|
||||
Reference in new issue
Block a user