Další (snad poslední) opravy tabulátorů
This commit is contained in:
parent
dc4fced39f
commit
25dc50e943
6 changed files with 240 additions and 240 deletions
|
@ -39,7 +39,7 @@ class GalerieInline(admin.TabularInline):
|
|||
|
||||
class ObrazekAdmin(admin.ModelAdmin):
|
||||
list_display = ('obrazek_velky', 'nazev', 'popis', 'obrazek_maly_tag')
|
||||
|
||||
|
||||
class GalerieAdmin(admin.ModelAdmin):
|
||||
form = autocomplete_light.modelform_factory(Galerie, autocomplete_fields=['titulni_obrazek'], fields=['titulni_obrazek'])
|
||||
model = Galerie
|
||||
|
|
|
@ -38,7 +38,7 @@ class KorekturovanePDF(models.Model):
|
|||
verbose_name_plural = u'PDF k opravám'
|
||||
|
||||
#Interní ID
|
||||
id = models.AutoField(primary_key = True)
|
||||
id = models.AutoField(primary_key = True)
|
||||
|
||||
cas = models.DateTimeField(u'čas vložení PDF',default=timezone.now,help_text = 'Čas vložení PDF')
|
||||
|
||||
|
@ -65,8 +65,8 @@ class KorekturovanePDF(models.Model):
|
|||
)
|
||||
status = models.CharField(u'stav PDF',max_length=16, choices=STATUS_CHOICES, blank=False,
|
||||
default = STATUS_PRIDAVANI)
|
||||
|
||||
|
||||
|
||||
|
||||
#TODO Nepovinný foreign key k číslu
|
||||
|
||||
def get_prefix(self):
|
||||
|
@ -122,7 +122,7 @@ class Oprava(models.Model):
|
|||
ordering = ['y','x']
|
||||
|
||||
#Interní ID
|
||||
id = models.AutoField(primary_key = True)
|
||||
id = models.AutoField(primary_key = True)
|
||||
|
||||
pdf = models.ForeignKey(KorekturovanePDF, default=-1)
|
||||
|
||||
|
@ -150,9 +150,9 @@ class Oprava(models.Model):
|
|||
|
||||
text = models.TextField(u'text opravy',blank = True, help_text='Text opravy')
|
||||
|
||||
# def __init__(self,dictionary):
|
||||
# for k,v in dictionary.items():
|
||||
# setattr(self,k,v)
|
||||
# def __init__(self,dictionary):
|
||||
# for k,v in dictionary.items():
|
||||
# setattr(self,k,v)
|
||||
|
||||
def __str__(self):
|
||||
return force_unicode(u'%s od %s: %s'%(self.status,self.autor,self.text))
|
||||
|
@ -169,7 +169,7 @@ class Komentar(models.Model):
|
|||
ordering = ['cas']
|
||||
|
||||
#Interní ID
|
||||
id = models.AutoField(primary_key = True)
|
||||
id = models.AutoField(primary_key = True)
|
||||
|
||||
cas = models.DateTimeField(u'čas komentáře',default=timezone.now,help_text = 'Čas zadání komentáře')
|
||||
|
||||
|
|
|
@ -6,10 +6,10 @@ from . import views
|
|||
staff_member_required = user_passes_test(lambda u: u.is_staff)
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^prednasky/$', views.newPrednaska),
|
||||
url(r'^prednasky/hotovo$', views.Prednaska_hotovo),
|
||||
url(r'^prednasky/metaseznam_prednasek$', staff_member_required(views.MetaSeznamListView.as_view()), name='metaseznam-list'),
|
||||
url(r'^prednasky/seznam_prednasek/(?P<seznam>\d+)/$', staff_member_required(views.SeznamListView.as_view()), name='seznam-list'),
|
||||
url(r'^prednasky/seznam_prednasek/(?P<seznam>\d+)/export$', staff_member_required(views.SeznamExportView), name='seznam-export'),
|
||||
# url(r'^korektury/help/', staff_member_required(views.KorekturyHelpView.as_view()), name='korektury-help'),
|
||||
url(r'^prednasky/$', views.newPrednaska),
|
||||
url(r'^prednasky/hotovo$', views.Prednaska_hotovo),
|
||||
url(r'^prednasky/metaseznam_prednasek$', staff_member_required(views.MetaSeznamListView.as_view()), name='metaseznam-list'),
|
||||
url(r'^prednasky/seznam_prednasek/(?P<seznam>\d+)/$', staff_member_required(views.SeznamListView.as_view()), name='seznam-list'),
|
||||
url(r'^prednasky/seznam_prednasek/(?P<seznam>\d+)/export$', staff_member_required(views.SeznamExportView), name='seznam-export'),
|
||||
# url(r'^korektury/help/', staff_member_required(views.KorekturyHelpView.as_view()), name='korektury-help'),
|
||||
]
|
||||
|
|
|
@ -61,7 +61,7 @@ def field_labels(model, fieldname):
|
|||
|
||||
def create_modeladmin(modeladmin, model, name = None, verbose_name = None, verbose_name_plural = None):
|
||||
|
||||
class Meta:
|
||||
class Meta:
|
||||
proxy = True
|
||||
app_label = model._meta.app_label
|
||||
Meta.verbose_name = verbose_name
|
||||
|
@ -96,8 +96,8 @@ class ResitelInline(admin.TabularInline):
|
|||
class CisloInline(admin.TabularInline):
|
||||
model = Cislo
|
||||
fields = ['cislo',
|
||||
'datum_vydani', 'datum_deadline', 'datum_deadline_soustredeni',
|
||||
'verejne_db', 'poznamka']
|
||||
'datum_vydani', 'datum_deadline', 'datum_deadline_soustredeni',
|
||||
'verejne_db', 'poznamka']
|
||||
readonly_fields = ['cislo']
|
||||
extra = 0
|
||||
formfield_overrides = {
|
||||
|
@ -222,7 +222,7 @@ class ResitelAdmin(VersionAdmin):
|
|||
list_display = ['osoba__jmeno', 'osoba__prijmeni', 'osoba__user', 'osoba__pohlavi_muz', 'skola', 'rok_maturity', 'pocet_reseni']
|
||||
list_filter = ['osoba__pohlavi_muz', 'rok_maturity', 'zasilat']
|
||||
search_fields = ['osoba__jmeno', 'osoba__prijmeni', 'osoba__ulice', 'osoba__mesto', 'osoba__email']
|
||||
# inlines = [ReseniKResiteliInline] # FIXME:
|
||||
# inlines = [ReseniKResiteliInline] # FIXME:
|
||||
view_on_site = False
|
||||
|
||||
def osoba__jmeno(self, obj):
|
||||
|
@ -291,7 +291,7 @@ class CisloAdmin(VersionAdmin):
|
|||
]
|
||||
}),
|
||||
('Data', {'fields': ['datum_vydani', 'datum_deadline',
|
||||
'datum_deadline_soustredeni']}),
|
||||
'datum_deadline_soustredeni']}),
|
||||
]
|
||||
list_display = [
|
||||
'kod',
|
||||
|
@ -338,14 +338,14 @@ admin.site.register(Rocnik, RocnikAdmin)
|
|||
### PrilohaReseni
|
||||
# NOTE: Nemá pravděpodobně smysl používat
|
||||
# class PrilohaReseniAdmin(reversion.VersionAdmin):
|
||||
# readonly_fields = ['timestamp', 'reseni']
|
||||
# fieldsets = [
|
||||
# (None, {'fields': ['reseni', 'soubor', 'timestamp']}),
|
||||
# (u'Poznámky', {'fields': ['poznamka']}),
|
||||
# ]
|
||||
# list_display = ['reseni', 'soubor', 'timestamp']
|
||||
# list_filter = ['reseni', 'timestamp']
|
||||
# search_fields = []
|
||||
# readonly_fields = ['timestamp', 'reseni']
|
||||
# fieldsets = [
|
||||
# (None, {'fields': ['reseni', 'soubor', 'timestamp']}),
|
||||
# (u'Poznámky', {'fields': ['poznamka']}),
|
||||
# ]
|
||||
# list_display = ['reseni', 'soubor', 'timestamp']
|
||||
# list_filter = ['reseni', 'timestamp']
|
||||
# search_fields = []
|
||||
#
|
||||
# admin.site.register(PrilohaReseni, PrilohaReseniAdmin)
|
||||
|
||||
|
@ -567,18 +567,18 @@ class ProblemZadanyAdmin(ProblemAdmin):
|
|||
### Prispevek (k tematkum)
|
||||
|
||||
#class PrispevekAdminForm(forms.ModelForm):
|
||||
# text_org = forms.CharField(widget=CKEditorUploadingWidget(), required=False,
|
||||
# **field_labels(Prispevek, 'text_org'))
|
||||
# text_resitel = forms.CharField(widget=CKEditorUploadingWidget(), required=False,
|
||||
# **field_labels(Prispevek, 'text_resitel'))
|
||||
# text_org = forms.CharField(widget=CKEditorUploadingWidget(), required=False,
|
||||
# **field_labels(Prispevek, 'text_org'))
|
||||
# text_resitel = forms.CharField(widget=CKEditorUploadingWidget(), required=False,
|
||||
# **field_labels(Prispevek, 'text_resitel'))
|
||||
#
|
||||
# class Meta:
|
||||
# model = Prispevek
|
||||
# exclude = []
|
||||
# class Meta:
|
||||
# model = Prispevek
|
||||
# exclude = []
|
||||
#
|
||||
#class PrispevekAdmin(VersionAdmin):
|
||||
# form = PrispevekAdminForm
|
||||
# list_display = ['nazev', 'problem', 'reseni', 'zverejnit']
|
||||
# form = PrispevekAdminForm
|
||||
# list_display = ['nazev', 'problem', 'reseni', 'zverejnit']
|
||||
#
|
||||
#admin.site.register(Prispevek, PrispevekAdmin)
|
||||
|
||||
|
@ -619,7 +619,7 @@ class KonferaAdmin(VersionAdmin):
|
|||
form = KonferaAdminForm
|
||||
list_filter = ['soustredeni']
|
||||
list_display = ['nazev','soustredeni','organizator','typ_prezentace']
|
||||
# inlines = [Konfera_UcastniciInline]
|
||||
# inlines = [Konfera_UcastniciInline]
|
||||
|
||||
admin.site.register(Konfera,KonferaAdmin)
|
||||
|
||||
|
|
|
@ -402,7 +402,7 @@ class Cislo(SeminarModelBase):
|
|||
'zveřejněna výsledkovka',
|
||||
default=False,
|
||||
help_text='Je-li false u veřejného čísla,\
|
||||
není výsledkovka zatím veřejná.')
|
||||
není výsledkovka zatím veřejná.')
|
||||
|
||||
poznamka = models.TextField('neveřejná poznámka', blank=True,
|
||||
help_text='Neveřejná poznámka k číslu (plain text)')
|
||||
|
@ -830,7 +830,7 @@ class Hodnoceni(SeminarModelBase):
|
|||
|
||||
# Django neumí jednoduše serializovat partial nebo třídu s __call__
|
||||
# (https://docs.djangoproject.com/en/1.8/topics/migrations/),
|
||||
# neprojdou pak migrace. Takže rozlišení funkcí generujících názvy souboru
|
||||
# neprojdou pak migrace. Takže rozlišení funkcí generujících názvy souboru
|
||||
# podle adresáře řešíme takto.
|
||||
|
||||
##
|
||||
|
|
400
seminar/views.py
400
seminar/views.py
|
@ -69,28 +69,28 @@ def ZadaniTemataView(request):
|
|||
|
||||
|
||||
#def ZadaniAktualniVysledkovkaView(request):
|
||||
# nastaveni = get_object_or_404(Nastaveni)
|
||||
# # Aktualni verejna vysledkovka
|
||||
# vysledkovka = vysledkovka_rocniku(nastaveni.aktualni_rocnik)
|
||||
# # kdyz neni verejna vysledkovka, tak zobraz starou
|
||||
# if not vysledkovka:
|
||||
# try:
|
||||
# minuly_rocnik = Rocnik.objects.get(
|
||||
# prvni_rok=(nastaveni.aktualni_rocnik.prvni_rok-1))
|
||||
# vysledkovka = vysledkovka_rocniku(minuly_rocnik)
|
||||
# except ObjectDoesNotExist:
|
||||
# pass
|
||||
# # vysledkovka s neverejnyma vysledkama
|
||||
# vysledkovka_s_neverejnymi = vysledkovka_rocniku(nastaveni.aktualni_rocnik, jen_verejne=False)
|
||||
# return render(
|
||||
# request,
|
||||
# 'seminar/zadani/AktualniVysledkovka.html',
|
||||
# {
|
||||
# 'nastaveni': nastaveni,
|
||||
# 'vysledkovka': vysledkovka,
|
||||
# 'vysledkovka_s_neverejnymi': vysledkovka_s_neverejnymi,
|
||||
# }
|
||||
# )
|
||||
# nastaveni = get_object_or_404(Nastaveni)
|
||||
# # Aktualni verejna vysledkovka
|
||||
# vysledkovka = vysledkovka_rocniku(nastaveni.aktualni_rocnik)
|
||||
# # kdyz neni verejna vysledkovka, tak zobraz starou
|
||||
# if not vysledkovka:
|
||||
# try:
|
||||
# minuly_rocnik = Rocnik.objects.get(
|
||||
# prvni_rok=(nastaveni.aktualni_rocnik.prvni_rok-1))
|
||||
# vysledkovka = vysledkovka_rocniku(minuly_rocnik)
|
||||
# except ObjectDoesNotExist:
|
||||
# pass
|
||||
# # vysledkovka s neverejnyma vysledkama
|
||||
# vysledkovka_s_neverejnymi = vysledkovka_rocniku(nastaveni.aktualni_rocnik, jen_verejne=False)
|
||||
# return render(
|
||||
# request,
|
||||
# 'seminar/zadani/AktualniVysledkovka.html',
|
||||
# {
|
||||
# 'nastaveni': nastaveni,
|
||||
# 'vysledkovka': vysledkovka,
|
||||
# 'vysledkovka_s_neverejnymi': vysledkovka_s_neverejnymi,
|
||||
# }
|
||||
# )
|
||||
|
||||
|
||||
### Titulni strana
|
||||
|
@ -125,7 +125,7 @@ class TitulniStranaView(generic.ListView):
|
|||
context['deadline_soustredeni'] = deadline_soustredeni
|
||||
try:
|
||||
context['dead'] = datetime.combine(cas_deadline,
|
||||
datetime.max.time())
|
||||
datetime.max.time())
|
||||
context['ted'] = datetime.now()
|
||||
except:
|
||||
context['dead'] = None
|
||||
|
@ -274,61 +274,61 @@ def sloupec_s_poradim(vysledky):
|
|||
|
||||
|
||||
#def vysledkovka_rocniku(rocnik, jen_verejne=True):
|
||||
# """Přebírá ročník (např. context["rocnik"]) a vrací výsledkovou listinu ve
|
||||
# formě vhodné pro šablonu "seminar/vysledkovka_rocniku.html"
|
||||
# """
|
||||
# """Přebírá ročník (např. context["rocnik"]) a vrací výsledkovou listinu ve
|
||||
# formě vhodné pro šablonu "seminar/vysledkovka_rocniku.html"
|
||||
# """
|
||||
#
|
||||
# #vyberu vsechny vysledky z rocniku
|
||||
# cisla_v_rocniku = VysledkyKCisluZaRocnik.objects.filter(cislo__rocnik=rocnik).order_by('cislo')
|
||||
# if jen_verejne:
|
||||
# cisla_v_rocniku = cisla_v_rocniku.filter(cislo__verejna_vysledkovka=True)
|
||||
# #vyberu vsechny vysledky z rocniku
|
||||
# cisla_v_rocniku = VysledkyKCisluZaRocnik.objects.filter(cislo__rocnik=rocnik).order_by('cislo')
|
||||
# if jen_verejne:
|
||||
# cisla_v_rocniku = cisla_v_rocniku.filter(cislo__verejna_vysledkovka=True)
|
||||
#
|
||||
# #pokud žádné nejsou, výsledkovka se nezobrazí
|
||||
# if not cisla_v_rocniku:
|
||||
# return None
|
||||
# #pokud žádné nejsou, výsledkovka se nezobrazí
|
||||
# if not cisla_v_rocniku:
|
||||
# return None
|
||||
#
|
||||
# #vybere vsechny vysledky z posledniho (verejneho) cisla a setridi sestupne dle bodu
|
||||
# vysledky = list(cisla_v_rocniku.filter(cislo = cisla_v_rocniku[0].cislo).order_by('-body', 'resitel__prijmeni', 'resitel__jmeno').select_related('resitel'))
|
||||
# #vybere vsechny vysledky z posledniho (verejneho) cisla a setridi sestupne dle bodu
|
||||
# vysledky = list(cisla_v_rocniku.filter(cislo = cisla_v_rocniku[0].cislo).order_by('-body', 'resitel__prijmeni', 'resitel__jmeno').select_related('resitel'))
|
||||
#
|
||||
# class Vysledkovka:
|
||||
# def __init__(self):
|
||||
# self.rocnik = rocnik.rocnik
|
||||
# self.radky = []
|
||||
# self.cisla = []
|
||||
# class Vysledkovka:
|
||||
# def __init__(self):
|
||||
# self.rocnik = rocnik.rocnik
|
||||
# self.radky = []
|
||||
# self.cisla = []
|
||||
#
|
||||
# vysledkovka = Vysledkovka()
|
||||
# vysledkovka.cisla = (rocnik.verejne_vysledkovky_cisla() if jen_verejne else rocnik.cisla.all().order_by('cislo'))
|
||||
# vysledkovka = Vysledkovka()
|
||||
# vysledkovka.cisla = (rocnik.verejne_vysledkovky_cisla() if jen_verejne else rocnik.cisla.all().order_by('cislo'))
|
||||
#
|
||||
# # doplníme některé údaje do řádků výsledkovky pro řešitele ve skupině
|
||||
# for poradi, v in zip(sloupec_s_poradim(vysledky), vysledky):
|
||||
# v.poradi = poradi
|
||||
# v.resitel.rocnik = v.resitel.rocnik(rocnik)
|
||||
# # doplníme některé údaje do řádků výsledkovky pro řešitele ve skupině
|
||||
# for poradi, v in zip(sloupec_s_poradim(vysledky), vysledky):
|
||||
# v.poradi = poradi
|
||||
# v.resitel.rocnik = v.resitel.rocnik(rocnik)
|
||||
#
|
||||
# verejne_vysl_odjakziva = VysledkyKCisluOdjakziva.objects.filter(cislo__rocnik=rocnik, cislo=cisla_v_rocniku[0].cislo)
|
||||
# if jen_verejne:
|
||||
# verejne_vysl_odjakziva = verejne_vysl_odjakziva.filter(cislo__verejna_vysledkovka=True)
|
||||
# verejne_vysl_odjakziva = VysledkyKCisluOdjakziva.objects.filter(cislo__rocnik=rocnik, cislo=cisla_v_rocniku[0].cislo)
|
||||
# if jen_verejne:
|
||||
# verejne_vysl_odjakziva = verejne_vysl_odjakziva.filter(cislo__verejna_vysledkovka=True)
|
||||
#
|
||||
# v.body_odjakziva = verejne_vysl_odjakziva.filter(resitel = v.resitel)[0].body
|
||||
# v.titul = v.resitel.get_titul(v.body_odjakziva)
|
||||
# v.body_rocnik = v.body
|
||||
# v.body_cisla = []
|
||||
# v.body_odjakziva = verejne_vysl_odjakziva.filter(resitel = v.resitel)[0].body
|
||||
# v.titul = v.resitel.get_titul(v.body_odjakziva)
|
||||
# v.body_rocnik = v.body
|
||||
# v.body_cisla = []
|
||||
#
|
||||
# #pokud pro dany rok a cislo nema resitel vysledky, ma defaultne 0
|
||||
# for cis in vysledkovka.cisla:
|
||||
# if not jen_verejne or cis.verejna_vysledkovka:
|
||||
# #seznam vysledku se spravnym rocnikem a cislem pro resitele
|
||||
# #zobrazim jen je-li vysledkovka verejna
|
||||
# body_za_cislo = VysledkyZaCislo.objects.filter(cislo__rocnik=rocnik).filter(cislo = cis).filter(resitel = v.resitel)
|
||||
# if body_za_cislo:
|
||||
# #neprazdne vysledky by mely obsahovat prave jeden vysledek
|
||||
# v.body_cisla.append(body_za_cislo[0].body)
|
||||
# else:
|
||||
# #resitel nema za cislo body
|
||||
# v.body_cisla.append(0)
|
||||
# #pokud pro dany rok a cislo nema resitel vysledky, ma defaultne 0
|
||||
# for cis in vysledkovka.cisla:
|
||||
# if not jen_verejne or cis.verejna_vysledkovka:
|
||||
# #seznam vysledku se spravnym rocnikem a cislem pro resitele
|
||||
# #zobrazim jen je-li vysledkovka verejna
|
||||
# body_za_cislo = VysledkyZaCislo.objects.filter(cislo__rocnik=rocnik).filter(cislo = cis).filter(resitel = v.resitel)
|
||||
# if body_za_cislo:
|
||||
# #neprazdne vysledky by mely obsahovat prave jeden vysledek
|
||||
# v.body_cisla.append(body_za_cislo[0].body)
|
||||
# else:
|
||||
# #resitel nema za cislo body
|
||||
# v.body_cisla.append(0)
|
||||
#
|
||||
# vysledkovka.radky.append(v)
|
||||
# vysledkovka.radky.append(v)
|
||||
#
|
||||
# return vysledkovka
|
||||
# return vysledkovka
|
||||
|
||||
|
||||
class RocnikView(generic.DetailView):
|
||||
|
@ -346,7 +346,7 @@ class RocnikView(generic.DetailView):
|
|||
obj = queryset.get()
|
||||
except queryset.model.DoesNotExist:
|
||||
raise Http404(_("No %(verbose_name)s found matching the query") %
|
||||
{'verbose_name': queryset.model._meta.verbose_name})
|
||||
{'verbose_name': queryset.model._meta.verbose_name})
|
||||
return obj
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
|
@ -379,43 +379,43 @@ class ProblemView(generic.DetailView):
|
|||
|
||||
## Prispevek byl zrusen, mozna ale bude podobny nahled na neco jineho.
|
||||
#class PrispevekView(generic.DetailView):
|
||||
# model = Prispevek
|
||||
# template_name = 'seminar/archiv/prispevek.html'
|
||||
#
|
||||
# # Vlastni ziskavani objektu z databaze podle prispevku
|
||||
# # pokud je prispevek neverejny zobrazi se jenom orgum
|
||||
# def get_object(self, queryset=None):
|
||||
# if queryset is None:
|
||||
# queryset = self.get_queryset()
|
||||
# problem_arg = self.kwargs.get('pk')
|
||||
# prispevek_arg = self.kwargs.get('prispevek')
|
||||
# queryset = queryset.filter(pk=prispevek_arg)
|
||||
# model = Prispevek
|
||||
# template_name = 'seminar/archiv/prispevek.html'
|
||||
#
|
||||
# # Vlastni ziskavani objektu z databaze podle prispevku
|
||||
# # pokud je prispevek neverejny zobrazi se jenom orgum
|
||||
# def get_object(self, queryset=None):
|
||||
# if queryset is None:
|
||||
# queryset = self.get_queryset()
|
||||
# problem_arg = self.kwargs.get('pk')
|
||||
# prispevek_arg = self.kwargs.get('prispevek')
|
||||
# queryset = queryset.filter(pk=prispevek_arg)
|
||||
#
|
||||
# try:
|
||||
# obj = queryset.get()
|
||||
# except queryset.model.DoesNotExist:
|
||||
# raise Http404(_("No %(verbose_name)s found matching the query") %
|
||||
# {'verbose_name': queryset.model._meta.verbose_name})
|
||||
# try:
|
||||
# obj = queryset.get()
|
||||
# except queryset.model.DoesNotExist:
|
||||
# raise Http404(_("No %(verbose_name)s found matching the query") %
|
||||
# {'verbose_name': queryset.model._meta.verbose_name})
|
||||
#
|
||||
# if self.request.user.is_staff or obj.zverejnit:
|
||||
# return obj
|
||||
# else:
|
||||
# raise Http404()
|
||||
#
|
||||
# def get_context_data(self, **kwargs):
|
||||
# context = super(PrispevekView, self).get_context_data(**kwargs)
|
||||
# # snaho o ziskani titulu
|
||||
# titul = ''
|
||||
# try:
|
||||
# resitel = context['prispevek'].reseni.resitel
|
||||
# cislo = context['prispevek'].reseni.cislo_body
|
||||
# body = VysledkyKCisluOdjakziva.objects.get(resitel=resitel,
|
||||
# cislo=cislo).body
|
||||
# titul = resitel.get_titul(body)
|
||||
# except:
|
||||
# pass
|
||||
# context['titul'] = titul
|
||||
# return context
|
||||
# if self.request.user.is_staff or obj.zverejnit:
|
||||
# return obj
|
||||
# else:
|
||||
# raise Http404()
|
||||
#
|
||||
# def get_context_data(self, **kwargs):
|
||||
# context = super(PrispevekView, self).get_context_data(**kwargs)
|
||||
# # snaho o ziskani titulu
|
||||
# titul = ''
|
||||
# try:
|
||||
# resitel = context['prispevek'].reseni.resitel
|
||||
# cislo = context['prispevek'].reseni.cislo_body
|
||||
# body = VysledkyKCisluOdjakziva.objects.get(resitel=resitel,
|
||||
# cislo=cislo).body
|
||||
# titul = resitel.get_titul(body)
|
||||
# except:
|
||||
# pass
|
||||
# context['titul'] = titul
|
||||
# return context
|
||||
|
||||
|
||||
|
||||
|
@ -423,83 +423,83 @@ class RadekVysledkovky(object):
|
|||
pass
|
||||
|
||||
#class CisloView(generic.DetailView):
|
||||
# model = Cislo
|
||||
# template_name = 'seminar/archiv/cislo.html'
|
||||
# model = Cislo
|
||||
# template_name = 'seminar/archiv/cislo.html'
|
||||
#
|
||||
# # Vlastni ziskavani objektu z databaze podle (Rocnik.rocnik)
|
||||
# def get_object(self, queryset=None):
|
||||
# if queryset is None:
|
||||
# queryset = self.get_queryset()
|
||||
# rocnik_arg = self.kwargs.get('rocnik')
|
||||
# cislo_arg = self.kwargs.get('cislo')
|
||||
# queryset = queryset.filter(rocnik__rocnik=rocnik_arg, cislo=cislo_arg)
|
||||
# # Vlastni ziskavani objektu z databaze podle (Rocnik.rocnik)
|
||||
# def get_object(self, queryset=None):
|
||||
# if queryset is None:
|
||||
# queryset = self.get_queryset()
|
||||
# rocnik_arg = self.kwargs.get('rocnik')
|
||||
# cislo_arg = self.kwargs.get('cislo')
|
||||
# queryset = queryset.filter(rocnik__rocnik=rocnik_arg, cislo=cislo_arg)
|
||||
#
|
||||
# try:
|
||||
# obj = queryset.get()
|
||||
# except queryset.model.DoesNotExist:
|
||||
# raise Http404(_("No %(verbose_name)s found matching the query") %
|
||||
# {'verbose_name': queryset.model._meta.verbose_name})
|
||||
# return obj
|
||||
# try:
|
||||
# obj = queryset.get()
|
||||
# except queryset.model.DoesNotExist:
|
||||
# raise Http404(_("No %(verbose_name)s found matching the query") %
|
||||
# {'verbose_name': queryset.model._meta.verbose_name})
|
||||
# return obj
|
||||
#
|
||||
#
|
||||
# def get_context_data(self, **kwargs):
|
||||
# context = super(CisloView, self).get_context_data(**kwargs)
|
||||
# def get_context_data(self, **kwargs):
|
||||
# context = super(CisloView, self).get_context_data(**kwargs)
|
||||
#
|
||||
# vysledky = VysledkyKCisluZaRocnik.objects.filter(cislo = context['cislo']).order_by('-body', 'resitel__prijmeni', 'resitel__jmeno')
|
||||
# reseni = Reseni.objects.filter(cislo_body = context['cislo']).select_related("resitel")
|
||||
# vysledky = VysledkyKCisluZaRocnik.objects.filter(cislo = context['cislo']).order_by('-body', 'resitel__prijmeni', 'resitel__jmeno')
|
||||
# reseni = Reseni.objects.filter(cislo_body = context['cislo']).select_related("resitel")
|
||||
#
|
||||
# # typy úloh, které se mají zobrazovat u čísla, tj. těch, které byly v čísle skutečně zadány
|
||||
# typy_skutecne_zadanych = [Problem.TYP_ULOHA, Problem.TYP_SERIAL, Problem.TYP_ORG_CLANEK]
|
||||
# v_cisle_zadane = Problem.objects.filter(cislo_zadani=context['cislo']).filter(typ__in=typy_skutecne_zadanych).order_by('kod')
|
||||
# # typy úloh, které se mají zobrazovat u čísla, tj. těch, které byly v čísle skutečně zadány
|
||||
# typy_skutecne_zadanych = [Problem.TYP_ULOHA, Problem.TYP_SERIAL, Problem.TYP_ORG_CLANEK]
|
||||
# v_cisle_zadane = Problem.objects.filter(cislo_zadani=context['cislo']).filter(typ__in=typy_skutecne_zadanych).order_by('kod')
|
||||
#
|
||||
# resene_problemy = Problem.objects.filter(cislo_reseni=context['cislo']).filter(typ__in=typy_skutecne_zadanych).order_by('cislo_zadani__cislo', 'kod')
|
||||
# resene_problemy = Problem.objects.filter(cislo_reseni=context['cislo']).filter(typ__in=typy_skutecne_zadanych).order_by('cislo_zadani__cislo', 'kod')
|
||||
#
|
||||
# poradi_typu = {
|
||||
# Problem.TYP_ULOHA: 1,
|
||||
# Problem.TYP_SERIAL: 2,
|
||||
# Problem.TYP_ORG_CLANEK: 3,
|
||||
# Problem.TYP_TEMA: 4,
|
||||
# Problem.TYP_RES_CLANEK: 5
|
||||
# }
|
||||
# problemy = sorted(set(r.problem for r in reseni), key=lambda x:(poradi_typu[x.typ], x.kod_v_rocniku()))
|
||||
# #setridi problemy podle typu a poradi zadani
|
||||
# problem_index = {}
|
||||
# for i in range(len(problemy)):
|
||||
# problem_index[problemy[i].id] = i
|
||||
# #umoznuje zjistit index podle id problemu
|
||||
# poradi_typu = {
|
||||
# Problem.TYP_ULOHA: 1,
|
||||
# Problem.TYP_SERIAL: 2,
|
||||
# Problem.TYP_ORG_CLANEK: 3,
|
||||
# Problem.TYP_TEMA: 4,
|
||||
# Problem.TYP_RES_CLANEK: 5
|
||||
# }
|
||||
# problemy = sorted(set(r.problem for r in reseni), key=lambda x:(poradi_typu[x.typ], x.kod_v_rocniku()))
|
||||
# #setridi problemy podle typu a poradi zadani
|
||||
# problem_index = {}
|
||||
# for i in range(len(problemy)):
|
||||
# problem_index[problemy[i].id] = i
|
||||
# #umoznuje zjistit index podle id problemu
|
||||
#
|
||||
# vysledky_resitele = {}
|
||||
# vysledkovka = []
|
||||
# vysledky_resitele = {}
|
||||
# vysledkovka = []
|
||||
#
|
||||
# # doplníme některé údaje do řádků výsledkovky pro řešitele ve skupině
|
||||
# for poradi, v in zip(sloupec_s_poradim(vysledky), vysledky):
|
||||
# v.poradi = poradi
|
||||
# v.body_celkem_rocnik = v.body
|
||||
# v.body_celkem_odjakziva = VysledkyKCisluOdjakziva.objects.get(resitel=v.resitel, cislo=context['cislo']).body
|
||||
# v.resitel.rocnik = v.resitel.rocnik(v.cislo.rocnik)
|
||||
# # doplníme některé údaje do řádků výsledkovky pro řešitele ve skupině
|
||||
# for poradi, v in zip(sloupec_s_poradim(vysledky), vysledky):
|
||||
# v.poradi = poradi
|
||||
# v.body_celkem_rocnik = v.body
|
||||
# v.body_celkem_odjakziva = VysledkyKCisluOdjakziva.objects.get(resitel=v.resitel, cislo=context['cislo']).body
|
||||
# v.resitel.rocnik = v.resitel.rocnik(v.cislo.rocnik)
|
||||
#
|
||||
# # je tady '', aby se nezobrazovala 0, pokud se řešitel o řešení úlohy ani nepokusil
|
||||
# v.body_ulohy = [''] * len(problemy)
|
||||
# # je tady '', aby se nezobrazovala 0, pokud se řešitel o řešení úlohy ani nepokusil
|
||||
# v.body_ulohy = [''] * len(problemy)
|
||||
#
|
||||
# v.titul = v.resitel.get_titul(v.body_celkem_odjakziva)
|
||||
# v.titul = v.resitel.get_titul(v.body_celkem_odjakziva)
|
||||
#
|
||||
# body_cislo_q = VysledkyZaCislo.objects.filter(resitel=v.resitel, cislo=context['cislo'])
|
||||
# v.body_cislo = body_cislo_q[0].body if body_cislo_q else 0
|
||||
# body_cislo_q = VysledkyZaCislo.objects.filter(resitel=v.resitel, cislo=context['cislo'])
|
||||
# v.body_cislo = body_cislo_q[0].body if body_cislo_q else 0
|
||||
#
|
||||
# vysledkovka.append(v)
|
||||
# vysledkovka.append(v)
|
||||
#
|
||||
# # připravíme si odkaz na řádek, abychom do něj mohli doplnit body za jednotlivé úlohy
|
||||
# vysledky_resitele[v.resitel.id] = v
|
||||
# # připravíme si odkaz na řádek, abychom do něj mohli doplnit body za jednotlivé úlohy
|
||||
# vysledky_resitele[v.resitel.id] = v
|
||||
#
|
||||
# # za každé řešení doplníme k příslušnému řešiteli a úloze body
|
||||
# for r in reseni:
|
||||
# vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] = r.body
|
||||
# # za každé řešení doplníme k příslušnému řešiteli a úloze body
|
||||
# for r in reseni:
|
||||
# vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] = r.body
|
||||
#
|
||||
# context['vysledkovka'] = vysledkovka
|
||||
# context['problemy'] = problemy
|
||||
# context['v_cisle_zadane'] = v_cisle_zadane
|
||||
# context['resene_problemy'] = resene_problemy
|
||||
# return context
|
||||
# context['vysledkovka'] = vysledkovka
|
||||
# context['problemy'] = problemy
|
||||
# context['v_cisle_zadane'] = v_cisle_zadane
|
||||
# context['resene_problemy'] = resene_problemy
|
||||
# return context
|
||||
|
||||
class ArchivTemataView(generic.ListView):
|
||||
model = Problem
|
||||
|
@ -509,20 +509,20 @@ class ArchivTemataView(generic.ListView):
|
|||
### Generovani vysledkovky
|
||||
|
||||
#class CisloVysledkovkaView(CisloView):
|
||||
# model = Cislo
|
||||
# template_name = 'seminar/archiv/cislo_vysledkovka.tex'
|
||||
# #content_type = 'application/x-tex; charset=UTF8'
|
||||
# #umozni rovnou stahnout TeXovsky dokument
|
||||
# content_type = 'text/plain; charset=UTF8'
|
||||
# #vypise na stranku textovy obsah vyTeXane vysledkovky k okopirovani
|
||||
# model = Cislo
|
||||
# template_name = 'seminar/archiv/cislo_vysledkovka.tex'
|
||||
# #content_type = 'application/x-tex; charset=UTF8'
|
||||
# #umozni rovnou stahnout TeXovsky dokument
|
||||
# content_type = 'text/plain; charset=UTF8'
|
||||
# #vypise na stranku textovy obsah vyTeXane vysledkovky k okopirovani
|
||||
#
|
||||
#class RocnikVysledkovkaView(RocnikView):
|
||||
# model = Rocnik
|
||||
# template_name = 'seminar/archiv/rocnik_vysledkovka.tex'
|
||||
# #content_type = 'application/x-tex; charset=UTF8'
|
||||
# #umozni rovnou stahnout TeXovsky dokument
|
||||
# content_type = 'text/plain; charset=UTF8'
|
||||
# #vypise na stranku textovy obsah vyTeXane vysledkovky k okopirovani
|
||||
# model = Rocnik
|
||||
# template_name = 'seminar/archiv/rocnik_vysledkovka.tex'
|
||||
# #content_type = 'application/x-tex; charset=UTF8'
|
||||
# #umozni rovnou stahnout TeXovsky dokument
|
||||
# content_type = 'text/plain; charset=UTF8'
|
||||
# #vypise na stranku textovy obsah vyTeXane vysledkovky k okopirovani
|
||||
|
||||
### Generovani obalek
|
||||
class CisloObalkyStruct:
|
||||
|
@ -534,8 +534,8 @@ class CisloObalkyStruct:
|
|||
def aktualniResitele(rocnik):
|
||||
letos = Rocnik.objects.get(rocnik = rocnik)
|
||||
return Resitel.objects.filter(rok_maturity__gt = letos.prvni_rok)
|
||||
# # ALERT: pokud nekdo nema vypleny rok maturity, tak neni aktualni, protoze Karel Tesar a jini
|
||||
# return Resitel.objects.filter(Q(rok_maturity__gt = letos.prvni_rok)|Q(rok_maturity = None))
|
||||
# # ALERT: pokud nekdo nema vypleny rok maturity, tak neni aktualni, protoze Karel Tesar a jini
|
||||
# return Resitel.objects.filter(Q(rok_maturity__gt = letos.prvni_rok)|Q(rok_maturity = None))
|
||||
|
||||
# Vraci QuerySet aktivnich resitelu =
|
||||
# jeste neodmaturovali &&
|
||||
|
@ -604,27 +604,27 @@ def obalkovaniView(request, rocnik, cislo):
|
|||
# TODO udelat neco jako get_objects_or_404
|
||||
# FIXME: prepsat, aby nepouzivalo VysledkyK...
|
||||
#def TitulyView(request, rocnik, cislo):
|
||||
# rocnik_obj = Rocnik.objects.get(rocnik = rocnik)
|
||||
# resitele = Resitel.objects.filter(rok_maturity__gte = rocnik_obj.prvni_rok)
|
||||
# cislo_obj = Cislo.objects.get(rocnik = rocnik_obj, cislo = cislo)
|
||||
# rocnik_obj = Rocnik.objects.get(rocnik = rocnik)
|
||||
# resitele = Resitel.objects.filter(rok_maturity__gte = rocnik_obj.prvni_rok)
|
||||
# cislo_obj = Cislo.objects.get(rocnik = rocnik_obj, cislo = cislo)
|
||||
#
|
||||
# asciijmena = []
|
||||
# broken = False
|
||||
# asciijmena = []
|
||||
# broken = False
|
||||
#
|
||||
# for resitel in resitele:
|
||||
# try:
|
||||
# vys = VysledkyKCisluOdjakziva.objects.get(resitel = resitel, cislo = cislo_obj)
|
||||
# body = vys.body
|
||||
# except ObjectDoesNotExist:
|
||||
# body = 0
|
||||
# resitel.titul = resitel.get_titul(body)
|
||||
# resitel.ascii = unicodedata.normalize('NFKD',resitel.jmeno+resitel.prijmeni).encode("ascii","ignore").replace(" ","")
|
||||
# if resitel.ascii not in asciijmena:
|
||||
# asciijmena.append(resitel.ascii)
|
||||
# else:
|
||||
# broken = True
|
||||
# for resitel in resitele:
|
||||
# try:
|
||||
# vys = VysledkyKCisluOdjakziva.objects.get(resitel = resitel, cislo = cislo_obj)
|
||||
# body = vys.body
|
||||
# except ObjectDoesNotExist:
|
||||
# body = 0
|
||||
# resitel.titul = resitel.get_titul(body)
|
||||
# resitel.ascii = unicodedata.normalize('NFKD',resitel.jmeno+resitel.prijmeni).encode("ascii","ignore").replace(" ","")
|
||||
# if resitel.ascii not in asciijmena:
|
||||
# asciijmena.append(resitel.ascii)
|
||||
# else:
|
||||
# broken = True
|
||||
#
|
||||
# return render(request, 'seminar/archiv/tituly.tex',{'resitele': resitele,'broken':broken},content_type="text/plain")
|
||||
# return render(request, 'seminar/archiv/tituly.tex',{'resitele': resitele,'broken':broken},content_type="text/plain")
|
||||
|
||||
|
||||
### Soustredeni
|
||||
|
@ -712,21 +712,21 @@ class ClankyResitelView(generic.ListView):
|
|||
|
||||
# FIXME: pokud chceme orgoclanky, tak nejak zavest do modelu a podle toho odkomentovat a upravit
|
||||
#class ClankyOrganizatorView(generic.ListView)<F12>:
|
||||
# model = Problem
|
||||
# template_name = 'seminar/clanky/organizatorske_clanky.html'
|
||||
# queryset = Problem.objects.filter(stav=Problem.STAV_ZADANY).select_related('cislo_zadani__rocnik').order_by('-cislo_zadani__rocnik__rocnik', 'kod')
|
||||
# model = Problem
|
||||
# template_name = 'seminar/clanky/organizatorske_clanky.html'
|
||||
# queryset = Problem.objects.filter(stav=Problem.STAV_ZADANY).select_related('cislo_zadani__rocnik').order_by('-cislo_zadani__rocnik__rocnik', 'kod')
|
||||
|
||||
|
||||
### Status
|
||||
|
||||
def StavDatabazeView(request):
|
||||
# nastaveni = Nastaveni.objects.get()
|
||||
# nastaveni = Nastaveni.objects.get()
|
||||
problemy = utils.seznam_problemu()
|
||||
muzi = Resitel.objects.filter(pohlavi_muz=True)
|
||||
zeny = Resitel.objects.filter(pohlavi_muz=False)
|
||||
return render(request, 'seminar/stav_databaze.html',
|
||||
{
|
||||
# 'nastaveni': nastaveni,
|
||||
# 'nastaveni': nastaveni,
|
||||
'problemy': problemy,
|
||||
|
||||
'resitele': Resitel.objects.all(),
|
||||
|
|
Loading…
Reference in a new issue