develop/soita-2.0 #36
@ -56,6 +56,7 @@ INSTALLED_APPS = [
|
||||
"django_extensions",
|
||||
"django_social_share",
|
||||
'fontawesomefree',
|
||||
"jquery",
|
||||
|
||||
"users",
|
||||
"trials",
|
||||
|
@ -16,12 +16,14 @@ Including another URLconf
|
||||
from django.contrib import admin
|
||||
from django.urls import include
|
||||
from django.urls import path
|
||||
from .views import home, welcome, help
|
||||
from .views import home, welcome, help, hard, popular
|
||||
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
|
||||
|
||||
urlpatterns = [
|
||||
path('', welcome, name='welcome'),
|
||||
path('home', home, name='home'),
|
||||
path('popular', popular, name='popular'),
|
||||
path('hard', hard, name='hard'),
|
||||
path('help', help, name='help'),
|
||||
path('users/', include("users.urls")),
|
||||
path('questions/', include("questions.urls")),
|
||||
|
@ -2,6 +2,7 @@ from django.shortcuts import render, redirect
|
||||
from django.template import loader
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from trials.models import Test
|
||||
import operator
|
||||
|
||||
|
||||
@login_required
|
||||
@ -18,6 +19,20 @@ def home(request):
|
||||
def help(request):
|
||||
return render(request, 'help.html', )
|
||||
|
||||
@login_required
|
||||
def popular(request):
|
||||
context = {}
|
||||
context['tests'] = Test.objects.filter(avg_rating__gt=0)
|
||||
context['tests'] = sorted(context['tests'], key=operator.attrgetter('avg_rating'), reverse=True)
|
||||
return render(request, 'popular.html', context)
|
||||
|
||||
@login_required
|
||||
def hard(request):
|
||||
context = {}
|
||||
context['tests'] = Test.objects.filter(difficulty_label__gt=0)
|
||||
context['tests'] = sorted(context['tests'], key=operator.attrgetter('difficulty_label'), reverse=True)
|
||||
return render(request, 'hard.html', context)
|
||||
|
||||
|
||||
def welcome(request):
|
||||
return render(request, 'welcome.html')
|
||||
|
21
static/script.js
Normal file
21
static/script.js
Normal file
@ -0,0 +1,21 @@
|
||||
//$(function() {
|
||||
// $(".newQuestionSection" ).draggable().resizable();
|
||||
//} );
|
||||
|
||||
var questionId = 1;
|
||||
|
||||
$('.addQuestionButton').click(function(){
|
||||
console.log("REEEEEEEE")
|
||||
// Clone extra box, and remove duplicate ids
|
||||
let clone = $("#question-copy").clone().removeAttr("hidden");
|
||||
clone.id = "question"- + ++questionId;
|
||||
//clone.find("*").removeAttr("id");
|
||||
clone.find("*").each(function() {
|
||||
$(this).attr("id", "q" + questionId + "-" + $(this).attr("id"));
|
||||
});
|
||||
clone.find("input:radio").each(function() {
|
||||
$(this).attr("name", questionId);
|
||||
});
|
||||
// append it to div
|
||||
$('#canvas').append(clone);
|
||||
});
|
@ -1,6 +1,6 @@
|
||||
.sidenav {
|
||||
height: 100%;
|
||||
width: 195px;
|
||||
width: 215px;
|
||||
position: fixed;
|
||||
z-index: 1;
|
||||
top: 0;
|
||||
@ -44,7 +44,7 @@
|
||||
}
|
||||
|
||||
.main {
|
||||
margin-left: 190px;
|
||||
margin-left: 215px;
|
||||
padding: 0px 40px;
|
||||
}
|
||||
|
||||
@ -515,6 +515,23 @@ background-color:#FF0B7E
|
||||
width: 500px;
|
||||
}
|
||||
|
||||
.newQuestionSection {
|
||||
border-radius: 25px;
|
||||
border: 2px solid #FF0B7E;
|
||||
padding: 20px;
|
||||
width: 750px;
|
||||
height: 350px;
|
||||
}
|
||||
|
||||
.questionSectionLabelText {
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.addQuestionButton {
|
||||
}
|
||||
|
||||
.editContainer {
|
||||
overflow: scroll;
|
||||
}
|
||||
|
@ -16,11 +16,14 @@
|
||||
|
||||
<body>
|
||||
<div class="sidenav">
|
||||
<a href="{% url 'home' %}">Strona główna</a>
|
||||
<a href="{% url 'newTest' %}">Stwórz test</a>
|
||||
<a href="{% url 'myTests' %}">Twoje testy</a>
|
||||
<a href="{% url 'solvedTests' %}">Wyniki testów</a>
|
||||
<a href="{% url 'help' %}">Pomoc</a>
|
||||
<a href="{% url 'home' %}"><i class="fa-solid fa-house"></i> Strona główna</a>
|
||||
<a href="{% url 'popular' %}"><i class="fa-solid fa-star"></i> Popularne </a>
|
||||
<a href="{% url 'hard' %}"><i class="fa-solid fa-fire-flame-curved"></i> Trudne </a>
|
||||
<a href="{% url 'home' %}"><i class="fa-solid fa-trophy"></i> Turnieje </a>
|
||||
<br>
|
||||
<a href="{% url 'newTest' %}"><i class="fa-solid fa-circle-plus"></i> Stwórz test</a>
|
||||
<a href="{% url 'myTests' %}"><i class="fa-solid fa-note-sticky"></i> Twoje testy</a>
|
||||
<a href="{% url 'solvedTests' %}"><i class="fa-solid fa-square-poll-horizontal"></i> Wyniki testów</a>
|
||||
<p>Kategorie</p>
|
||||
<a href="/category/JezykPolski">Język polski</a>
|
||||
<a href="/category/JezykAngielski">Język angielski</a>
|
||||
@ -34,14 +37,17 @@
|
||||
<a href="/category/Historia">Historia</a>
|
||||
<a href="/category/Inne">Inne</a>
|
||||
<p>Konto</p>
|
||||
<a href="/users/account">Ustawienia</a>
|
||||
<a href="/users/logout">Wyloguj</a>
|
||||
<a href="/users/account"><i class="fa-solid fa-gear"></i> Ustawienia</a>
|
||||
<a href="{% url 'help' %}"><i class="fa-solid fa-circle-question"></i> Pomoc</a>
|
||||
<a href="/users/logout"><i class="fa-solid fa-right-from-bracket"></i> Wyloguj</a>
|
||||
</div>
|
||||
|
||||
<div id="content", name="content", class="main">
|
||||
<div class="mainContainer">
|
||||
{% block content %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
@ -32,31 +32,31 @@
|
||||
<div class="mainTestMetaLineLabels">
|
||||
<div class="mainTestMetaLabels">
|
||||
Trudność:
|
||||
{% if test.avg_difficulty == 0.0 %}
|
||||
{% if test.difficulty_label == 0 %}
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Brak - za mało osób rozwiązało ten test"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Brak - za mało osób rozwiązało ten test"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Brak - za mało osób rozwiązało ten test"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Brak - za mało osób rozwiązało ten test"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Brak - za mało osób rozwiązało ten test"></span>
|
||||
{% elif test.avg_difficulty < 20.0 %}
|
||||
{% elif test.difficulty_label == 1 %}
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Bardzo trudny test, średni wynik użytkowników poniżej 20%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Bardzo trudny test, średni wynik użytkowników poniżej 20%">></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Bardzo trudny test, średni wynik użytkowników poniżej 20%">></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Bardzo trudny test, średni wynik użytkowników poniżej 20%">></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Bardzo trudny test, średni wynik użytkowników poniżej 20%">></span>
|
||||
{% elif test.avg_difficulty < 40.0 %}
|
||||
{% elif test.difficulty_label == 2 %}
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Trudny test, średni wynik użytkowników nie przekracza 40%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Trudny test, średni wynik użytkowników nie przekracza 40%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Trudny test, średni wynik użytkowników nie przekracza 40%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Trudny test, średni wynik użytkowników nie przekracza 40%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Trudny test, średni wynik użytkowników nie przekracza 40%"></span>
|
||||
{% elif test.avg_difficulty < 60.0 %}
|
||||
{% elif test.difficulty_label == 3 %}
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Przeciętny test, średni wynik użytkowników nie przekracza 60%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Przeciętny test, średni wynik użytkowników nie przekracza 60%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Przeciętny test, średni wynik użytkowników nie przekracza 60%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Przeciętny test, średni wynik użytkowników nie przekracza 60%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Przeciętny test, średni wynik użytkowników nie przekracza 60%"></span>
|
||||
{% elif test.avg_difficulty < 80.0 %}
|
||||
{% elif test.difficulty_label == 4 %}
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Łatwy test, średni wynik użytkowników nie przekracza 80%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Łatwy test, średni wynik użytkowników nie przekracza 80%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Łatwy test, średni wynik użytkowników nie przekracza 80%"></span>
|
||||
|
10
templates/createTestNew.html
Normal file
10
templates/createTestNew.html
Normal file
@ -0,0 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>$Title$</title>
|
||||
</head>
|
||||
<body>
|
||||
$END$
|
||||
</body>
|
||||
</html>
|
118
templates/hard.html
Normal file
118
templates/hard.html
Normal file
@ -0,0 +1,118 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Główna{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Najtrudniejsze testy:</h1>
|
||||
{% for test in tests %}
|
||||
<div class="mainTestContainer">
|
||||
<div class="mainTestName">
|
||||
{{test.name}}
|
||||
{% if test.password != "" %}
|
||||
<i class="fa-solid fa-lock locked" title="Test chroniony hasłem"></i>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="mainTestMeta">
|
||||
<div class="mainTestMetaLine">
|
||||
<div class="mainTestMetaInfoText">Kategoria: {{test.category}}</div>
|
||||
<div class="mainTestMetaInfoText">Autor: {{test.get_author_name}}</div>
|
||||
<div class="mainTestMetaInfoText">Rozwiązania: {{test.completions}}</div>
|
||||
</div>
|
||||
<div class="mainTestMetaLine">
|
||||
<div class="mainTestMetaInfoText">Próg zaliczenia: {{test.passing_score}}</div>
|
||||
<div class="mainTestMetaInfoText">Maksymalna ilość punktów: {{test.get_maxscore}}</div>
|
||||
<div class="mainTestMetaInfoText">Ilość pytań: {{test.question_count}}</div>
|
||||
</div>
|
||||
<div class="mainTestMetaLineLabels">
|
||||
<div class="mainTestMetaLabels">
|
||||
Trudność:
|
||||
{% if test.difficulty_label == 0 %}
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Brak - za mało osób rozwiązało ten test"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Brak - za mało osób rozwiązało ten test"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Brak - za mało osób rozwiązało ten test"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Brak - za mało osób rozwiązało ten test"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Brak - za mało osób rozwiązało ten test"></span>
|
||||
{% elif test.difficulty_label == 1 %}
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Bardzo trudny test, średni wynik użytkowników poniżej 20%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Bardzo trudny test, średni wynik użytkowników poniżej 20%">></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Bardzo trudny test, średni wynik użytkowników poniżej 20%">></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Bardzo trudny test, średni wynik użytkowników poniżej 20%">></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Bardzo trudny test, średni wynik użytkowników poniżej 20%">></span>
|
||||
{% elif test.difficulty_label == 2 %}
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Trudny test, średni wynik użytkowników nie przekracza 40%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Trudny test, średni wynik użytkowników nie przekracza 40%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Trudny test, średni wynik użytkowników nie przekracza 40%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Trudny test, średni wynik użytkowników nie przekracza 40%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Trudny test, średni wynik użytkowników nie przekracza 40%"></span>
|
||||
{% elif test.difficulty_label == 3 %}
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Przeciętny test, średni wynik użytkowników nie przekracza 60%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Przeciętny test, średni wynik użytkowników nie przekracza 60%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Przeciętny test, średni wynik użytkowników nie przekracza 60%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Przeciętny test, średni wynik użytkowników nie przekracza 60%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Przeciętny test, średni wynik użytkowników nie przekracza 60%"></span>
|
||||
{% elif test.difficulty_label == 4 %}
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Łatwy test, średni wynik użytkowników nie przekracza 80%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Łatwy test, średni wynik użytkowników nie przekracza 80%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Łatwy test, średni wynik użytkowników nie przekracza 80%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Łatwy test, średni wynik użytkowników nie przekracza 80%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Łatwy test, średni wynik użytkowników nie przekracza 80%"></span>
|
||||
{% else %}
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Banalny test, średni wynik użytkowników powyżej 80%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Banalny test, średni wynik użytkowników powyżej 80%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Banalny test, średni wynik użytkowników powyżej 80%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Banalny test, średni wynik użytkowników powyżej 80%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Banalny test, średni wynik użytkowników powyżej 80%"></span>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="mainTestMetaLabels">
|
||||
Ocena:
|
||||
{% if test.avg_rating == 0 %}
|
||||
<span class="fa fa-star" title="Użytkownicy jeszcze nie ocenili tego testu, bądź pierwszy"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy jeszcze nie ocenili tego testu, bądź pierwszy"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy jeszcze nie ocenili tego testu, bądź pierwszy"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy jeszcze nie ocenili tego testu, bądź pierwszy"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy jeszcze nie ocenili tego testu, bądź pierwszy"></span>
|
||||
{% elif test.avg_rating == 1 %}
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako tragiczny"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy ocenili ten test jako tragiczny"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy ocenili ten test jako tragiczny"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy ocenili ten test jako tragiczny"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy ocenili ten test jako tragiczny"></span>
|
||||
{% elif test.avg_rating == 2 %}
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako słaby"></span>
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako słaby"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy ocenili ten test jako słaby"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy ocenili ten test jako słaby"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy ocenili ten test jako słaby"></span>
|
||||
{% elif test.avg_rating == 3 %}
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako przeciętny"></span>
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako przeciętny"></span>
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako przeciętny"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy ocenili ten test jako przeciętny"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy ocenili ten test jako przeciętny"></span>
|
||||
{% elif test.avg_rating == 4 %}
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako dobry"></span>
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako dobry"></span>
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako dobry"></span>
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako dobry"></span>
|
||||
<span class="fa fa-star"></span>
|
||||
{% else %}
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako genialny"></span>
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako genialny"></span>
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako genialny"></span>
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako genialny"></span>
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako genialny"></span>
|
||||
{% endif %}
|
||||
(Głosy: {{test.rates_amount}})
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="mainTestDesc">-->
|
||||
<!-- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus volutpat scelerisque tortor, id sodales leo finibus id. Vivamus id viverra nunc, ac faucibus metus. Nulla a mauris imperdiet sapien lobortis dapibus. Quisque ornare posuere pulvinar.-->
|
||||
<!-- </div>-->
|
||||
<button><a href="/tests/{{test.id}}/password">Rozwiąż</a></button>
|
||||
</div>
|
||||
<br>
|
||||
{% endfor %}
|
||||
{% endblock %}
|
||||
|
@ -3,7 +3,7 @@
|
||||
{% block title %}Główna{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Rozwiąż jakiś test!</h1>
|
||||
<h1>Najnowsze testy:</h1>
|
||||
{% for test in tests %}
|
||||
<div class="mainTestContainer">
|
||||
<div class="mainTestName">
|
||||
@ -26,31 +26,31 @@
|
||||
<div class="mainTestMetaLineLabels">
|
||||
<div class="mainTestMetaLabels">
|
||||
Trudność:
|
||||
{% if test.avg_difficulty == 0.0 %}
|
||||
{% if test.difficulty_label == 0 %}
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Brak - za mało osób rozwiązało ten test"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Brak - za mało osób rozwiązało ten test"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Brak - za mało osób rozwiązało ten test"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Brak - za mało osób rozwiązało ten test"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Brak - za mało osób rozwiązało ten test"></span>
|
||||
{% elif test.avg_difficulty < 20.0 %}
|
||||
{% elif test.difficulty_label == 1 %}
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Bardzo trudny test, średni wynik użytkowników poniżej 20%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Bardzo trudny test, średni wynik użytkowników poniżej 20%">></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Bardzo trudny test, średni wynik użytkowników poniżej 20%">></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Bardzo trudny test, średni wynik użytkowników poniżej 20%">></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Bardzo trudny test, średni wynik użytkowników poniżej 20%">></span>
|
||||
{% elif test.avg_difficulty < 40.0 %}
|
||||
{% elif test.difficulty_label == 2 %}
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Trudny test, średni wynik użytkowników nie przekracza 40%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Trudny test, średni wynik użytkowników nie przekracza 40%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Trudny test, średni wynik użytkowników nie przekracza 40%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Trudny test, średni wynik użytkowników nie przekracza 40%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Trudny test, średni wynik użytkowników nie przekracza 40%"></span>
|
||||
{% elif test.avg_difficulty < 60.0 %}
|
||||
{% elif test.difficulty_label == 3 %}
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Przeciętny test, średni wynik użytkowników nie przekracza 60%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Przeciętny test, średni wynik użytkowników nie przekracza 60%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Przeciętny test, średni wynik użytkowników nie przekracza 60%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Przeciętny test, średni wynik użytkowników nie przekracza 60%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Przeciętny test, średni wynik użytkowników nie przekracza 60%"></span>
|
||||
{% elif test.avg_difficulty < 80.0 %}
|
||||
{% elif test.difficulty_label == 4 %}
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Łatwy test, średni wynik użytkowników nie przekracza 80%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Łatwy test, średni wynik użytkowników nie przekracza 80%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Łatwy test, średni wynik użytkowników nie przekracza 80%"></span>
|
||||
|
118
templates/popular.html
Normal file
118
templates/popular.html
Normal file
@ -0,0 +1,118 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Główna{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Najpopularniejsze testy:</h1>
|
||||
{% for test in tests %}
|
||||
<div class="mainTestContainer">
|
||||
<div class="mainTestName">
|
||||
{{test.name}}
|
||||
{% if test.password != "" %}
|
||||
<i class="fa-solid fa-lock locked" title="Test chroniony hasłem"></i>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="mainTestMeta">
|
||||
<div class="mainTestMetaLine">
|
||||
<div class="mainTestMetaInfoText">Kategoria: {{test.category}}</div>
|
||||
<div class="mainTestMetaInfoText">Autor: {{test.get_author_name}}</div>
|
||||
<div class="mainTestMetaInfoText">Rozwiązania: {{test.completions}}</div>
|
||||
</div>
|
||||
<div class="mainTestMetaLine">
|
||||
<div class="mainTestMetaInfoText">Próg zaliczenia: {{test.passing_score}}</div>
|
||||
<div class="mainTestMetaInfoText">Maksymalna ilość punktów: {{test.get_maxscore}}</div>
|
||||
<div class="mainTestMetaInfoText">Ilość pytań: {{test.question_count}}</div>
|
||||
</div>
|
||||
<div class="mainTestMetaLineLabels">
|
||||
<div class="mainTestMetaLabels">
|
||||
Trudność:
|
||||
{% if test.difficulty_label == 0 %}
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Brak - za mało osób rozwiązało ten test"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Brak - za mało osób rozwiązało ten test"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Brak - za mało osób rozwiązało ten test"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Brak - za mało osób rozwiązało ten test"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Brak - za mało osób rozwiązało ten test"></span>
|
||||
{% elif test.difficulty_label == 1 %}
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Bardzo trudny test, średni wynik użytkowników poniżej 20%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Bardzo trudny test, średni wynik użytkowników poniżej 20%">></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Bardzo trudny test, średni wynik użytkowników poniżej 20%">></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Bardzo trudny test, średni wynik użytkowników poniżej 20%">></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Bardzo trudny test, średni wynik użytkowników poniżej 20%">></span>
|
||||
{% elif test.difficulty_label == 2 %}
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Trudny test, średni wynik użytkowników nie przekracza 40%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Trudny test, średni wynik użytkowników nie przekracza 40%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Trudny test, średni wynik użytkowników nie przekracza 40%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Trudny test, średni wynik użytkowników nie przekracza 40%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Trudny test, średni wynik użytkowników nie przekracza 40%"></span>
|
||||
{% elif test.difficulty_label == 3 %}
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Przeciętny test, średni wynik użytkowników nie przekracza 60%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Przeciętny test, średni wynik użytkowników nie przekracza 60%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Przeciętny test, średni wynik użytkowników nie przekracza 60%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Przeciętny test, średni wynik użytkowników nie przekracza 60%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Przeciętny test, średni wynik użytkowników nie przekracza 60%"></span>
|
||||
{% elif test.difficulty_label == 4 %}
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Łatwy test, średni wynik użytkowników nie przekracza 80%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Łatwy test, średni wynik użytkowników nie przekracza 80%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Łatwy test, średni wynik użytkowników nie przekracza 80%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Łatwy test, średni wynik użytkowników nie przekracza 80%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved" title="Łatwy test, średni wynik użytkowników nie przekracza 80%"></span>
|
||||
{% else %}
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Banalny test, średni wynik użytkowników powyżej 80%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Banalny test, średni wynik użytkowników powyżej 80%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Banalny test, średni wynik użytkowników powyżej 80%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Banalny test, średni wynik użytkowników powyżej 80%"></span>
|
||||
<span class="fa-solid fa-fire-flame-curved fireChecked" title="Banalny test, średni wynik użytkowników powyżej 80%"></span>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="mainTestMetaLabels">
|
||||
Ocena:
|
||||
{% if test.avg_rating == 0 %}
|
||||
<span class="fa fa-star" title="Użytkownicy jeszcze nie ocenili tego testu, bądź pierwszy"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy jeszcze nie ocenili tego testu, bądź pierwszy"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy jeszcze nie ocenili tego testu, bądź pierwszy"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy jeszcze nie ocenili tego testu, bądź pierwszy"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy jeszcze nie ocenili tego testu, bądź pierwszy"></span>
|
||||
{% elif test.avg_rating == 1 %}
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako tragiczny"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy ocenili ten test jako tragiczny"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy ocenili ten test jako tragiczny"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy ocenili ten test jako tragiczny"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy ocenili ten test jako tragiczny"></span>
|
||||
{% elif test.avg_rating == 2 %}
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako słaby"></span>
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako słaby"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy ocenili ten test jako słaby"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy ocenili ten test jako słaby"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy ocenili ten test jako słaby"></span>
|
||||
{% elif test.avg_rating == 3 %}
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako przeciętny"></span>
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako przeciętny"></span>
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako przeciętny"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy ocenili ten test jako przeciętny"></span>
|
||||
<span class="fa fa-star" title="Użytkownicy ocenili ten test jako przeciętny"></span>
|
||||
{% elif test.avg_rating == 4 %}
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako dobry"></span>
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako dobry"></span>
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako dobry"></span>
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako dobry"></span>
|
||||
<span class="fa fa-star"></span>
|
||||
{% else %}
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako genialny"></span>
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako genialny"></span>
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako genialny"></span>
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako genialny"></span>
|
||||
<span class="fa fa-star starChecked" title="Użytkownicy ocenili ten test jako genialny"></span>
|
||||
{% endif %}
|
||||
(Głosy: {{test.rates_amount}})
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="mainTestDesc">-->
|
||||
<!-- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus volutpat scelerisque tortor, id sodales leo finibus id. Vivamus id viverra nunc, ac faucibus metus. Nulla a mauris imperdiet sapien lobortis dapibus. Quisque ornare posuere pulvinar.-->
|
||||
<!-- </div>-->
|
||||
<button><a href="/tests/{{test.id}}/password">Rozwiąż</a></button>
|
||||
</div>
|
||||
<br>
|
||||
{% endfor %}
|
||||
{% endblock %}
|
||||
|
@ -28,6 +28,7 @@ class Test(models.Model):
|
||||
total_rating = models.IntegerField(default=0)
|
||||
avg_rating = models.IntegerField(default=0)
|
||||
rates_amount = models.IntegerField(default=0)
|
||||
difficulty_label = models.IntegerField(default=0)
|
||||
avg_difficulty = models.FloatField(default=0.0)
|
||||
objects = TestManager()
|
||||
|
||||
|
@ -19,6 +19,14 @@ class TestSerializer(serializers.ModelSerializer):
|
||||
"questions",
|
||||
"visible",
|
||||
"category",
|
||||
"created_by",
|
||||
"completions",
|
||||
"total_percentage_scored_by_users",
|
||||
"total_rating",
|
||||
"avg_rating",
|
||||
"rates_amount",
|
||||
"difficulty_label",
|
||||
"avg_difficulty"
|
||||
)
|
||||
|
||||
def create(self, validated_data):
|
||||
|
@ -1,7 +1,7 @@
|
||||
from django.urls import path
|
||||
from rest_framework.routers import DefaultRouter
|
||||
|
||||
from trials.views import TestModelViewSet, TestTemplateView, TestValidateAPIView, TestResultView, rateTest, addTest, addQuestions, myTests, solvedTests, solvedTestsDetailed, EditTestTemplateView, deleteTest, AddQuestionToExistingTest, RemoveQuestionFromExistingTest, EditQuestionTemplateView, editName, editVisible, editPassword, TestPasswordTemplateView
|
||||
from trials.views import TestModelViewSet, TestTemplateView, TestValidateAPIView, TestResultView, rateTest, addTest, addTest2, addQuestions, myTests, solvedTests, solvedTestsDetailed, EditTestTemplateView, deleteTest, AddQuestionToExistingTest, RemoveQuestionFromExistingTest, EditQuestionTemplateView, editName, editVisible, editPassword, TestPasswordTemplateView
|
||||
|
||||
router = DefaultRouter(trailing_slash=False)
|
||||
router.register("items", TestModelViewSet)
|
||||
|
@ -18,12 +18,12 @@ from django.template import loader
|
||||
from django.template.loader import render_to_string, get_template
|
||||
from django.http import HttpRequest
|
||||
import requests
|
||||
from django.contrib.auth.decorators import login_required
|
||||
|
||||
|
||||
@login_required
|
||||
def addTest(request):
|
||||
return render(request, 'createTest.html')
|
||||
|
||||
|
||||
def is_visible(visible):
|
||||
if visible =="public":
|
||||
return True
|
||||
@ -144,14 +144,14 @@ class RemoveQuestionFromExistingTest(TemplateView):
|
||||
Question.objects.get(id=request.POST["id"]).delete()
|
||||
return redirect(f'/tests/{kwargs["test_id"]}/edit')
|
||||
|
||||
|
||||
@login_required
|
||||
def myTests(request):
|
||||
context = {}
|
||||
user = request.user.id
|
||||
context['tests'] = Test.objects.filter(created_by=user)
|
||||
return render(request, 'myTests.html', context)
|
||||
|
||||
|
||||
@login_required
|
||||
def solvedTests(request):
|
||||
context = {}
|
||||
user_id = request.user.id
|
||||
@ -180,7 +180,7 @@ def solvedTests(request):
|
||||
context['tests_lists'] = dict_with_lists_of_test_results
|
||||
return render(request, 'solvedTests.html', context)
|
||||
|
||||
|
||||
@login_required
|
||||
def solvedTestsDetailed(request, test_id):
|
||||
context = {}
|
||||
solved_tests = SolvedTest.objects.filter(test__id=test_id)
|
||||
@ -268,12 +268,12 @@ class EditQuestionTemplateView(TemplateView):
|
||||
Question.objects.EditQuestion(question_id=question_id, name=description, answers=answers)
|
||||
return redirect(f'/tests/{test}/edit')
|
||||
|
||||
|
||||
@login_required
|
||||
def deleteTest(request, test_id):
|
||||
Test.objects.filter(id=test_id).delete()
|
||||
return redirect('myTests')
|
||||
|
||||
|
||||
@login_required
|
||||
def editVisible(request, test_id):
|
||||
new_visible = request.GET["visible"]
|
||||
if new_visible == "public":
|
||||
@ -285,6 +285,7 @@ def editVisible(request, test_id):
|
||||
test.save()
|
||||
return redirect(f'/tests/{test_id}/edit')
|
||||
|
||||
@login_required
|
||||
def editName(request, test_id):
|
||||
new_name = request.GET["name"]
|
||||
test = Test.objects.get(id=test_id)
|
||||
@ -292,7 +293,7 @@ def editName(request, test_id):
|
||||
test.save()
|
||||
return redirect(f'/tests/{test_id}/edit')
|
||||
|
||||
|
||||
@login_required
|
||||
def editPassword(request, test_id):
|
||||
new_password = request.GET["password"]
|
||||
test = Test.objects.get(id=test_id)
|
||||
@ -300,7 +301,7 @@ def editPassword(request, test_id):
|
||||
test.save()
|
||||
return redirect(f'/tests/{test_id}/edit')
|
||||
|
||||
|
||||
@login_required
|
||||
def rateTest(request, test_id):
|
||||
test = Test.objects.get(id=test_id)
|
||||
rate = request.GET["rate"]
|
||||
@ -401,6 +402,7 @@ class TestTemplateView(TemplateView):
|
||||
return HttpResponseRedirect(f'result')
|
||||
|
||||
|
||||
@login_required
|
||||
def TestPasswordTemplateView(request, test_id):
|
||||
test = Test.objects.get(id=test_id)
|
||||
if test.password == "":
|
||||
@ -411,6 +413,7 @@ def TestPasswordTemplateView(request, test_id):
|
||||
return render(request, 'testPassword.html')
|
||||
|
||||
|
||||
@login_required
|
||||
def testView(request):
|
||||
permission_classes = []
|
||||
template_name = settings.BASE_DIR + f"/templates/generic_test.html"
|
||||
|
Loading…
Reference in New Issue
Block a user