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})
|