diff --git a/server/config/settings/base.py b/server/config/settings/base.py index 9fd92a30..e6b7b7da 100644 --- a/server/config/settings/base.py +++ b/server/config/settings/base.py @@ -103,7 +103,6 @@ THIRD_PARTY_APPS = [ LOCAL_APPS = [ "vbv_lernwelt.core", - "vbv_lernwelt.simpletodo", "vbv_lernwelt.sso", "vbv_lernwelt.learnpath", "vbv_lernwelt.completion", diff --git a/server/config/urls.py b/server/config/urls.py index d5aeada9..c40bb6d3 100644 --- a/server/config/urls.py +++ b/server/config/urls.py @@ -34,7 +34,6 @@ urlpatterns = [ path('admin/raise_error/', user_passes_test(lambda u: u.is_superuser, login_url='/login/')(raise_example_error), ), path(settings.ADMIN_URL, admin.site.urls), path("checkratelimit/", check_rate_limit), - path("todo/", include("vbv_lernwelt.simpletodo.urls")), path("sso/", include("vbv_lernwelt.sso.urls")), path('cms/', include(wagtailadmin_urls)), path('documents/', include(wagtaildocs_urls)), diff --git a/server/vbv_lernwelt/completion/tests/test_api.py b/server/vbv_lernwelt/completion/tests/test_api.py index 22bcca73..de44fb6c 100644 --- a/server/vbv_lernwelt/completion/tests/test_api.py +++ b/server/vbv_lernwelt/completion/tests/test_api.py @@ -4,25 +4,21 @@ from rest_framework.test import APITestCase from vbv_lernwelt.core.create_default_users import create_default_users from vbv_lernwelt.core.models import User +from vbv_lernwelt.core.tests.helpers import create_locales_for_wagtail from vbv_lernwelt.learnpath.models import LearningContent -from vbv_lernwelt.learnpath.tests.create_default_learning_path import create_default_learning_path -from vbv_lernwelt.learnpath.tests.test_create_default_learning_path import create_locales_for_wagtail +from vbv_lernwelt.learnpath.tests.create_simple_test_learning_path import create_simple_test_learning_path class CompletionApiTestCase(APITestCase): - @classmethod - def setUpClass(cls) -> None: - super(CompletionApiTestCase, cls).setUpClass() + def setUp(self) -> None: create_locales_for_wagtail() create_default_users() - create_default_learning_path() - - def setUp(self) -> None: + create_simple_test_learning_path() self.user = User.objects.get(username='student') self.client.login(username='student', password='test') def test_completeLearningContent_works(self): - learning_content = LearningContent.objects.get(title='Einleitung Circle "Anlayse"') + learning_content = LearningContent.objects.get(title='Einleitung Circle "Unit-Test Circle"') learning_content_key = str(learning_content.translation_key) circle_key = str(learning_content.get_parent().translation_key) diff --git a/server/vbv_lernwelt/core/management/commands/cypress_reset.py b/server/vbv_lernwelt/core/management/commands/cypress_reset.py index dd456172..96e5f9a7 100644 --- a/server/vbv_lernwelt/core/management/commands/cypress_reset.py +++ b/server/vbv_lernwelt/core/management/commands/cypress_reset.py @@ -1,6 +1,6 @@ import djclick as click -from vbv_lernwelt.learnpath.tests.create_default_learning_path import create_default_learning_path, \ +from vbv_lernwelt.learnpath.create_default_learning_path import create_default_learning_path, \ delete_default_learning_path diff --git a/server/vbv_lernwelt/core/tests/helpers.py b/server/vbv_lernwelt/core/tests/helpers.py new file mode 100644 index 00000000..10b36959 --- /dev/null +++ b/server/vbv_lernwelt/core/tests/helpers.py @@ -0,0 +1,7 @@ +from django.conf import settings +from wagtail.models import Locale + + +def create_locales_for_wagtail(): + for language in settings.WAGTAIL_CONTENT_LANGUAGES: + Locale.objects.get_or_create(language_code=language[0]) diff --git a/server/vbv_lernwelt/core/tests/test_user.py b/server/vbv_lernwelt/core/tests/test_user.py deleted file mode 100644 index 442d7b34..00000000 --- a/server/vbv_lernwelt/core/tests/test_user.py +++ /dev/null @@ -1,16 +0,0 @@ -from django.test import TestCase - -from vbv_lernwelt.core.models import User -from vbv_lernwelt.core.tests.factories import UserFactory -from vbv_lernwelt.simpletodo.models import SimpleList - - -class TestUserCreation(TestCase): - def test_create_user(self): - User(last_name='Sepp').save() - - def test_simple(self): - # create_default_learning_path() - self.user = UserFactory() - SimpleList.objects.get_or_create(title='Default', user=self.user) - self.assertTrue(True) diff --git a/server/vbv_lernwelt/learnpath/tests/create_default_learning_path.py b/server/vbv_lernwelt/learnpath/create_default_learning_path.py similarity index 100% rename from server/vbv_lernwelt/learnpath/tests/create_default_learning_path.py rename to server/vbv_lernwelt/learnpath/create_default_learning_path.py diff --git a/server/vbv_lernwelt/learnpath/management/commands/create_default_learning_path.py b/server/vbv_lernwelt/learnpath/management/commands/create_default_learning_path.py index 13ef5e61..ba20d5fb 100644 --- a/server/vbv_lernwelt/learnpath/management/commands/create_default_learning_path.py +++ b/server/vbv_lernwelt/learnpath/management/commands/create_default_learning_path.py @@ -1,6 +1,6 @@ import djclick as click -from vbv_lernwelt.learnpath.tests.create_default_learning_path import create_default_learning_path +from vbv_lernwelt.learnpath.create_default_learning_path import create_default_learning_path @click.command() diff --git a/server/vbv_lernwelt/learnpath/management/commands/delete_default_learning_path.py b/server/vbv_lernwelt/learnpath/management/commands/delete_default_learning_path.py index c07106f5..bed10bfd 100644 --- a/server/vbv_lernwelt/learnpath/management/commands/delete_default_learning_path.py +++ b/server/vbv_lernwelt/learnpath/management/commands/delete_default_learning_path.py @@ -1,6 +1,6 @@ import djclick as click -from vbv_lernwelt.learnpath.tests.create_default_learning_path import delete_default_learning_path +from vbv_lernwelt.learnpath.create_default_learning_path import delete_default_learning_path @click.command() diff --git a/server/vbv_lernwelt/learnpath/models.py b/server/vbv_lernwelt/learnpath/models.py index 14fb1f64..78688654 100644 --- a/server/vbv_lernwelt/learnpath/models.py +++ b/server/vbv_lernwelt/learnpath/models.py @@ -1,13 +1,12 @@ -# Create your models here. - +from django.db import models from django.utils.text import slugify from wagtail import blocks +from wagtail.admin.panels import FieldPanel, StreamFieldPanel from wagtail.blocks import StreamBlock from wagtail.fields import StreamField from wagtail.images.blocks import ImageChooserBlock from wagtail.models import Page, Orderable -from vbv_lernwelt.learnpath.models_competences import * from vbv_lernwelt.learnpath.models_learning_unit_content import WebBasedTrainingBlock, VideoBlock, PodcastBlock, \ CompetenceBlock, ExerciseBlock, DocumentBlock, KnowledgeBlock from vbv_lernwelt.learnpath.serializer_helpers import get_it_serializer_class diff --git a/server/vbv_lernwelt/learnpath/models_competences.py b/server/vbv_lernwelt/learnpath/models_competences.py deleted file mode 100644 index d90f7a2f..00000000 --- a/server/vbv_lernwelt/learnpath/models_competences.py +++ /dev/null @@ -1,66 +0,0 @@ -from django.db import models -from wagtail.models import Page, Orderable -from modelcluster.fields import ParentalKey -from wagtail.admin.panels import FieldPanel, StreamFieldPanel, InlinePanel - - -class CompetencePage(Page): - """This is the page where the competences and Fullfillment criterias are manged - For one Learning Path""" - - - content_panels = Page.content_panels + [ - InlinePanel('competences', label="Competences"), - ] - - subpage_types = ['learnpath.Circle'] - - parent_page_types = ['learnpath.LearningPath'] - - - class Meta: - verbose_name = "Learning Path" - - def __str__(self): - return f"{self.title}" - - -class Competence(Orderable): - """ In VBV Terms this is a "Handlungskompetenz""" - category_short = models.CharField(max_length=3, default='') - name = models.CharField(max_length=2048) - - - competence_page = ParentalKey('learnpath.CompetencePage', - null=True, - blank=True, - on_delete=models.CASCADE, - related_name='competences', - ) - - - - def get_short_info(self): - return f"{self.category_short}{self.sort_order}" - - def __str__(self): - return f"{self.get_short_info()}: {self.name}" - - - class Meta: - verbose_name = "Competence" - - -class FullfillmentCriteria(Orderable): - """ VBV Term Leistungskriterium""" - name = models.CharField(max_length=2048) - competence = models.ForeignKey(Competence, on_delete=models.CASCADE, null=True) - - def get_short_info(self): - return f"{self.competence.get_short_info()}.{self.sort_order}" - - def __str__(self): - return f"{self.get_short_info()}: {self.name}" - - class Meta: - verbose_name = "Fullfillment Criteria" diff --git a/server/vbv_lernwelt/learnpath/tests/competences.json b/server/vbv_lernwelt/learnpath/tests/competences.json deleted file mode 100644 index b50e04e5..00000000 --- a/server/vbv_lernwelt/learnpath/tests/competences.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "competences": [ - { - "name": "Weiterempfehlung für Neukunden generieren", - "category_short": "A", - "fullfillment_criteria": [ - { - "name": "bestehende Kunden so zu beraten, dass sie von diesen weiterempfohlen werden" - }, - { - "name": "geeignete Personen wie z.B. Garagisten, Architekten, Treuhänder auf die Vermittlung/Zusammenarbeit anzusprechen" - }, - { - "name": "verschiedene Datenquellen wie Internet, Telefonbuch, Handelszeitung, Baugesuche etc. gezielt für die Gewinnung von Neukunden zu benützen" - }, - { - "name": "ein beliebiges Gespräch resp. einen bestehenden Kontakt in die Richtung «Versicherung» zu lenken" - }, - { - "name": "das Thema Risiko und Sicherheit in einem Gespräch gezielt und auf die Situation des jeweiligen Gesprächspartners bezogen einfliessen zu lassen" - }, - { - "name": "im täglichen Kontakt potentielle Kundinnen und Kunden zu erkennen" - } - ] - }, - { - "name": "Kundengespräche vereinbaren", - "category_short": "A", - "fullfillment_criteria": [ - { - "name": "je nach (Neu-) Kunde Form und Ort für das Gespräch festzulegen" - }, - { - "name": "sich intern und extern die nötigen Informationen über den (Neu-) Kunde zu beschaffen" - }, - { - "name": "die Terminierung auf ein bestimmtes Thema wie z.B. Rechtsschutz, Vorsorge, Krankenversicherung etc. auszurichten" - }, - { - "name": "für das zu führende Gespräch eine Agenda zu erstellen" - }, - { - "name": "für das zu führende Gespräch geeignete Hilfsmittel und Unterlagen zusammenzustellen" - }, { - "name": "eine Kaltakquise durchzuführen und auf mögliche Einwände reagieren zu können" - } -] - - }, - { - "name": "Auftritt in den sozialen Medien zeitgemäss halten", - "category_short": "A", - "fullfillment_criteria": [ { - "name": "in Zusammenarbeit mit den IT-Spezialisten und der Marketingabteilung die Inhalte für den zu realisierenden Medienauftritt zielgruppengerecht festzulegen" - }, - { - "name": "für die verschiedenen Kundensegmente die passenden sozialen Medien zu definieren" - }, - { - "name": "die Inhalte compliant zu halten" - } - ] - }, - { - "name": "Kundendaten erfassen", - "category_short": "A", - "fullfillment_criteria": [] - }, - { - "name": "Wünsche, Ziele und Bedürfnisse der Kunden im Gespräch ermitteln", - "category_short": "B", - "fullfillment_criteria": [] - } - ] -} - - diff --git a/server/vbv_lernwelt/learnpath/tests/competences_factories.py b/server/vbv_lernwelt/learnpath/tests/competences_factories.py deleted file mode 100644 index fd6ed29e..00000000 --- a/server/vbv_lernwelt/learnpath/tests/competences_factories.py +++ /dev/null @@ -1,30 +0,0 @@ -import factory -import wagtail_factories - -from vbv_lernwelt.learnpath.models_competences import Competence, FullfillmentCriteria, CompetencePage -from vbv_lernwelt.learnpath.tests.learning_path_factories import LearningPathFactory - - -class CompetencePageFactory(wagtail_factories.PageFactory): - # learning_path = factory.SubFactory(LearningPathFactory) - - class Meta: - model = CompetencePage - - -class CompetenceFactory(factory.django.DjangoModelFactory): - category_short = 'A' - name = "Weiterempfehung für neukunden generieren" - competence_page = factory.SubFactory(CompetencePageFactory) - - class Meta: - model = Competence - - -class FullfilmentCriteriaFactory(factory.django.DjangoModelFactory): - name = 'Bestehende Kunden so zu beraten, dass sie von diesen weiterempfohlen werden' - competence = factory.SubFactory(CompetenceFactory) - - class Meta: - model = FullfillmentCriteria - diff --git a/server/vbv_lernwelt/learnpath/tests/create_default_competences.py b/server/vbv_lernwelt/learnpath/tests/create_default_competences.py deleted file mode 100644 index 9a8716ae..00000000 --- a/server/vbv_lernwelt/learnpath/tests/create_default_competences.py +++ /dev/null @@ -1,23 +0,0 @@ -import json - - -import os.path - -from vbv_lernwelt.learnpath.tests.competences_factories import CompetenceFactory, FullfilmentCriteriaFactory - -competences_file = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'competences.json') - - -def create_default_competences(competences_json=competences_file): - with open(competences_json) as f: - competences_json = json.load(f) - - for index, compentence in enumerate(competences_json['competences']): - - competence_model = CompetenceFactory(name=compentence['name'], category_short=compentence['category_short'], sort_order=index) - print(competence_model) - - for criteria_index, criteria in enumerate(compentence['fullfillment_criteria']): - criteria_model = FullfilmentCriteriaFactory(name=criteria['name'], competence=competence_model, sort_order=criteria_index) - print(criteria_model) - diff --git a/server/vbv_lernwelt/learnpath/tests/grapple_test.http b/server/vbv_lernwelt/learnpath/tests/grapple_test.http deleted file mode 100644 index 883b9d03..00000000 --- a/server/vbv_lernwelt/learnpath/tests/grapple_test.http +++ /dev/null @@ -1,20 +0,0 @@ -GET http://localhost:8000/graphql/ -Accept: application/json - -### -{ - page(id: 8) { - - children { - __typename - id - title - children { - __typename - - id - title - } - } - } -} diff --git a/server/vbv_lernwelt/learnpath/tests/grapple_test.txt b/server/vbv_lernwelt/learnpath/tests/grapple_test.txt deleted file mode 100644 index 51917e32..00000000 --- a/server/vbv_lernwelt/learnpath/tests/grapple_test.txt +++ /dev/null @@ -1,17 +0,0 @@ -{ - page(id: 8) { - - children { - __typename - id - title - children { - __typename - - id - title - } - } - } -} - diff --git a/server/vbv_lernwelt/learnpath/tests/test_api.py b/server/vbv_lernwelt/learnpath/tests/test_api.py index 8b412f7e..dad7a7e5 100644 --- a/server/vbv_lernwelt/learnpath/tests/test_api.py +++ b/server/vbv_lernwelt/learnpath/tests/test_api.py @@ -2,44 +2,30 @@ from rest_framework.test import APITestCase from vbv_lernwelt.core.admin import User from vbv_lernwelt.core.create_default_users import create_default_users -from vbv_lernwelt.learnpath.models import LearningPath, Circle -from vbv_lernwelt.learnpath.tests.create_default_learning_path import create_default_learning_path -from vbv_lernwelt.learnpath.tests.test_create_default_learning_path import create_locales_for_wagtail +from vbv_lernwelt.core.tests.helpers import create_locales_for_wagtail +from vbv_lernwelt.learnpath.models import LearningPath +from vbv_lernwelt.learnpath.tests.create_simple_test_learning_path import create_simple_test_learning_path class TestRetrieveLearingPathContents(APITestCase): - @classmethod - def setUpClass(cls) -> None: - super(TestRetrieveLearingPathContents, cls).setUpClass() + def setUp(self) -> None: create_locales_for_wagtail() create_default_users() - create_default_learning_path() + create_simple_test_learning_path() - def setUp(self) -> None: - qs = LearningPath.objects.filter(title="Versicherungsvermittler/in") - self.credentials = { - 'username': 'admin', - 'password': 'admin'} + self.user = User.objects.get(username='student') + self.client.login(username='student', password='test') - user = User.objects.get(username='admin') - self.client.force_authenticate(user=user) - self.client.post('/login/', self.credentials, follow=True) - - def test_get_circle(self): - circle = Circle.objects.get(slug='analyse') - response = self.client.get(f'/wagtailapi/v2/pages/{circle.id}/') + def test_get_learnpathPage(self): + learning_path = LearningPath.objects.get(slug='unit-test-lernpfad') + response = self.client.get('/learnpath/api/page/unit-test-lernpfad/') + print(response) self.assertEqual(response.status_code, 200) - self.assertEqual(response.data['title'], 'Analyse') + data = response.json() + # print(data) - def test_get_circle_has_learning_sequences(self): - circle = Circle.objects.get(slug='analyse') - response = self.client.get(f'/wagtailapi/v2/pages/{circle.id}/') - self.assertTrue(len(response.data['learning_sequences']) > 2) - self.assertEqual(response.data['learning_sequences'][0]['title'], 'Starten') - - - def test_get_circle_has_learning_sequences_learningpackages(self): - circle = Circle.objects.get(slug='analyse') - response = self.client.get(f'/wagtailapi/v2/pages/{circle.id}/') - self.assertTrue(len(response.data['learning_sequences'][0]['learnging_packages']) > 1) - self.assertTrue(response.data['learning_sequences'][0]['learnging_packages'][0]['title']) + self.assertEqual(learning_path.title, data['title']) + # topic and circle + self.assertEqual(2, len(data['children'])) + # circle "unit-test-circle" contents + self.assertEqual(13, len(data['children'][1]['children'])) diff --git a/server/vbv_lernwelt/learnpath/tests/test_competences_factories.py b/server/vbv_lernwelt/learnpath/tests/test_competences_factories.py deleted file mode 100644 index baf72c70..00000000 --- a/server/vbv_lernwelt/learnpath/tests/test_competences_factories.py +++ /dev/null @@ -1,18 +0,0 @@ -from django.test import TestCase - -from vbv_lernwelt.learnpath.models_competences import Competence, FullfillmentCriteria -from vbv_lernwelt.learnpath.tests.competences_factories import CompetencePageFactory, CompetenceFactory, \ - FullfilmentCriteriaFactory - - -class TestCompetencesFactories(TestCase): - def test_create_competences_page(self): - CompetencePageFactory() - - def test_create_competence(self): - CompetenceFactory(name='Boogie Woogie') - self.assertEqual(Competence.objects.filter(name='Boogie Woogie').count(), 1) - - def test_create_fullfillment_criteria(self): - FullfilmentCriteriaFactory(name='shuffle like ...') - self.assertEqual(FullfillmentCriteria.objects.filter(name='shuffle like ...').count(), 1) diff --git a/server/vbv_lernwelt/learnpath/tests/test_create_default_competences.py b/server/vbv_lernwelt/learnpath/tests/test_create_default_competences.py deleted file mode 100644 index d1b63399..00000000 --- a/server/vbv_lernwelt/learnpath/tests/test_create_default_competences.py +++ /dev/null @@ -1,12 +0,0 @@ -from django.test import TestCase - -from vbv_lernwelt.learnpath.tests.create_default_competences import create_default_competences - - -class TestCreateDefaultCompetences(TestCase): - def test_create_default_competeneces(self): - create_default_competences() - - - - diff --git a/server/vbv_lernwelt/learnpath/tests/test_create_default_learning_path.py b/server/vbv_lernwelt/learnpath/tests/test_create_default_learning_path.py deleted file mode 100644 index c58552f1..00000000 --- a/server/vbv_lernwelt/learnpath/tests/test_create_default_learning_path.py +++ /dev/null @@ -1,23 +0,0 @@ -from django.conf import settings -from django.test import TestCase -from wagtail.models import Locale - -from vbv_lernwelt.core.create_default_users import create_default_users -from vbv_lernwelt.learnpath.models import LearningPath -from vbv_lernwelt.learnpath.tests.create_default_learning_path import create_default_learning_path - - -class TestCreateDefaultLearningPaths(TestCase): - def setUp(self) -> None: - create_default_users() - create_locales_for_wagtail() - - def test_create_learning_path(self): - create_default_learning_path() - qs = LearningPath.objects.filter(title="Versicherungsvermittler/in") - self.assertTrue(qs.exists()) - - -def create_locales_for_wagtail(): - for language in settings.WAGTAIL_CONTENT_LANGUAGES: - Locale.objects.get_or_create(language_code=language[0]) diff --git a/server/vbv_lernwelt/learnpath/tests/test_factories.py b/server/vbv_lernwelt/learnpath/tests/test_factories.py deleted file mode 100644 index 33212a11..00000000 --- a/server/vbv_lernwelt/learnpath/tests/test_factories.py +++ /dev/null @@ -1,9 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Iterativ GmbH -# http://www.iterativ.ch/ -# -# Copyright (c) 2015 Iterativ GmbH. All rights reserved. -# -# Created on 2022-03-29 -# @author: lorenz.padberg@iterativ.ch diff --git a/server/vbv_lernwelt/media_library/tests.py b/server/vbv_lernwelt/media_library/tests.py deleted file mode 100644 index 7ce503c2..00000000 --- a/server/vbv_lernwelt/media_library/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff --git a/server/vbv_lernwelt/media_library/tests/test_create_default_documents.py b/server/vbv_lernwelt/media_library/tests/test_create_default_documents.py index 0d74e807..48750c54 100644 --- a/server/vbv_lernwelt/media_library/tests/test_create_default_documents.py +++ b/server/vbv_lernwelt/media_library/tests/test_create_default_documents.py @@ -1,9 +1,8 @@ -from django.conf import settings from django.test import TestCase from wagtail.core.models import Collection -from wagtail.models import Locale from vbv_lernwelt.core.create_default_users import create_default_users +from vbv_lernwelt.core.tests.helpers import create_locales_for_wagtail from vbv_lernwelt.media_library.create_default_documents import create_default_collections, create_default_documents from vbv_lernwelt.media_library.models import LibraryDocument @@ -24,8 +23,3 @@ class TestCreateDefaultDocuments(TestCase): create_default_documents() qs = LibraryDocument.objects.all() self.assertTrue(qs.exists()) - - -def create_locales_for_wagtail(): - for language in settings.WAGTAIL_CONTENT_LANGUAGES: - Locale.objects.get_or_create(language_code=language[0]) diff --git a/server/vbv_lernwelt/simpletodo/__init__.py b/server/vbv_lernwelt/simpletodo/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/server/vbv_lernwelt/simpletodo/admin.py b/server/vbv_lernwelt/simpletodo/admin.py deleted file mode 100644 index e18c8a68..00000000 --- a/server/vbv_lernwelt/simpletodo/admin.py +++ /dev/null @@ -1,39 +0,0 @@ -# Register your models here. -from django.contrib import admin - -from .models import SimpleTask, SimpleList - - -@admin.register(SimpleList) -class SimpleListAdmin(admin.ModelAdmin): - list_display = [ - "title", - "user", - "created", - ] - list_filter = [ - "user", - ] - search_fields = [ - "title", - ] - - -@admin.register(SimpleTask) -class SimpleTaskAdmin(admin.ModelAdmin): - date_hierarchy = "deadline" - list_display = [ - "title", - "deadline", - "created", - "list", - "done", - ] - list_filter = [ - "list", - "done", - ] - search_fields = [ - "title", - "text", - ] diff --git a/server/vbv_lernwelt/simpletodo/apps.py b/server/vbv_lernwelt/simpletodo/apps.py deleted file mode 100644 index 45efffa1..00000000 --- a/server/vbv_lernwelt/simpletodo/apps.py +++ /dev/null @@ -1,6 +0,0 @@ -from django.apps import AppConfig - - -class SimpletodoConfig(AppConfig): - default_auto_field = "django.db.models.BigAutoField" - name = "vbv_lernwelt.simpletodo" diff --git a/server/vbv_lernwelt/simpletodo/migrations/0001_initial.py b/server/vbv_lernwelt/simpletodo/migrations/0001_initial.py deleted file mode 100644 index e850a29e..00000000 --- a/server/vbv_lernwelt/simpletodo/migrations/0001_initial.py +++ /dev/null @@ -1,105 +0,0 @@ -# Generated by Django 3.2.12 on 2022-02-03 20:37 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion -import django.utils.timezone -import model_utils.fields -import uuid - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name="SimpleList", - fields=[ - ( - "created", - model_utils.fields.AutoCreatedField( - default=django.utils.timezone.now, - editable=False, - verbose_name="created", - ), - ), - ( - "modified", - model_utils.fields.AutoLastModifiedField( - default=django.utils.timezone.now, - editable=False, - verbose_name="modified", - ), - ), - ( - "id", - models.UUIDField( - default=uuid.uuid4, - editable=False, - primary_key=True, - serialize=False, - ), - ), - ("title", models.CharField(max_length=255)), - ( - "user", - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - to=settings.AUTH_USER_MODEL, - ), - ), - ], - options={ - "abstract": False, - }, - ), - migrations.CreateModel( - name="SimpleTask", - fields=[ - ( - "created", - model_utils.fields.AutoCreatedField( - default=django.utils.timezone.now, - editable=False, - verbose_name="created", - ), - ), - ( - "modified", - model_utils.fields.AutoLastModifiedField( - default=django.utils.timezone.now, - editable=False, - verbose_name="modified", - ), - ), - ( - "id", - models.UUIDField( - default=uuid.uuid4, - editable=False, - primary_key=True, - serialize=False, - ), - ), - ("title", models.CharField(max_length=255)), - ("text", models.TextField(blank=True, default="")), - ("done", models.BooleanField(default=False)), - ("deadline", models.DateTimeField(blank=True, null=True)), - ( - "list", - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - to="simpletodo.simplelist", - ), - ), - ], - options={ - "abstract": False, - }, - ), - ] diff --git a/server/vbv_lernwelt/simpletodo/migrations/__init__.py b/server/vbv_lernwelt/simpletodo/migrations/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/server/vbv_lernwelt/simpletodo/models.py b/server/vbv_lernwelt/simpletodo/models.py deleted file mode 100644 index 042b46b1..00000000 --- a/server/vbv_lernwelt/simpletodo/models.py +++ /dev/null @@ -1,24 +0,0 @@ -import uuid - -from django.conf import settings -from django.db import models -from model_utils.models import TimeStampedModel - - -class SimpleList(TimeStampedModel): - id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) - title = models.CharField(max_length=255) - user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) - - def __str__(self): - return f"{self.title} ({self.user})" - - -class SimpleTask(TimeStampedModel): - id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) - title = models.CharField(max_length=255) - text = models.TextField(blank=True, default="") - done = models.BooleanField(default=False) - deadline = models.DateTimeField(blank=True, null=True) - - list = models.ForeignKey(SimpleList, on_delete=models.CASCADE) diff --git a/server/vbv_lernwelt/simpletodo/serializers.py b/server/vbv_lernwelt/simpletodo/serializers.py deleted file mode 100644 index d3c52c84..00000000 --- a/server/vbv_lernwelt/simpletodo/serializers.py +++ /dev/null @@ -1,41 +0,0 @@ -import structlog -from rest_framework import serializers -from rest_framework.serializers import ModelSerializer - -from vbv_lernwelt.simpletodo.models import SimpleTask, SimpleList - -logger = structlog.get_logger(__name__) - - -class SimpleTaskSerializer(ModelSerializer): - list_title = serializers.CharField(max_length=100) - - class Meta: - model = SimpleTask - fields = [ - "id", - "title", - "text", - "done", - "deadline", - "list_title", - ] - - def create(self, validated_data): - user = validated_data.pop("user", None) - if user is None: - raise serializers.ValidationError("User is required") - - list_title = validated_data.pop("list_title") - simple_list, _ = SimpleList.objects.get_or_create(title=list_title, user=user) - - validated_data["list"] = simple_list - - logger.debug( - "Creating task", - label="simpletodo", - dt={"s1": 3, "s2": 4}, - title=validated_data.get("title"), - list_title=list_title, - ) - return super().create(validated_data) diff --git a/server/vbv_lernwelt/simpletodo/templates/simpletodo/index.html b/server/vbv_lernwelt/simpletodo/templates/simpletodo/index.html deleted file mode 100644 index 75fd8ad3..00000000 --- a/server/vbv_lernwelt/simpletodo/templates/simpletodo/index.html +++ /dev/null @@ -1,17 +0,0 @@ -{% extends "base.html" %} - - -{% block content %} - -
- {% else %} -
- {% endif %} - {{ task.title }} -
- - - -