diff --git a/Schema_new.dia b/Schema_new.dia index ad987cfa..f09c0589 100644 Binary files a/Schema_new.dia and b/Schema_new.dia differ diff --git a/seminar/migrations/0079_clanek_resitelsky.py b/seminar/migrations/0079_clanek_resitelsky.py new file mode 100644 index 00000000..f41cdc51 --- /dev/null +++ b/seminar/migrations/0079_clanek_resitelsky.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.9 on 2020-03-25 19:24 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0078_otistenereseninode'), + ] + + operations = [ + migrations.AddField( + model_name='clanek', + name='resitelsky', + field=models.BooleanField(default=True, verbose_name='Jde o řešitelský článek?'), + ), + ] diff --git a/seminar/models.py b/seminar/models.py index 83a9ea61..2a1c60d6 100644 --- a/seminar/models.py +++ b/seminar/models.py @@ -754,6 +754,8 @@ class Clanek(Problem): cislo = models.ForeignKey(Cislo, verbose_name='číslo', blank=True, null=True, on_delete=models.PROTECT) + resitelsky = models.BooleanField('Jde o řešitelský článek?', default=True) + # má OneToOneField s: # ClanekNode diff --git a/seminar/urls.py b/seminar/urls.py index 623abf2f..adf2cea5 100644 --- a/seminar/urls.py +++ b/seminar/urls.py @@ -60,7 +60,7 @@ urlpatterns = [ ), # Zadani -# path('zadani/aktualni/', views.AktualniZadaniView, name='seminar_aktualni_zadani'), + path('zadani/aktualni/', views.AktualniZadaniView.as_view(), name='seminar_aktualni_zadani'), # path('zadani/temata/', views.ZadaniTemataView, name='seminar_temata'), #path('zadani/vysledkova-listina/', views.ZadaniAktualniVysledkovkaView, name='seminar_vysledky'), path('stare-novinky/', views.StareNovinkyView.as_view(), name='stare_novinky'), diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index 8bb30960..71bad834 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -106,21 +106,18 @@ class TreeNodeView(generic.DetailView): return context -#def AktualniZadaniView(request): -# nastaveni = get_object_or_404(Nastaveni) -# verejne = nastaveni.aktualni_cislo.verejne() -# problemy = Problem.objects.filter(cislo_zadani=nastaveni.aktualni_cislo).filter(stav = 'zadany') -# ulohy = problemy.filter(typ = 'uloha').order_by('kod') -# serialy = problemy.filter(typ = 'serial').order_by('kod') -# jednorazove_problemy = [ulohy, serialy] -# return render(request, 'seminar/zadani/AktualniZadani.html', -# {'nastaveni': nastaveni, -# 'jednorazove_problemy': jednorazove_problemy, -# 'temata': verejna_temata(nastaveni.aktualni_rocnik), -# 'verejne': verejne, -# }, -# ) -# +class AktualniZadaniView(TreeNodeView): + def get_object(self): + nastaveni = get_object_or_404(Nastaveni) + return nastaveni.aktualni_cislo.cislonode + + def get_context_data(self,**kwargs): + nastaveni = get_object_or_404(Nastaveni) + context = super().get_context_data(**kwargs) + verejne = nastaveni.aktualni_cislo.verejne() + context['verejne'] = verejne + return context + #def ZadaniTemataView(request): # nastaveni = get_object_or_404(Nastaveni) # temata = verejna_temata(nastaveni.aktualni_rocnik) @@ -1009,7 +1006,7 @@ def soustredeniUcastniciExportView(request,soustredeni): class ClankyResitelView(generic.ListView): model = Problem template_name = 'seminar/clanky/resitelske_clanky.html' - queryset = Clanek.objects.filter(stav=Problem.STAV_ZADANY).select_related('cislo_zadani__rocnik').order_by('-cislo_zadani__rocnik__rocnik', 'kod') + queryset = Clanek.objects.filter(stav=Problem.STAV_ZADANY, resitelsky=True).select_related('cislo__rocnik').order_by('-cislo__rocnik__rocnik', 'kod') # FIXME: pokud chceme orgoclanky, tak nejak zavest do modelu a podle toho odkomentovat a upravit #class ClankyOrganizatorView(generic.ListView):