Sifrovacka Seznamy #94

Merged
zelvuska merged 3 commits from sifrovacka_seznamy into master 2025-03-28 22:32:51 +01:00
4 changed files with 23 additions and 3 deletions
Showing only changes of commit c5b5813d75 - Show all commits

View file

@ -1,8 +1,9 @@
from django.contrib import admin from django.contrib import admin
from .models import OdpovedUcastnika, SpravnaOdpoved, NapovezenoUcastnikovi, Napoveda from .models import OdpovedUcastnika, SpravnaOdpoved, NapovezenoUcastnikovi, Napoveda, SeznamSifer
admin.site.register(OdpovedUcastnika) admin.site.register(OdpovedUcastnika)
admin.site.register(SpravnaOdpoved) admin.site.register(SpravnaOdpoved)
admin.site.register(Napoveda) admin.site.register(Napoveda)
admin.site.register(NapovezenoUcastnikovi) admin.site.register(NapovezenoUcastnikovi)
admin.site.register(SeznamSifer)

View file

@ -39,3 +39,10 @@ class Napoveda(models.Model):
def __str__(self): def __str__(self):
return f"{self.sifra}: {self.text}" return f"{self.sifra}: {self.text}"
class SeznamSifer(models.Model):
jmeno = models.CharField("Jméno seznamu", max_length=255, blank=False, null=False, help_text="něco co jde zadat do adresy")
sifry = models.ManyToManyField(SpravnaOdpoved)
def __str__(self):
return f"{self.jmeno}"

View file

@ -1,7 +1,7 @@
from django.urls import path from django.urls import path
from personalni.utils import org_required, resitel_or_org_required from personalni.utils import org_required, resitel_or_org_required
from .views import SifrovackaView, SifrovackaListView, NapovedaView, NapovedaListView, PreskoceniView from .views import SifrovackaView, SifrovackaListView, SifrovackaNektereListView, NapovedaView, NapovedaListView, PreskoceniView
urlpatterns = [ urlpatterns = [
path( path(
@ -14,6 +14,11 @@ urlpatterns = [
org_required(SifrovackaListView.as_view()), org_required(SifrovackaListView.as_view()),
name='sifrovacka_odpovedi' name='sifrovacka_odpovedi'
), ),
path(
'odpovedi/<str:seznam>/',
org_required(SifrovackaNektereListView.as_view()),
name='sifrovacka_odpovedi_nektere'
),
path( path(
'napoveda/', 'napoveda/',
resitel_or_org_required(NapovedaView.as_view()), resitel_or_org_required(NapovedaView.as_view()),

View file

@ -1,9 +1,10 @@
from django.shortcuts import get_object_or_404
from django.urls import reverse from django.urls import reverse
from django.views.generic import FormView, ListView from django.views.generic import FormView, ListView
from various.views.pomocne import formularOKView from various.views.pomocne import formularOKView
from .forms import SifrovackaForm, NapovedaForm from .forms import SifrovackaForm, NapovedaForm
from .models import OdpovedUcastnika, SpravnaOdpoved, Napoveda, NapovezenoUcastnikovi from .models import OdpovedUcastnika, SpravnaOdpoved, Napoveda, NapovezenoUcastnikovi, SeznamSifer
from personalni.models import Resitel from personalni.models import Resitel
@ -30,6 +31,12 @@ class SifrovackaListView(ListView):
template_name = 'sifrovacka/odpovedi_list.html' template_name = 'sifrovacka/odpovedi_list.html'
model = OdpovedUcastnika model = OdpovedUcastnika
class SifrovackaNektereListView(SifrovackaListView):
def get_queryset(self):
seznam = get_object_or_404(SeznamSifer, jmeno=self.kwargs['seznam'])
orig = super().get_queryset()
return orig.filter(sifra__in=seznam.sifry.all())
class NapovedaView(FormView): class NapovedaView(FormView):
template_name = 'sifrovacka/napoveda.html' template_name = 'sifrovacka/napoveda.html'