def dataset_taxonomy_tree(request, short_name): dataset = get_object_or_404(Dataset, short_name=short_name) taxonomy_tree = data_from_async_task(compute_taxonomy_tree, [], {}, FSD_TAXONOMY_TREE, refresh_time=3600) if not taxonomy_tree: taxonomy_tree = dataset.taxonomy.get_taxonomy_as_tree() return JsonResponse(taxonomy_tree)
def monitor(request, short_name): dataset = get_object_or_404(Dataset, short_name=short_name) if not dataset.user_is_maintainer(request.user): return HttpResponseRedirect(reverse('dataset', args=[dataset.short_name])) top_contributed_categories = data_from_async_task(compute_dataset_top_contributed_categories, [dataset.id], {}, DATASET_TOP_CONTRIBUTED_CATEGORIES.format(dataset.id), 60) bad_mapping_categories = data_from_async_task(compute_dataset_bad_mapping, [dataset.id], {}, DATASET_BAD_MAPPING_CATEGORIES.format(dataset.id), 60) difficult_agreement_categories = data_from_async_task(compute_dataset_difficult_agreement, [dataset.id], {}, DATASET_DIFFICULT_AGREEMENT_CATEGORIES.format(dataset.id), 60) remaining_annotations = data_from_async_task(compute_remaining_annotations_with_duration, [dataset.id], {}, DATASET_REMAINING_CANDIDATE_ANNOTATIONS_PER_CATEGORIES .format(dataset.id), 60) num_contributions_per_day = data_from_async_task(compute_dataset_num_contributions_per_day, [dataset.id], {}, DATASET_CONTRIBUTIONS_PER_DAY.format(dataset.id), 60) num_ground_truth_per_day = data_from_async_task(compute_dataset_num_ground_truth_per_day, [dataset.id], {}, DATASET_GROUND_TRUTH_PER_DAY.format(dataset.id), 60) users = User.objects.annotate(num_votes=Count('votes')).filter(num_votes__gt=0) return render(request, 'monitor/monitor.html', {'dataset': dataset, 'top_contributed': top_contributed_categories, 'bad_mapping': bad_mapping_categories, 'difficult_agreement': difficult_agreement_categories, 'remaining_annotations': remaining_annotations, 'num_contributions_per_day': num_contributions_per_day, 'num_ground_truth_per_day': num_ground_truth_per_day, 'users': users})
def dataset_state_table(request, short_name): dataset = get_object_or_404(Dataset, short_name=short_name) user_is_maintainer = dataset.user_is_maintainer(request.user) # Get previously stored dataset release stats dataset_basic_stats = data_from_async_task(compute_dataset_basic_stats, [dataset.id], {}, DATASET_BASIC_STATS_KEY_TEMPLATE.format(dataset.id), 60) return render(request, 'datasets/dataset_state_table.html', { 'dataset': dataset, 'dataset_basic_stats': dataset_basic_stats, 'user_is_maintainer': user_is_maintainer, })
def contribute(request, short_name, beginner_task_finished=False): dataset = get_object_or_404(Dataset, short_name=short_name) n_contributors = User.objects.annotate(num_votes=Count('votes')).filter(num_votes__gt=0).count() user_is_maintainer = dataset.user_is_maintainer(request.user) # Get previously stored annotators ranking annotators_ranking = data_from_async_task(compute_annotators_ranking, [dataset.id], {}, DATASET_ANNOTATORS_RANKING_TEMPLATE.format(dataset.id), 60 * 1) return render(request, 'datasets/contribute.html', {'dataset': dataset, 'n_contributors': n_contributors, 'annotators_ranking': annotators_ranking, 'beginner_task_finished': beginner_task_finished, 'user_is_maintainer': user_is_maintainer})
def dataset(request, short_name): dataset = get_object_or_404(Dataset, short_name=short_name) user_is_maintainer = dataset.user_is_maintainer(request.user) random_taxonomy_nodes = dataset.get_random_taxonomy_node_with_examples() # Get previously stored dataset release stats dataset_basic_stats = data_from_async_task(compute_dataset_basic_stats, [dataset.id], {}, DATASET_BASIC_STATS_KEY_TEMPLATE.format(dataset.id), 60) return render(request, 'datasets/dataset.html', { 'dataset': dataset, 'dataset_page': True, 'user_is_maintainer': user_is_maintainer, 'random_nodes': random_taxonomy_nodes, 'dataset_basic_stats': dataset_basic_stats, })
def index(request): dataset = Dataset.objects.get(short_name='fsd') dataset_basic_stats = data_from_async_task( compute_dataset_basic_stats, [dataset.id], {}, DATASET_BASIC_STATS_KEY_TEMPLATE.format(dataset.id), 60) num_categories_reached_goal = dataset_basic_stats.get( 'num_categories_reached_goal', None) num_non_omitted_nodes = dataset_basic_stats.get('num_non_omitted_nodes', None) return render( request, 'index.html', { 'home': True, 'num_categories_reached_goal': num_categories_reached_goal, 'num_non_omitted_nodes': num_non_omitted_nodes })
def dataset_taxonomy_table(request, short_name): dataset = get_object_or_404(Dataset, short_name=short_name) # Get request info to chose which button to place per category category_link_to = { 'e': ('dataset-explore-taxonomy-node', 'Explore'), 'cva': ('contribute-validate-annotations-category', 'Choose'), }[request.GET.get('link_to', 'e')] # Get previously stored dataset taxonomy stats dataset_taxonomy_stats = data_from_async_task(compute_dataset_taxonomy_stats, [dataset.id], {}, DATASET_TAXONOMY_STATS_KEY_TEMPLATE.format(dataset.id), 60) return render(request, 'datasets/dataset_taxonomy_table.html', { 'dataset': dataset, 'category_link_to': category_link_to, 'dataset_taxonomy_stats': dataset_taxonomy_stats})
def dataset_releases_table(request, short_name): dataset = get_object_or_404(Dataset, short_name=short_name) user_is_maintainer = dataset.user_is_maintainer(request.user) if user_is_maintainer: dataset_releases_for_user = dataset.releases else: dataset_releases_for_user = dataset.releases.filter(type="PU") # Only get public releases # Get previously stored dataset release stats dataset_basic_stats = data_from_async_task(compute_dataset_basic_stats, [dataset.id], {}, DATASET_BASIC_STATS_KEY_TEMPLATE.format(dataset.id), 60) return render(request, 'datasets/dataset_release_table.html', { 'dataset': dataset, 'dataset_basic_stats': dataset_basic_stats, 'user_is_maintainer': user_is_maintainer, 'dataset_releases_for_user': dataset_releases_for_user })
def dataset(request, short_name): dataset = get_object_or_404(Dataset, short_name=short_name) user_is_maintainer = dataset.user_is_maintainer(request.user) form_errors = False if request.method == 'POST': form = DatasetReleaseForm(request.POST) if form.is_valid(): dataset_release = form.save(commit=False) dataset_release.dataset = dataset dataset_release.save() async_job = generate_release_index.delay( dataset.id, dataset_release.id, form.cleaned_data['max_number_of_sounds']) form = DatasetReleaseForm() # Reset form else: form_errors = True else: form = DatasetReleaseForm() random_taxonomy_nodes = dataset.get_random_taxonomy_node_with_examples() # Get previously stored dataset release stats dataset_basic_stats = data_from_async_task( compute_dataset_basic_stats, [dataset.id], {}, DATASET_BASIC_STATS_KEY_TEMPLATE.format(dataset.id), 60) return render( request, 'datasets/dataset.html', { 'dataset': dataset, 'dataset_page': True, 'user_is_maintainer': user_is_maintainer, 'dataset_release_form': form, 'dataset_release_form_errors': form_errors, 'random_nodes': random_taxonomy_nodes, 'dataset_basic_stats': dataset_basic_stats, })