|
17 | 17 | from .constants import * |
18 | 18 | from .models import * |
19 | 19 |
|
20 | | - |
21 | 20 | __all__ = ( |
22 | 21 | 'CableFilterSet', |
23 | 22 | 'CableTerminationFilterSet', |
@@ -1243,73 +1242,6 @@ def filter_device(self, queryset, name, value): |
1243 | 1242 | return queryset |
1244 | 1243 |
|
1245 | 1244 |
|
1246 | | -class ConnectionFilterSet(BaseFilterSet): |
1247 | | - |
1248 | | - def filter_site(self, queryset, name, value): |
1249 | | - if not value.strip(): |
1250 | | - return queryset |
1251 | | - return queryset.filter(device__site__slug=value) |
1252 | | - |
1253 | | - def filter_device(self, queryset, name, value): |
1254 | | - if not value: |
1255 | | - return queryset |
1256 | | - return queryset.filter(**{f'{name}__in': value}) |
1257 | | - |
1258 | | - |
1259 | | -class ConsoleConnectionFilterSet(ConnectionFilterSet): |
1260 | | - site = django_filters.CharFilter( |
1261 | | - method='filter_site', |
1262 | | - label='Site (slug)', |
1263 | | - ) |
1264 | | - device_id = MultiValueNumberFilter( |
1265 | | - method='filter_device' |
1266 | | - ) |
1267 | | - device = MultiValueCharFilter( |
1268 | | - method='filter_device', |
1269 | | - field_name='device__name' |
1270 | | - ) |
1271 | | - |
1272 | | - class Meta: |
1273 | | - model = ConsolePort |
1274 | | - fields = ['name'] |
1275 | | - |
1276 | | - |
1277 | | -class PowerConnectionFilterSet(ConnectionFilterSet): |
1278 | | - site = django_filters.CharFilter( |
1279 | | - method='filter_site', |
1280 | | - label='Site (slug)', |
1281 | | - ) |
1282 | | - device_id = MultiValueNumberFilter( |
1283 | | - method='filter_device' |
1284 | | - ) |
1285 | | - device = MultiValueCharFilter( |
1286 | | - method='filter_device', |
1287 | | - field_name='device__name' |
1288 | | - ) |
1289 | | - |
1290 | | - class Meta: |
1291 | | - model = PowerPort |
1292 | | - fields = ['name'] |
1293 | | - |
1294 | | - |
1295 | | -class InterfaceConnectionFilterSet(ConnectionFilterSet): |
1296 | | - site = django_filters.CharFilter( |
1297 | | - method='filter_site', |
1298 | | - label='Site (slug)', |
1299 | | - ) |
1300 | | - device_id = MultiValueNumberFilter( |
1301 | | - method='filter_device' |
1302 | | - ) |
1303 | | - device = MultiValueCharFilter( |
1304 | | - method='filter_device', |
1305 | | - field_name='device__name' |
1306 | | - ) |
1307 | | - |
1308 | | - class Meta: |
1309 | | - model = Interface |
1310 | | - fields = [] |
1311 | | - |
1312 | | - |
1313 | 1245 | class PowerPanelFilterSet(PrimaryModelFilterSet): |
1314 | 1246 | q = django_filters.CharFilter( |
1315 | 1247 | method='search', |
@@ -1441,3 +1373,52 @@ def search(self, queryset, name, value): |
1441 | 1373 | Q(comments__icontains=value) |
1442 | 1374 | ) |
1443 | 1375 | return queryset.filter(qs_filter) |
| 1376 | + |
| 1377 | + |
| 1378 | +# |
| 1379 | +# Connection filter sets |
| 1380 | +# |
| 1381 | + |
| 1382 | +class ConnectionFilterSet(BaseFilterSet): |
| 1383 | + site_id = MultiValueNumberFilter( |
| 1384 | + method='filter_connections', |
| 1385 | + field_name='device__site_id' |
| 1386 | + ) |
| 1387 | + site = MultiValueCharFilter( |
| 1388 | + method='filter_connections', |
| 1389 | + field_name='device__site__slug' |
| 1390 | + ) |
| 1391 | + device_id = MultiValueNumberFilter( |
| 1392 | + method='filter_connections', |
| 1393 | + field_name='device_id' |
| 1394 | + ) |
| 1395 | + device = MultiValueCharFilter( |
| 1396 | + method='filter_connections', |
| 1397 | + field_name='device__name' |
| 1398 | + ) |
| 1399 | + |
| 1400 | + def filter_connections(self, queryset, name, value): |
| 1401 | + if not value: |
| 1402 | + return queryset |
| 1403 | + return queryset.filter(**{f'{name}__in': value}) |
| 1404 | + |
| 1405 | + |
| 1406 | +class ConsoleConnectionFilterSet(ConnectionFilterSet): |
| 1407 | + |
| 1408 | + class Meta: |
| 1409 | + model = ConsolePort |
| 1410 | + fields = ['name'] |
| 1411 | + |
| 1412 | + |
| 1413 | +class PowerConnectionFilterSet(ConnectionFilterSet): |
| 1414 | + |
| 1415 | + class Meta: |
| 1416 | + model = PowerPort |
| 1417 | + fields = ['name'] |
| 1418 | + |
| 1419 | + |
| 1420 | +class InterfaceConnectionFilterSet(ConnectionFilterSet): |
| 1421 | + |
| 1422 | + class Meta: |
| 1423 | + model = Interface |
| 1424 | + fields = [] |
0 commit comments