update
This commit is contained in:
parent
0c92fdfb57
commit
556d1d335f
5
.vscode/extensions.json
vendored
Normal file
5
.vscode/extensions.json
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"recommendations": [
|
||||||
|
"mkaufman.HTMLHint"
|
||||||
|
]
|
||||||
|
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -7,7 +7,6 @@ levels = Level.objects.all().values_list('levelNumber','levelName')
|
|||||||
standards = Standards.objects.all().values_list('standardTitle','standardTitle')
|
standards = Standards.objects.all().values_list('standardTitle','standardTitle')
|
||||||
|
|
||||||
class StandardsFilter(django_filters.FilterSet):
|
class StandardsFilter(django_filters.FilterSet):
|
||||||
# level = django_filters.ModelChoiceFilter(queryset = SearchResults.objects.values('level'))
|
|
||||||
level = django_filters.MultipleChoiceFilter(choices=levels)
|
level = django_filters.MultipleChoiceFilter(choices=levels)
|
||||||
title = django_filters.MultipleChoiceFilter(choices=standards)
|
title = django_filters.MultipleChoiceFilter(choices=standards)
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -2,7 +2,7 @@ body,
|
|||||||
p,
|
p,
|
||||||
ul,
|
ul,
|
||||||
ol {
|
ol {
|
||||||
font-size: 14px !important;
|
font-size: 16px !important;
|
||||||
font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
color: #454545;
|
color: #454545;
|
||||||
letter-spacing: -0.35px;
|
letter-spacing: -0.35px;
|
||||||
@ -45,7 +45,7 @@ ol {
|
|||||||
width: 30%;
|
width: 30%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title a {
|
.title{
|
||||||
font-family: "Roboto Condensed", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
font-family: "Roboto Condensed", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
text-transform: none;
|
text-transform: none;
|
||||||
@ -442,3 +442,9 @@ ol {
|
|||||||
.dropdown-menu{
|
.dropdown-menu{
|
||||||
min-width: 25rem !important;
|
min-width: 25rem !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ############featured Qs########################## */
|
||||||
|
.fq{
|
||||||
|
width: 45%;
|
||||||
|
background-color: rgb(238, 238, 238);
|
||||||
|
}
|
@ -36,7 +36,7 @@ anychart.onDocumentReady(function () {
|
|||||||
.enabled(true)
|
.enabled(true)
|
||||||
.useHtml(true)
|
.useHtml(true)
|
||||||
.text(
|
.text(
|
||||||
'Most Frequent Key-Phrases<br/>' +
|
'<h4>Most Frequent Key-Phrases</h4><br/>' +
|
||||||
'<span style="color: #575e64; font-size: 12px;">' +
|
'<span style="color: #575e64; font-size: 12px;">' +
|
||||||
'Click on words to get results' +
|
'Click on words to get results' +
|
||||||
'</span>'
|
'</span>'
|
||||||
|
6
App/static/js/toggle.js
Normal file
6
App/static/js/toggle.js
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
$(document).ready(function(){
|
||||||
|
$('#filterBtn').click(function(){
|
||||||
|
$child=$(this).children('i');
|
||||||
|
$child.toggleClass("fa-arrow-down").toggleClass("fa-arrow-up");
|
||||||
|
});
|
||||||
|
});
|
File diff suppressed because one or more lines are too long
@ -48,9 +48,9 @@
|
|||||||
<a href=""><img src="{% static 'img/un-logo-en.svg' %}" alt="United Nation" /></a>
|
<a href=""><img src="{% static 'img/un-logo-en.svg' %}" alt="United Nation" /></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<a href="">The Integrated Disarmament
|
The Integrated Disarmament
|
||||||
Demobilization and
|
Demobilization and
|
||||||
Reintegration Standards</a>
|
Reintegration Standards
|
||||||
</div>
|
</div>
|
||||||
<div class="search-box">
|
<div class="search-box">
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
@ -149,6 +149,7 @@
|
|||||||
|
|
||||||
<script src="{% static 'js/swip.js' %}"></script>
|
<script src="{% static 'js/swip.js' %}"></script>
|
||||||
<script src="{% static 'js/filter.js' %}"></script>
|
<script src="{% static 'js/filter.js' %}"></script>
|
||||||
|
<script src="{% static 'js/toggle.js' %}"></script>
|
||||||
|
|
||||||
<script src="https://cdn.anychart.com/releases/v8/js/anychart-base.min.js"></script>
|
<script src="https://cdn.anychart.com/releases/v8/js/anychart-base.min.js"></script>
|
||||||
<script src="https://cdn.anychart.com/releases/v8/js/anychart-ui.min.js"></script>
|
<script src="https://cdn.anychart.com/releases/v8/js/anychart-ui.min.js"></script>
|
||||||
|
@ -109,12 +109,12 @@
|
|||||||
<div>
|
<div>
|
||||||
<div class="d-flex justify-content-between">
|
<div class="d-flex justify-content-between">
|
||||||
<div class="">
|
<div class="">
|
||||||
<h3>Standard: {{standard.stamdardNumber}}</h3>
|
<h3>IDDRS {{standard.stamdardNumber}}</h3>
|
||||||
<h3>{{standard.standardTitle}}</h3>
|
<h3>{{standard.standardTitle}}</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="align-self-center">
|
<div class="align-self-center">
|
||||||
{% with 'IDDRSStandards/'|add:standard.standardPath as filePath %}
|
{% with 'IDDRSStandards/'|add:standard.standardPath as filePath %}
|
||||||
<a href="{% static filePath %}" target="_blank" class="btn btn-light border rounded-3">Open Standard</a>
|
<a href="{% static filePath %}" target="_blank" class="btn btn-light border rounded-3">Open Module</a>
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -6,13 +6,14 @@
|
|||||||
<div class="row justify-content-center">
|
<div class="row justify-content-center">
|
||||||
<div class="col-lg-8">
|
<div class="col-lg-8">
|
||||||
<form class="d-flex align-items-center" id="searchForm" method="get">
|
<form class="d-flex align-items-center" id="searchForm" method="get">
|
||||||
<input type="text" class="form-control" name ="phrase" placeholder="Seach IDDRS ..." aria-label="Seach IDDRS ..." aria-describedby="basic-addon1">
|
<input type="text" class="form-control" name="phrase" placeholder="Seach IDDRS ..."
|
||||||
|
aria-label="Seach IDDRS ..." aria-describedby="basic-addon1">
|
||||||
<button id="submitSearch" type="submit" class="btn-default">Search</button>
|
<button id="submitSearch" type="submit" class="btn-default">Search</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{% if results %}
|
||||||
<form id="fiterForm" method="get">
|
<form id="fiterForm" method="get">
|
||||||
<div class="d-flex justify-content-evenly mt-3">
|
<div class="d-flex justify-content-evenly mt-3">
|
||||||
{% for level in levels %}
|
{% for level in levels %}
|
||||||
@ -25,10 +26,11 @@
|
|||||||
{% for standard in standards %}
|
{% for standard in standards %}
|
||||||
{% if standard.standardLevel == level.levelNumber %}
|
{% if standard.standardLevel == level.levelNumber %}
|
||||||
<div class="form-check">
|
<div class="form-check">
|
||||||
<input class="form-check-input" name="title" type="checkbox" value="{{ standard.standardTitle }}" {% if standard.standardTitle in selectedChoices %} checked {% endif %}
|
<input class="form-check-input" name="title" type="checkbox" value="{{ standard.standardTitle }}"
|
||||||
|
{% if standard.standardTitle in selectedChoices %} checked {% endif %}
|
||||||
id="checkbox{{ standard.id }}">
|
id="checkbox{{ standard.id }}">
|
||||||
<label class="form-check-label" for="checkbox{{ standard.id }}">
|
<label class="form-check-label" for="checkbox{{ standard.id }}">
|
||||||
{{ standard.standardTitle }}
|
{{ standard.stamdardNumber }} {{ standard.standardTitle }}
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -39,20 +41,34 @@
|
|||||||
</div>
|
</div>
|
||||||
<input type="text" class="form-control" name="searchedPhrase" value="{{phrase}}" hidden>
|
<input type="text" class="form-control" name="searchedPhrase" value="{{phrase}}" hidden>
|
||||||
</form>
|
</form>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="mt-5">
|
<div class="mt-5">
|
||||||
|
|
||||||
{% if results %}
|
{% if results %}
|
||||||
<h4>Results for: {{ phrase }}</h4>
|
<h4>Results for: {{ phrase }}</h4>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{% if selectedChoices %}
|
||||||
|
<h5>Based on the following filter/s: <a class="text-dark" id="filterBtn" href="#filterCollapse"
|
||||||
|
data-bs-toggle="collapse" role="button" aria-expanded="false" aria-controls="filterCollapse"><i
|
||||||
|
class="fa fa-arrow-down" aria-hidden="true"></i></a></h5>
|
||||||
|
|
||||||
|
<div class="ps-5 collapse" id="filterCollapse">
|
||||||
|
{% for choice in selectedChoices %}
|
||||||
|
<h6 class="text-secondary">{{choice}}</h6>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
{% for result in results %}
|
{% for result in results %}
|
||||||
<div class="card" data-bs-toggle="modal" data-bs-target="#staticBackdrop{{result.index}}">
|
<div class="card" data-bs-toggle="modal" data-bs-target="#staticBackdrop{{result.index}}">
|
||||||
<div class="card-header card-header-test1 level-text-{{ result.level|make_list|first }}">
|
<div class="card-header card-header-test1 level-text-{{ result.level|make_list|first }}">
|
||||||
Level {{ result.level|make_list|first }}, Standard {{result.module}}, Page {{result.pageNumber}}
|
Level {{ result.level|make_list|first }}, IDDRS {{result.module}}, <span class="float-end"> Page
|
||||||
|
{{result.pageNumber}} </span>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h5 class="card-title">
|
<h5 class="card-title">
|
||||||
@ -66,14 +82,18 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{% if results %}
|
{% if results %}
|
||||||
<nav aria-label="Page navigation example">
|
<nav aria-label="Page navigation example">
|
||||||
<ul class="pagination">
|
<ul class="pagination">
|
||||||
{% for i in pages.page_range %}
|
{% for i in pages.page_range %}
|
||||||
{% if 'title' in request.get_full_path or 'phrase' in request.get_full_path or 'searchedPhrase' in request.get_full_path %}
|
{% if 'title' in request.get_full_path or 'phrase' in request.get_full_path or 'searchedPhrase' in request.get_full_path %}
|
||||||
<li class="page-item {% if i == pNumber %} active {% endif %}"><a class="page-link" href="{{ request.get_full_path }}&page={{ i }}">{{ i }}</a></li>
|
<li class="page-item {% if i == pNumber %} active {% endif %}"><a class="page-link"
|
||||||
|
href="{{ request.get_full_path }}&page={{ i }}">{{ i }}</a></li>
|
||||||
{% else %}
|
{% else %}
|
||||||
<li class="page-item {% if i == pNumber %} active {% endif %}"><a class="page-link" href="?page={{ i }}">{{ i }}</a></li>
|
<li class="page-item {% if i == pNumber %} active {% endif %}"><a class="page-link" href="?page={{ i }}">{{ i
|
||||||
|
}}</a></li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@ -81,8 +101,34 @@
|
|||||||
</nav>
|
</nav>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div id="wordCloud">
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="d-flex justify-content-between mt-5">
|
||||||
|
<div class="border p-2 fq" >
|
||||||
|
<h4 class="text-decoration-underline">Featured Questions About IDDRS Framework</h4>
|
||||||
|
<ul>
|
||||||
|
<li class="mb-3">
|
||||||
|
<div class="fw-bold">Featured Questions About IDDRS Framework</div>
|
||||||
|
</li>
|
||||||
|
<li class="mb-3">
|
||||||
|
<div class="fw-bold">Featured Questions About IDDRS Framework</div>
|
||||||
|
</li>
|
||||||
|
<li class="mb-3">
|
||||||
|
<div class="fw-bold">Featured Questions About IDDRS Framework</div>
|
||||||
|
</li>
|
||||||
|
<li class="mb-3">
|
||||||
|
<div class="fw-bold">Featured Questions About IDDRS Framework</div>
|
||||||
|
</li>
|
||||||
|
<li class="mb-3">
|
||||||
|
<div class="fw-bold">Featured Questions About IDDRS Framework</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="border" style="width: 50%;">
|
||||||
|
<div id="wordCloud">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@ -94,8 +140,9 @@
|
|||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<div class="" id="staticBackdropLabel{{result.index}}">
|
<div class="" id="staticBackdropLabel{{result.index}}">
|
||||||
<p class="modal-level level-text-{{ result.level|make_list|first }}">Level {{result.level}}</p>
|
<p class="modal-level level-text-{{ result.level|make_list|first }}">Level {{result.level}} {{
|
||||||
<p class="modal-module">Standard {{result.module}}</p>
|
result.levelName }}</p>
|
||||||
|
<p class="modal-module">IDDRS {{result.module}}</p>
|
||||||
<p class="modal-heading">{{result.heading1}}</p>
|
<p class="modal-heading">{{result.heading1}}</p>
|
||||||
<p class="modal-heading modal-heading-2">{{result.heading2}}</p>
|
<p class="modal-heading modal-heading-2">{{result.heading2}}</p>
|
||||||
<p class="modal-heading modal-heading-3">{{result.heading3}}</p>
|
<p class="modal-heading modal-heading-3">{{result.heading3}}</p>
|
||||||
@ -108,7 +155,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<p>{{ result.paragraph|highlight_search:result.sentence|safe }}</p>
|
<p>{{ result.paragraph|highlight_search:result.sentence|safe|linebreaks }}</p>
|
||||||
<p class="text-end">Page: {{result.pageNumber}}</p>
|
<p class="text-end">Page: {{result.pageNumber}}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
@ -121,3 +168,4 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ import os
|
|||||||
import pandas as pd
|
import pandas as pd
|
||||||
from .similarity import phrase_preprocessing, similarityCheck
|
from .similarity import phrase_preprocessing, similarityCheck
|
||||||
from .tfidfSimilarity import cosine_similarity
|
from .tfidfSimilarity import cosine_similarity
|
||||||
|
import json
|
||||||
from django.shortcuts import redirect
|
from django.shortcuts import redirect
|
||||||
|
|
||||||
from django.core.paginator import Paginator
|
from django.core.paginator import Paginator
|
||||||
@ -16,6 +16,8 @@ from .filters import StandardsFilter
|
|||||||
|
|
||||||
import uuid
|
import uuid
|
||||||
from datetime import date, timedelta
|
from datetime import date, timedelta
|
||||||
|
|
||||||
|
from django.core import serializers
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
|
||||||
|
|
||||||
@ -85,7 +87,7 @@ def tfidf(request):
|
|||||||
else:
|
else:
|
||||||
phrase = form.cleaned_data["phrase"]
|
phrase = form.cleaned_data["phrase"]
|
||||||
|
|
||||||
searchResults = cosine_similarity(20, phrase)
|
searchResults = cosine_similarity(30, phrase)
|
||||||
uid = str(uuid.uuid1())[:8]+phrase
|
uid = str(uuid.uuid1())[:8]+phrase
|
||||||
for result in searchResults:
|
for result in searchResults:
|
||||||
searchedData = SearchResults(
|
searchedData = SearchResults(
|
||||||
@ -111,6 +113,7 @@ def tfidf(request):
|
|||||||
|
|
||||||
results = SearchResults.objects.filter(uniqueID=uid)
|
results = SearchResults.objects.filter(uniqueID=uid)
|
||||||
|
|
||||||
|
|
||||||
if selectedChoices:
|
if selectedChoices:
|
||||||
results = SearchResults.objects.filter(uniqueID=uid)
|
results = SearchResults.objects.filter(uniqueID=uid)
|
||||||
myFilter = StandardsFilter(request.GET, queryset=results)
|
myFilter = StandardsFilter(request.GET, queryset=results)
|
||||||
@ -120,7 +123,7 @@ def tfidf(request):
|
|||||||
form = searchForm()
|
form = searchForm()
|
||||||
|
|
||||||
# Create pagination for results
|
# Create pagination for results
|
||||||
paginator = Paginator(results, per_page=5)
|
paginator = Paginator(results, per_page=10)
|
||||||
pageNumber = request.GET.get('page', 1)
|
pageNumber = request.GET.get('page', 1)
|
||||||
page_obj = paginator.get_page(pageNumber)
|
page_obj = paginator.get_page(pageNumber)
|
||||||
|
|
||||||
|
BIN
mydb.sqlite3
BIN
mydb.sqlite3
Binary file not shown.
Loading…
Reference in New Issue
Block a user