import logging from django.db import transaction from django.db.models import QuerySet from django.http import HttpRequest, HttpResponse, HttpResponseRedirect from django.urls import reverse from django.views import generic from .models import Teil logger = logging.getLogger(__name__) class ListView(generic.ListView): template_name = "collector/index.html" context_object_name = "teile_list" def get_queryset(self) -> QuerySet: return Teil.objects.order_by("-modified") class IndexView(ListView): def get_queryset(self) -> QuerySet: return super().get_queryset()[:10] class DetailView(generic.DetailView): model = Teil template_name = "collector/detail.html" def enter(request: HttpRequest) -> HttpResponse: try: with transaction.atomic(): Teil.objects.create(name=request.POST["new_name"]) except Exception: logger.warning("Teil already existed") return HttpResponseRedirect(reverse("collector:index"))