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