Redesign filter panel with range sliders, separated visualization card, and backend filter support
Simplify the filter UI to show only essential filters (type toggle, price/bedroom range sliders, min size) by default, with advanced filters collapsed. Extract visualization controls (color-by metric, POI travel mode) into a separate VisualizationCard component. Wire up previously ignored backend filters: max_sqm, min/max_price_per_sqm, and district_names now work end-to-end.
This commit is contained in:
parent
1f4a3f858c
commit
743e018668
11 changed files with 422 additions and 588 deletions
|
|
@ -191,6 +191,20 @@ class ListingRepository:
|
|||
)
|
||||
if query_parameters.min_sqm is not None:
|
||||
query = query.where(model.square_meters >= query_parameters.min_sqm)
|
||||
if query_parameters.max_sqm is not None:
|
||||
query = query.where(model.square_meters <= query_parameters.max_sqm)
|
||||
if query_parameters.min_price_per_sqm is not None:
|
||||
query = query.where(
|
||||
model.square_meters.is_not(None),
|
||||
model.square_meters > 0,
|
||||
(model.price / model.square_meters) >= query_parameters.min_price_per_sqm,
|
||||
)
|
||||
if query_parameters.max_price_per_sqm is not None:
|
||||
query = query.where(
|
||||
model.square_meters.is_not(None),
|
||||
model.square_meters > 0,
|
||||
(model.price / model.square_meters) <= query_parameters.max_price_per_sqm,
|
||||
)
|
||||
if query_parameters.furnish_types and model == RentListing:
|
||||
query = query.where(model.furnish_type.in_(query_parameters.furnish_types))
|
||||
if (
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue