From b837addd84472464f6700f5a6ab539c0332d57f8 Mon Sep 17 00:00:00 2001 From: Piotr Kopycki Date: Sat, 8 Jan 2022 22:15:30 +0100 Subject: [PATCH] Category model update --- categories/urls.py | 7 ++++- categories/views.py | 10 +++++++ config/urls.py | 2 +- templates/base.html | 20 +++++++------- templates/category.html | 26 +++++++++++++++++++ templates/home.html | 2 +- trials/migrations/0006_alter_test_category.py | 19 ++++++++++++++ trials/models.py | 13 +++++----- trials/serializers.py | 2 +- 9 files changed, 81 insertions(+), 20 deletions(-) create mode 100644 templates/category.html create mode 100644 trials/migrations/0006_alter_test_category.py diff --git a/categories/urls.py b/categories/urls.py index 5757d97..5cd5b3e 100644 --- a/categories/urls.py +++ b/categories/urls.py @@ -1,8 +1,13 @@ from rest_framework.routers import DefaultRouter +from django.urls import path -from categories.views import CategoryModelViewSet +from categories.views import CategoryModelViewSet, category router = DefaultRouter(trailing_slash=False) router.register("items", CategoryModelViewSet) +urlpatterns = [ + path('', category), +] + urlpatterns = router.urls diff --git a/categories/views.py b/categories/views.py index 007b918..17c5326 100644 --- a/categories/views.py +++ b/categories/views.py @@ -3,7 +3,17 @@ from rest_framework import viewsets from categories.models import Category from categories.serializers import CategorySerializer +from django.contrib.auth.decorators import login_required +from django.shortcuts import render, redirect +from django.template import loader class CategoryModelViewSet(viewsets.ModelViewSet): queryset = Category.objects.all() serializer_class = CategorySerializer + +@login_required +def category(request, category_name): + context = {} + context['name'] = category_name + context['tests'] = Test.objects.all(category=category_name) + return render(request, 'category.html', context) \ No newline at end of file diff --git a/config/urls.py b/config/urls.py index 8dbd9b2..9268279 100644 --- a/config/urls.py +++ b/config/urls.py @@ -25,5 +25,5 @@ urlpatterns = [ path('questions/', include("questions.urls")), path('answers/', include("answers.urls")), path('tests/', include("trials.urls")), - path('categories/', include("categories.urls")), + path('category/', include("categories.urls")), ] diff --git a/templates/base.html b/templates/base.html index 746ce22..da8c1ab 100644 --- a/templates/base.html +++ b/templates/base.html @@ -46,16 +46,16 @@ Create test Your tests

Categories

- Język polski - Język angielski - Język niemiecki - Matematyka - Informatyka - Fizyka - Chemia - Biologia - Geografia - Historia + Język polski + Język angielski + Język niemiecki + Matematyka + Informatyka + Fizyka + Chemia + Biologia + Geografia + Historia

Account

Settings Logout diff --git a/templates/category.html b/templates/category.html new file mode 100644 index 0000000..3e16106 --- /dev/null +++ b/templates/category.html @@ -0,0 +1,26 @@ +{% extends "base.html" %} + +{% block title %}Category - {{name}}{% endblock %} + +{% block content %} +

Tests in {{name}} category

+ {% for test in tests %} +
+
+ {{test.name}} +
+
+ Category: {{test.category}} +
+
+ + 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. +
+
+ Passing score: {{test.passing_score}} +
+ +
+
+ {% endfor %} +{% endblock %} \ No newline at end of file diff --git a/templates/home.html b/templates/home.html index fe9dd41..f39b49c 100644 --- a/templates/home.html +++ b/templates/home.html @@ -10,7 +10,7 @@ {{test.name}}
- Category: {{test.category.name}} + Category: {{test.category}}
diff --git a/trials/migrations/0006_alter_test_category.py b/trials/migrations/0006_alter_test_category.py new file mode 100644 index 0000000..a785ddd --- /dev/null +++ b/trials/migrations/0006_alter_test_category.py @@ -0,0 +1,19 @@ +# Generated by Django 3.2.9 on 2022-01-08 18:07 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('trials', '0005_test_category'), + ] + + operations = [ + migrations.AlterField( + model_name='test', + name='category', + field=models.CharField(default='Matematyka', max_length=100), + preserve_default=False, + ), + ] diff --git a/trials/models.py b/trials/models.py index eea91b9..5d378f2 100644 --- a/trials/models.py +++ b/trials/models.py @@ -5,12 +5,13 @@ from .managers import TestManager class Test(models.Model): name = models.CharField(max_length=100) passing_score = models.PositiveSmallIntegerField(default=0) - category = models.ForeignKey( - "categories.Category", - on_delete=models.SET_NULL, - null=True, - related_name="tests" - ) + # category = models.ForeignKey( + # "categories.Category", + # on_delete=models.SET_NULL, + # null=True, + # related_name="tests" + # ) + category = models.CharField(max_length=100) objects = TestManager() diff --git a/trials/serializers.py b/trials/serializers.py index b5496eb..eb149d2 100644 --- a/trials/serializers.py +++ b/trials/serializers.py @@ -8,7 +8,7 @@ from categories.serializers import CategorySerializer class TestSerializer(serializers.ModelSerializer): questions = QuestionSerializer(many=True, required=False) - category = CategorySerializer(required=False) + #category = CategorySerializer(required=False) class Meta: model = Test