Spaces:
Sleeping
Sleeping
Commit
·
3bd1ac2
1
Parent(s):
463d0f7
Add views and templates for managing domains, fields, subfields, and topics
Browse files- core/templates/base.html +2 -3
- core/templates/domain/detail.html +6 -0
- core/templates/domain/list.html +10 -0
- core/templates/field/detail.html +6 -0
- core/templates/field/list.html +10 -0
- core/templates/subfield/detail.html +6 -0
- core/templates/subfield/list.html +10 -0
- core/templates/topic/detail.html +6 -0
- core/templates/topic/list.html +10 -0
- core/urls.py +17 -2
- core/views.py +52 -0
core/templates/base.html
CHANGED
|
@@ -20,9 +20,8 @@
|
|
| 20 |
</button>
|
| 21 |
<div class="collapse navbar-collapse" id="navbarNav">
|
| 22 |
<ul class="navbar-nav me-auto">
|
| 23 |
-
<li class="nav-item"><a class="nav-link" href="
|
| 24 |
-
<li class="nav-item"><a class="nav-link" href="#">
|
| 25 |
-
<li class="nav-item"><a class="nav-link" href="#">Contact</a></li>
|
| 26 |
</ul>
|
| 27 |
<ul class="navbar-nav">
|
| 28 |
{% if user.is_authenticated %}
|
|
|
|
| 20 |
</button>
|
| 21 |
<div class="collapse navbar-collapse" id="navbarNav">
|
| 22 |
<ul class="navbar-nav me-auto">
|
| 23 |
+
<li class="nav-item"><a class="nav-link" href="{% url 'domain_list' %}">Domains</a></li>
|
| 24 |
+
{# <li class="nav-item"><a class="nav-link" href="#">Contact</a></li> #}
|
|
|
|
| 25 |
</ul>
|
| 26 |
<ul class="navbar-nav">
|
| 27 |
{% if user.is_authenticated %}
|
core/templates/domain/detail.html
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{% extends "base.html" %}
|
| 2 |
+
{% block title %}{{ item.name }}{% endblock %}
|
| 3 |
+
{% block content %}
|
| 4 |
+
<h2>Domain: {{ item.name }}</h2>
|
| 5 |
+
<p>ID: {{ item.id }}</p>
|
| 6 |
+
{% endblock %}
|
core/templates/domain/list.html
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{% extends "base.html" %}
|
| 2 |
+
{% block title %}Domains{% endblock %}
|
| 3 |
+
{% block content %}
|
| 4 |
+
<h2>Domains</h2>
|
| 5 |
+
<ul>
|
| 6 |
+
{% for item in items %}
|
| 7 |
+
<li><a href="{% url 'domain_detail' item.id %}">{{ item.name }}</a></li>
|
| 8 |
+
{% endfor %}
|
| 9 |
+
</ul>
|
| 10 |
+
{% endblock %}
|
core/templates/field/detail.html
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{% extends "base.html" %}
|
| 2 |
+
{% block title %}{{ item.name }}{% endblock %}
|
| 3 |
+
{% block content %}
|
| 4 |
+
<h2>Field: {{ item.name }}</h2>
|
| 5 |
+
<p>ID: {{ item.id }}</p>
|
| 6 |
+
{% endblock %}
|
core/templates/field/list.html
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{% extends "base.html" %}
|
| 2 |
+
{% block title %}Fields{% endblock %}
|
| 3 |
+
{% block content %}
|
| 4 |
+
<h2>Fields</h2>
|
| 5 |
+
<ul>
|
| 6 |
+
{% for item in items %}
|
| 7 |
+
<li><a href="{% url 'field_detail' item.id %}">{{ item.name }}</a></li>
|
| 8 |
+
{% endfor %}
|
| 9 |
+
</ul>
|
| 10 |
+
{% endblock %}
|
core/templates/subfield/detail.html
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{% extends "base.html" %}
|
| 2 |
+
{% block title %}{{ item.name }}{% endblock %}
|
| 3 |
+
{% block content %}
|
| 4 |
+
<h2>Subfield: {{ item.name }}</h2>
|
| 5 |
+
<p>ID: {{ item.id }}</p>
|
| 6 |
+
{% endblock %}
|
core/templates/subfield/list.html
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{% extends "base.html" %}
|
| 2 |
+
{% block title %}Subfields{% endblock %}
|
| 3 |
+
{% block content %}
|
| 4 |
+
<h2>Subfields</h2>
|
| 5 |
+
<ul>
|
| 6 |
+
{% for item in items %}
|
| 7 |
+
<li><a href="{% url 'subfield_detail' item.id %}">{{ item.name }}</a></li>
|
| 8 |
+
{% endfor %}
|
| 9 |
+
</ul>
|
| 10 |
+
{% endblock %}
|
core/templates/topic/detail.html
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{% extends "base.html" %}
|
| 2 |
+
{% block title %}{{ item.name }}{% endblock %}
|
| 3 |
+
{% block content %}
|
| 4 |
+
<h2>Topic: {{ item.name }}</h2>
|
| 5 |
+
<p>ID: {{ item.id }}</p>
|
| 6 |
+
{% endblock %}
|
core/templates/topic/list.html
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{% extends "base.html" %}
|
| 2 |
+
{% block title %}Topics{% endblock %}
|
| 3 |
+
{% block content %}
|
| 4 |
+
<h2>Topics</h2>
|
| 5 |
+
<ul>
|
| 6 |
+
{% for item in items %}
|
| 7 |
+
<li><a href="{% url 'topic_detail' item.id %}">{{ item.name }}</a></li>
|
| 8 |
+
{% endfor %}
|
| 9 |
+
</ul>
|
| 10 |
+
{% endblock %}
|
core/urls.py
CHANGED
|
@@ -1,8 +1,23 @@
|
|
| 1 |
from django.urls import path
|
| 2 |
-
from .views import home_page, search_hierarchy, refresh_author_db_view
|
|
|
|
|
|
|
|
|
|
| 3 |
|
| 4 |
urlpatterns = [
|
| 5 |
path('', home_page, name='home'),
|
| 6 |
path("api/search/", search_hierarchy, name="search-hierarchy"),
|
| 7 |
-
path("refresh_author_db", refresh_author_db_view, name="refresh-author-db")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
]
|
|
|
|
| 1 |
from django.urls import path
|
| 2 |
+
from .views import home_page, search_hierarchy, refresh_author_db_view, domain_list, domain_detail
|
| 3 |
+
from .views import field_list, field_detail, subfield_list, subfield_detail
|
| 4 |
+
from .views import topic_list, topic_detail
|
| 5 |
+
|
| 6 |
|
| 7 |
urlpatterns = [
|
| 8 |
path('', home_page, name='home'),
|
| 9 |
path("api/search/", search_hierarchy, name="search-hierarchy"),
|
| 10 |
+
path("refresh_author_db", refresh_author_db_view, name="refresh-author-db"),
|
| 11 |
+
|
| 12 |
+
path('domain/', domain_list, name='domain_list'),
|
| 13 |
+
path('domain/<str:pk>/', domain_detail, name='domain_detail'),
|
| 14 |
+
|
| 15 |
+
path('field/', field_list, name='field_list'),
|
| 16 |
+
path('field/<str:pk>/', field_detail, name='field_detail'),
|
| 17 |
+
|
| 18 |
+
path('subfield/', subfield_list, name='subfield_list'),
|
| 19 |
+
path('subfield/<str:pk>/', subfield_detail, name='subfield_detail'),
|
| 20 |
+
|
| 21 |
+
path('topic/', topic_list, name='topic_list'),
|
| 22 |
+
path('topic/<str:pk>/', topic_detail, name='topic_detail'),
|
| 23 |
]
|
core/views.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
|
|
| 1 |
from .models import Domain, Field, Subfield, Topic
|
| 2 |
from django.http import JsonResponse, HttpResponse
|
| 3 |
from django.shortcuts import render
|
|
@@ -37,3 +38,54 @@ def search_hierarchy(request):
|
|
| 37 |
for t in Topic.objects.select_related("subfield__field__domain").filter(name__icontains=q)]
|
| 38 |
|
| 39 |
return JsonResponse({"results": sorted(results, key=lambda x: x["text"].lower())[:10]})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from django.shortcuts import render, get_object_or_404
|
| 2 |
from .models import Domain, Field, Subfield, Topic
|
| 3 |
from django.http import JsonResponse, HttpResponse
|
| 4 |
from django.shortcuts import render
|
|
|
|
| 38 |
for t in Topic.objects.select_related("subfield__field__domain").filter(name__icontains=q)]
|
| 39 |
|
| 40 |
return JsonResponse({"results": sorted(results, key=lambda x: x["text"].lower())[:10]})
|
| 41 |
+
|
| 42 |
+
|
| 43 |
+
# Domain views
|
| 44 |
+
|
| 45 |
+
|
| 46 |
+
def domain_list(request):
|
| 47 |
+
domains = Domain.objects.all()
|
| 48 |
+
return render(request, "domain/list.html", {"items": domains})
|
| 49 |
+
|
| 50 |
+
|
| 51 |
+
def domain_detail(request, pk):
|
| 52 |
+
domain = get_object_or_404(Domain, pk=pk)
|
| 53 |
+
return render(request, "domain/detail.html", {"item": domain})
|
| 54 |
+
|
| 55 |
+
# Field views
|
| 56 |
+
|
| 57 |
+
|
| 58 |
+
def field_list(request):
|
| 59 |
+
fields = Field.objects.select_related("domain").all()
|
| 60 |
+
return render(request, "field/list.html", {"items": fields})
|
| 61 |
+
|
| 62 |
+
|
| 63 |
+
def field_detail(request, pk):
|
| 64 |
+
field = get_object_or_404(Field.objects.select_related("domain"), pk=pk)
|
| 65 |
+
return render(request, "field/detail.html", {"item": field})
|
| 66 |
+
|
| 67 |
+
# Subfield views
|
| 68 |
+
|
| 69 |
+
|
| 70 |
+
def subfield_list(request):
|
| 71 |
+
subfields = Subfield.objects.select_related("field__domain").all()
|
| 72 |
+
return render(request, "subfield/list.html", {"items": subfields})
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
def subfield_detail(request, pk):
|
| 76 |
+
subfield = get_object_or_404(
|
| 77 |
+
Subfield.objects.select_related("field__domain"), pk=pk)
|
| 78 |
+
return render(request, "subfield/detail.html", {"item": subfield})
|
| 79 |
+
|
| 80 |
+
# Topic views
|
| 81 |
+
|
| 82 |
+
|
| 83 |
+
def topic_list(request):
|
| 84 |
+
topics = Topic.objects.select_related("subfield__field__domain").all()
|
| 85 |
+
return render(request, "topic/list.html", {"items": topics})
|
| 86 |
+
|
| 87 |
+
|
| 88 |
+
def topic_detail(request, pk):
|
| 89 |
+
topic = get_object_or_404(Topic.objects.select_related(
|
| 90 |
+
"subfield__field__domain"), pk=pk)
|
| 91 |
+
return render(request, "topic/detail.html", {"item": topic})
|