diff --git a/api/api/products/views.py b/api/api/products/views.py index a0f2dbf..614cb06 100644 --- a/api/api/products/views.py +++ b/api/api/products/views.py @@ -1809,6 +1809,7 @@ class FramesView(BaseView): def get(self, request): start = request.GET.get('start', 0) end = request.GET.get('end', 100) + filter_label = request.GET.get('label', None) ret = oss_list(bucket=settings.FRAMES_BUCKET) start = int(start) end = int(end) @@ -1816,11 +1817,13 @@ class FramesView(BaseView): for frame in ret[start:end]: fo = FrameLabel.objects.filter(oss_path=frame).first() if fo: + if filter_label and filter_label not in fo.labels.split(','): + continue frames.append({ 'path': frame, 'labels': fo.labels.split(','), }) - else: + elif not filter_label: frames.append({ 'path': frame, 'labels': [], @@ -1838,7 +1841,6 @@ class FrameView(BaseView): path = request.GET.get('path') return HttpResponse(oss_get(path, bucket=settings.FRAMES_BUCKET), content_type='image/jpeg') - class DeleteFrameView(BaseView): name = 'delete-frame' auth_check = 'admin' diff --git a/web/src/views/frames.vue b/web/src/views/frames.vue index 651e836..a0cdc31 100644 --- a/web/src/views/frames.vue +++ b/web/src/views/frames.vue @@ -1,6 +1,13 @@