odevzdavatko

Obsahuje vše, co se týká odevzdávání (+ nahrávání) a opravování řešení řešitelů.

Slovníček:

Moje řešení = Přehled řešení = Řešení, která odevzdal aktuálního uživatel sám. Došlá řešení = Tabulka + seznam + detail + … = Řešení, která poslal někdo jiný. Poslat řešení = Odevdat mé řešení. (Tj. řešení se vztahem k aktuálnímu uživateli.) Nahrát řešení = Nahrání řešení bez vztahu k aktuálnímu uživateli.

TODO: Místo vložit řešení v nahrávání a posílání řešení dát něco jiného?

odevzdavatko.admin

Soubor sloužící k definici toho, co bude v adminu. Většinou pouhým zavoláním funkce django.contrib.admin.site.register(), v případě, že chceme něco upravit, tak jako třída rozšiřující django.contrib.admin.ModelAdmin s dekorátorem django.contrib.admin.register().

class odevzdavatko.admin.PrilohaReseniInline(parent_model, admin_site)[zdroj]

Bases: TabularInline

model

alias of PrilohaReseni

extra = 1
property media
class odevzdavatko.admin.Reseni_ResiteleInline(parent_model, admin_site)[zdroj]

Bases: TabularInline

model

alias of Reseni_Resitele

property media
class odevzdavatko.admin.ReseniAdmin(model, admin_site)[zdroj]

Bases: ReverseModelAdmin

base_model

alias of Reseni

inline_type = 'tabular'
inline_reverse = ['resitele']
exclude = ['text_zkraceny', 'text_zkraceny_set']
inlines = [<class 'odevzdavatko.admin.PrilohaReseniInline'>]
property media

odevzdavatko.apps

Soubor sloužící k pojmenování a jiným nastavením djangovské aplikace.

class odevzdavatko.apps.OdevzdavatkoConfig(app_name, app_module)[zdroj]

Bases: AppConfig

name = 'odevzdavatko'

odevzdavatko.forms

class odevzdavatko.forms.DateInput(attrs=None, format=None)[zdroj]

Bases: DateInput

input_type = 'date'
property media
class odevzdavatko.forms.PosliReseniForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None)[zdroj]

Bases: Form

base_fields = {'cas_doruceni': <django.forms.fields.DateField object>, 'forma': <django.forms.fields.ChoiceField object>, 'poznamka': <django.forms.fields.CharField object>, 'problem': <django.forms.models.ModelChoiceField object>, 'resitel': <django.forms.models.ModelChoiceField object>}
declared_fields = {'cas_doruceni': <django.forms.fields.DateField object>, 'forma': <django.forms.fields.ChoiceField object>, 'poznamka': <django.forms.fields.CharField object>, 'problem': <django.forms.models.ModelChoiceField object>, 'resitel': <django.forms.models.ModelChoiceField object>}
property media
class odevzdavatko.forms.NahrajReseniForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)[zdroj]

Bases: ModelForm

class Meta[zdroj]

Bases: object

model

alias of Reseni

fields = ('problem',)
help_texts = {'problem': ''}
widgets = {'problem': <dal_select2.widgets.ModelSelect2Multiple object>}
base_fields = {'problem': <django.forms.models.ModelMultipleChoiceField object>}
declared_fields = {}
property media
class odevzdavatko.forms.JednoHodnoceniForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)[zdroj]

Bases: ModelForm

class Meta[zdroj]

Bases: object

model

alias of Hodnoceni

fields = ('problem', 'body', 'deadline_body', 'feedback')
widgets = {'feedback': <django.forms.widgets.Textarea object>, 'problem': <dal_select2.widgets.ModelSelect2 object>}
base_fields = {'body': <django.forms.fields.DecimalField object>, 'deadline_body': <django.forms.models.ModelChoiceField object>, 'feedback': <django.forms.fields.CharField object>, 'problem': <django.forms.models.ModelChoiceField object>}
declared_fields = {}
property media
class odevzdavatko.forms.PoznamkaReseniForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)[zdroj]

Bases: ModelForm

class Meta[zdroj]

Bases: object

model

alias of Reseni

fields = ('poznamka',)
base_fields = {'poznamka': <django.forms.fields.CharField object>}
declared_fields = {}
property media
class odevzdavatko.forms.OdevzdavatkoTabulkaFiltrForm(*args, rocnik=None, **kwargs)[zdroj]

Bases: Form

Form pro filtrování přehledové odevzdávátkové tabulky

Inspirováno https://kam.mff.cuni.cz/mffzoom/

RESITELE_RELEVANTNI = 'relevantni'
RESITELE_NEODMATUROVAVSI = 'neodmaturovavsi'
RESITELE_CHOICES = [('relevantni', 'Relevantní řešitelé'), ('neodmaturovavsi', 'Všichni bez maturity')]
PROBLEMY_MOJE = 'moje'
PROBLEMY_LETOSNI = 'letosni'
PROBLEMY_CHOICES = [('moje', 'Moje problémy'), ('letosni', 'Všechny letošní')]
classmethod gen_terminy(rocnik=None)[zdroj]
classmethod gen_initial(rocnik=None)[zdroj]
base_fields = {'neobodovane': <django.forms.fields.BooleanField object>, 'problemy': <django.forms.fields.ChoiceField object>, 'reseni_do': <django.forms.fields.DateField object>, 'reseni_od': <django.forms.fields.DateField object>, 'resitele': <django.forms.fields.ChoiceField object>}
declared_fields = {'neobodovane': <django.forms.fields.BooleanField object>, 'problemy': <django.forms.fields.ChoiceField object>, 'reseni_do': <django.forms.fields.DateField object>, 'reseni_od': <django.forms.fields.DateField object>, 'resitele': <django.forms.fields.ChoiceField object>}
property media

odevzdavatko.urls

Soubor sloužící jako „router“, tj. zde se definují url adresy a na co ukazují:

odevzdavatko.views

class odevzdavatko.views.SouhrnReseni(pocet_reseni: int, posledni_odevzdani: datetime, body: float)[zdroj]

Bases: object

Dataclass reprezentující data o odevzdaných řešeních pro zobrazení v tabulce.

pocet_reseni: int
posledni_odevzdani: datetime
body: float
class odevzdavatko.views.TabulkaOdevzdanychReseniView(**kwargs)[zdroj]

Bases: ListView

template_name = 'odevzdavatko/tabulka.html'
model

alias of Hodnoceni

inicializuj_osy_tabulky()[zdroj]

Vyrobí prvotní querysety pro sloupce a řádky, tj. seznam všech řešitelů a problémů

get_queryset()[zdroj]
get_context_data(*args, **kwargs)[zdroj]
class odevzdavatko.views.ReseniProblemuView(**kwargs)[zdroj]

Bases: MultipleObjectTemplateResponseMixin, MultipleObjectMixin, View

model

alias of Reseni

template_name = 'odevzdavatko/seznam.html'
get_queryset()[zdroj]
get(request, *args, **kwargs)[zdroj]
get_context_data(*args, **kwargs)[zdroj]
class odevzdavatko.views.DetailReseniView(**kwargs)[zdroj]

Bases: DetailView

model

alias of Reseni

template_name = 'odevzdavatko/detail.html'
aktualni_hodnoceni()[zdroj]
get_context_data(**kw)[zdroj]
odevzdavatko.views.hodnoceniReseniView(request, pk, *args, **kwargs)[zdroj]
class odevzdavatko.views.ResitelReseniView(**kwargs)[zdroj]

Bases: DetailView

model

alias of Reseni

template_name = 'odevzdavatko/detail_resitele.html'
aktualni_hodnoceni()[zdroj]
get_context_data(**kw)[zdroj]
class odevzdavatko.views.PrehledOdevzdanychReseni(**kwargs)[zdroj]

Bases: ListView

model

alias of Hodnoceni

template_name = 'odevzdavatko/prehled_reseni.html'
get_queryset()[zdroj]
get_context_data(*args, **kwargs)[zdroj]
class odevzdavatko.views.SeznamReseniView(**kwargs)[zdroj]

Bases: ListView

model

alias of Reseni

template_name = 'odevzdavatko/seznam.html'
class odevzdavatko.views.SeznamAktualnichReseniView(**kwargs)[zdroj]

Bases: SeznamReseniView

get_queryset()[zdroj]
class odevzdavatko.views.PosliReseniView(**kwargs)[zdroj]

Bases: LoginRequiredMixin, FormView

template_name = 'odevzdavatko/posli_reseni.html'
form_class

alias of PosliReseniForm

form_valid(form)[zdroj]
get_context_data(**kwargs)[zdroj]
class odevzdavatko.views.NahrajReseniView(**kwargs)[zdroj]

Bases: LoginRequiredMixin, CreateView

model

alias of Reseni

template_name = 'odevzdavatko/nahraj_reseni.html'
form_class

alias of NahrajReseniForm

get(request, *args, **kwargs)[zdroj]
get_context_data(**kwargs)[zdroj]
form_valid(form)[zdroj]