Browse Source

fix and filters

d0c 1 year ago
parent
commit
2ccf6c0cd3

+ 1 - 0
.gitignore

@@ -1,5 +1,6 @@
 todo.md
 db.sqlite3
+*.test.json
 
 # ---> Python
 # Byte-compiled / optimized / DLL files

+ 1 - 1
suitablephones/management/commands/fetchphones.py

@@ -91,7 +91,7 @@ class Command(BaseCommand):
                     stream.close()
             dev.save()
             dev.bluetooth = bluetooth
-            for camera in cameras:
+            for cam in cameras:
                dev.cameras.add(cam)
             dev.save()
                 

+ 1 - 1
suitablephones/models.py

@@ -64,4 +64,4 @@ class Device(models.Model):
     wifi  = models.CharField(max_length=200, null=True)
 
     def __str__(self):
-       return 'Device: ' + self.name
+       return 'Device: ' + self.name + ' - ' + self.codename

+ 1 - 1
suitablephones/serializers.py

@@ -12,7 +12,7 @@ class CameraSerializer(serializers.ModelSerializer):
 class BluetoothSerializer(serializers.ModelSerializer):
     class Meta:
         model = Bluetooth
-        exclude = []
+        exclude = ["id"]
 
 
 

+ 1 - 1
suitablephones/urls.py

@@ -6,7 +6,7 @@ from suitablephones.views import BluetoothViewSet, CameraViewSet, DeviceViewSet
 router = routers.DefaultRouter()
 router.register(r'devices', DeviceViewSet)
 router.register(r'bluetooth', BluetoothViewSet)
-#router.register(r'camera', CameraViewSet)
+router.register(r'camera', CameraViewSet)
 
 urlpatterns = [
     path('api/', include(router.urls)),

+ 10 - 1
suitablephones/views.py

@@ -15,9 +15,18 @@ class DeviceViewSet(viewsets.ModelViewSet):
 
     #http://url/api/devices?megapixel=3
     def get_queryset(self):
+        name = self.request.query_params.get('name')
         megapixel = self.request.query_params.get('megapixel')
+        #maintainers = self.request.query_params.getlist('maintainers')
+        version = self.request.query_params.get('version')
+        if name:
+            self.queryset = self.queryset.filter(name__icontains=name)
         if megapixel:
-            self.queryset = self.queryset.filter(cameras__megapixel__lt=Decimal(megapixel))
+            self.queryset = self.queryset.filter(cameras__megapixel__gt=Decimal(megapixel))
+        if version:
+            self.queryset = self.queryset.filter(versions__icontains=version) 
+        #if maintainers:
+        self.queryset = self.queryset.filter(maintainers__len__gt=0)
         return self.queryset