def index(request, query_pk=None, frame_pk=None, detection_pk=None): if request.method == 'POST': form = UploadFileForm(request.POST, request.FILES) user = request.user if request.user.is_authenticated else None if form.is_valid(): view_shared.handle_uploaded_file(request.FILES['file'], form.cleaned_data['name'], user=user) return redirect('video_list') else: raise ValueError else: form = UploadFileForm() context = {'form': form, 'detectors': models.TrainedModel.objects.filter(model_type=models.TrainedModel.DETECTOR), 'indexer_retrievers': []} for i in models.TrainedModel.objects.filter(model_type=models.TrainedModel.INDEXER): for r in models.Retriever.objects.all(): if i.shasum and r.indexer_shasum == i.shasum: context['indexer_retrievers'].append(('{} > {} retriever {} (pk:{})'.format(i.name, r.get_algorithm_display(), r.name, r.pk), '{}_{}'.format(i.pk, r.pk))) if query_pk: previous_query = models.DVAPQL.objects.get(pk=query_pk) context['initial_url'] = '{}queries/{}.png'.format(settings.MEDIA_URL, previous_query.uuid) elif frame_pk: frame = models.Frame.objects.get(pk=frame_pk) context['initial_url'] = '{}{}/frames/{}.jpg'.format(settings.MEDIA_URL, frame.video.pk, frame.frame_index) elif detection_pk: detection = models.Region.objects.get(pk=detection_pk) context['initial_url'] = '{}{}/frames/{}.jpg'.format(settings.MEDIA_URL, detection.video.pk, detection.frame_index) context['frame_count'] = models.Frame.objects.count() context['query_count'] = models.DVAPQL.objects.filter(process_type=models.DVAPQL.QUERY).count() context['process_count'] = models.DVAPQL.objects.filter(process_type=models.DVAPQL.PROCESS).count() context['restart_count'] = models.TaskRestart.objects.filter().count() context['index_entries_count'] = models.IndexEntries.objects.count() context['task_events_count'] = models.TEvent.objects.count() context['pending_tasks'] = models.TEvent.objects.all().filter(started=False, errored=False).count() context['running_tasks'] = models.TEvent.objects.all().filter(started=True, completed=False, errored=False).count() context['successful_tasks'] = models.TEvent.objects.all().filter(started=True, completed=True).count() context['errored_tasks'] = models.TEvent.objects.all().filter(errored=True).count() context['video_count'] = models.Video.objects.count() context['index_entries'] = models.IndexEntries.objects.all() context['region_count'] = models.Region.objects.all().count() context['models_count'] = models.TrainedModel.objects.all().count() context['worker_count'] = models.Worker.objects.all().count() context['training_set_count'] = models.TrainingSet.objects.all().count() context['retriever_counts'] = models.Retriever.objects.all().count() context['external_server_count'] = ExternalServer.objects.all().count() context['script_count'] = StoredDVAPQL.objects.all().count() context['tube_count'] = models.Tube.objects.all().count() context["videos"] = models.Video.objects.all().filter() context["exported_video_count"] = models.Export.objects.filter(export_type=models.Export.VIDEO_EXPORT).count() context["exported_model_count"] = models.Export.objects.filter(export_type=models.Export.MODEL_EXPORT).count() context['rate'] = settings.DEFAULT_RATE return render(request, 'dvaui/dashboard.html', context)
def index(request, query_pk=None, frame_pk=None, detection_pk=None): if request.method == 'POST': form = UploadFileForm(request.POST, request.FILES) user = request.user if request.user.is_authenticated else None if form.is_valid(): view_shared.handle_uploaded_file(request.FILES['file'], form.cleaned_data['name'], user=user) return redirect('video_list') else: raise ValueError else: form = UploadFileForm() context = {'form': form} context['detectors'] = TrainedModel.objects.filter(model_type=TrainedModel.DETECTOR) context['indexer_retrievers'] = [] for i in TrainedModel.objects.filter(model_type=TrainedModel.INDEXER): for r in Retriever.objects.all(): if 'indexer_shasum' in r.source_filters and r.source_filters['indexer_shasum'] == i.shasum and r.last_built: context['indexer_retrievers'].append(('{} > {} retriever {} (pk:{})'.format(i.name, r.get_algorithm_display(),r.name,r.pk), '{}_{}'.format(i.pk,r.pk))) if query_pk: previous_query = DVAPQL.objects.get(pk=query_pk) context['initial_url'] = '{}queries/{}.png'.format(settings.MEDIA_URL, query_pk) elif frame_pk: frame = Frame.objects.get(pk=frame_pk) context['initial_url'] = '{}{}/frames/{}.jpg'.format(settings.MEDIA_URL, frame.video.pk, frame.frame_index) elif detection_pk: detection = Region.objects.get(pk=detection_pk) context['initial_url'] = '{}{}/frames/{}.jpg'.format(settings.MEDIA_URL, detection.video.pk, detection.frame_index) context['frame_count'] = Frame.objects.count() context['query_count'] = DVAPQL.objects.filter(process_type=DVAPQL.QUERY).count() context['process_count'] = DVAPQL.objects.filter(process_type=DVAPQL.PROCESS).count() context['index_entries_count'] = IndexEntries.objects.count() context['task_events_count'] = TEvent.objects.count() context['pending_tasks'] = TEvent.objects.all().filter(started=False, errored=False).count() context['running_tasks'] = TEvent.objects.all().filter(started=True, completed=False, errored=False).count() context['successful_tasks'] = TEvent.objects.all().filter(started=True, completed=True).count() context['errored_tasks'] = TEvent.objects.all().filter(errored=True).count() context['video_count'] = Video.objects.count() context['index_entries'] = IndexEntries.objects.all() context['region_count'] = Region.objects.all().count() context['models_count'] = TrainedModel.objects.all().count() context['worker_count'] = Worker.objects.all().count() context['tube_count'] = Tube.objects.all().count() context["videos"] = Video.objects.all().filter() context['detector_count'] = TrainedModel.objects.filter(model_type=TrainedModel.DETECTOR).count() context['rate'] = defaults.DEFAULT_RATE return render(request, 'dashboard.html', context)