[bug] DeviceListFilterBackend drops additional query filters when config__templates is provided
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
Direzione di ricerca
Leggi openwisp_controller/config/api/filters.py, concentrandoti su DeviceListFilterBackend.filter_queryset e su come delega a DeviceListFilter. Trova i test per l’endpoint dell’elenco dei dispositivi ed esegui i test dei filtri pertinenti. Il lavoro è completato quando una richiesta che combina config__templates con name restituisce solo i dispositivi che corrispondono a entrambi i filtri e i test coprono il comportamento esistente dei filtri.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
When querying the device list endpoint (GET /api/v1/controller/device/) with config__templates, all other query filters (such as name, mac_address, group, etc.) are completely ignored.
In DeviceListFilterBackend.filter_queryset (openwisp_controller/config/api/filters.py), when config__templates is present in the request query parameters, the method returns early with return queryset.filter(config__templates=config_template_uuid_obj) without calling super().filter_queryset(). As a result, the remaining filters defined on DeviceListFilter are never evaluated.
Steps To Reproduce
- Create a configuration template
T1. - Create two devices,
device-alphaanddevice-beta, both associated with templateT1. - Query the device list endpoint with both the template and a name filter:
GET /api/v1/controller/device/?config__templates=<uuid_of_T1>&name=device-alpha - Both
device-alphaanddevice-betaare returned in the response, because thenamefilter was dropped.
Expected behavior
The API should apply both filters. The returned list should contain only devices associated with template T1 whose name contains device-alpha.
Screenshots
N/A
System Informatioon:
- OS: Ubuntu 24.04
- Python Version: Python 3.12
- Django Version: Django 5.2
- Lingua principale
- Python
- Stelle
- 792
- Fork
- 335
- Merge medio
- 9h 41m
- PR unite (30g)
- 32
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di openwisp/openwisp-controller
-
[fix] Recent Commands row uses "created" timestamp for the "Modified" fieldForse già presa @xovishnukosuri l’ha presa 230 giorni fa. Apertabug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
openwisp/openwisp-controller#1263 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
openwisp/openwisp-controller#1524 ·
I maintainer di solito rispondono entro 1 giorno
-
[feature] Emit a signal when a device operating system changesForse di nuovo libera @Vara715 l’ha presa 14 giorni fa e non c’è nessuna pull request aperta. Apertaenhancement
Difficoltà 3/5 Mezza giornata Idoneità per principianti 65/100
openwisp/openwisp-controller#1506 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[feature] Add board_name field to Device model for DTB board identificationForse di nuovo libera @atif09 l’ha presa 42 giorni fa e non c’è nessuna pull request aperta. Apertaenhancement gsoc
openwisp/openwisp-controller#1491 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
[bug:gsoc26] Mass command wizards started in two browser tabs overwrite each otherForse già presa @dee077 l’ha presa 44 giorni fa. Apertabug
openwisp/openwisp-controller#1489 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di openwisp/openwisp-controller
Issue simili
-
infrastructure
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
NatLabRockies/H2Integrate#977 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
topoteretes/cognee#6470 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
-
area:docs priority:p2 type:docs wave:9
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 84/100
jejjohnson/radtrax#293 ·
I maintainer di solito rispondono entro 1 giorno
-
bug core plugins
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
bunkerity/bunkerweb#4121 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno