Spaces:
Sleeping
Sleeping

Update cache directory in refresh_author_db function and modify response in refresh_author_db_view for admin access
d9b93e7
from .models import Domain, Field, Subfield, Topic | |
from django.http import JsonResponse, HttpResponse | |
from django.shortcuts import render | |
from BridgeMentor.utils import refresh_author_db | |
def home_page(request): | |
return render(request, 'home.html') | |
def refresh_author_db_view(request): | |
# check if admin | |
if not request.user.is_superuser: | |
return JsonResponse({"error": "Permission denied"}, status=403) | |
refresh_author_db(check_time=False) | |
return HttpResponse("Database refreshed successfully. <a href='/'>Go Home</a>", status=200) | |
def search_hierarchy(request): | |
q = request.GET.get("q", "").strip() | |
if not q: | |
return JsonResponse({"results": []}) | |
results = [] | |
results += [{"id": d.id, "text": d.name, "type": "Domain"} | |
for d in Domain.objects.filter(name__icontains=q)] | |
results += [{"id": f.id, "text": f"{f.domain.name} > {f.name}", "type": "Field"} | |
for f in Field.objects.select_related("domain").filter(name__icontains=q)] | |
results += [{"id": s.id, "text": f"{s.field.domain.name} > {s.field.name} > {s.name}", "type": "Subfield"} | |
for s in Subfield.objects.select_related("field__domain").filter(name__icontains=q)] | |
results += [{"id": t.id, "text": f"{t.subfield.field.domain.name} > {t.subfield.field.name} > {t.subfield.name} > {t.name}", "type": "Topic"} | |
for t in Topic.objects.select_related("subfield__field__domain").filter(name__icontains=q)] | |
return JsonResponse({"results": sorted(results, key=lambda x: x["text"].lower())[:10]}) | |