feat: Add search/filter bar to admin cars page
- Backend: Add search (car name/plate number), color, year filters to GET /api/cars - Frontend: Add filter bar with car name/plate, color, year range inputs - Clear button resets all filters Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -64,6 +64,8 @@ def get_cars(
|
||||
price_max: Optional[int] = None,
|
||||
mileage_max: Optional[int] = None,
|
||||
fuel: Optional[str] = None,
|
||||
color: Optional[str] = None,
|
||||
search: Optional[str] = None,
|
||||
status: Optional[str] = None,
|
||||
is_displayed: Optional[bool] = None,
|
||||
admin: bool = Query(False, description="Admin mode - show all cars"),
|
||||
@@ -85,6 +87,14 @@ def get_cars(
|
||||
if is_displayed is not None and admin:
|
||||
base_query = base_query.filter(Car.is_displayed == is_displayed)
|
||||
|
||||
# 통합 검색 (차량번호, 차량명)
|
||||
if search:
|
||||
search_term = f"%{search}%"
|
||||
base_query = base_query.filter(
|
||||
(Car.car_number.ilike(search_term)) |
|
||||
(Car.car_name.ilike(search_term))
|
||||
)
|
||||
|
||||
if maker_id:
|
||||
base_query = base_query.filter(Car.maker_id == maker_id)
|
||||
if model_id:
|
||||
@@ -101,6 +111,8 @@ def get_cars(
|
||||
base_query = base_query.filter(Car.mileage <= mileage_max)
|
||||
if fuel:
|
||||
base_query = base_query.filter(Car.fuel == fuel)
|
||||
if color:
|
||||
base_query = base_query.filter(Car.color.ilike(f"%{color}%"))
|
||||
|
||||
total = base_query.count()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user