Browse Source

Merge branch 'xlfd'

Conflicts:
	seminar/admin.py
	seminar/views.py
remotes/origin/prednasky
Bc. Petr Pecha 8 years ago
parent
commit
daa046d287
  1. 11
      seminar/admin.py
  2. 19
      seminar/migrations/0048_add_cislo_datum_deadline_soustredeni.py
  3. 12
      seminar/models.py
  4. 2
      seminar/templates/seminar/titulnistrana.html
  5. 20
      seminar/templates/seminar/zadani/AktualniZadani.html
  6. 18
      seminar/views.py

11
seminar/admin.py

@ -84,7 +84,8 @@ class ResitelInline(admin.TabularInline):
class CisloInline(admin.TabularInline): class CisloInline(admin.TabularInline):
model = Cislo model = Cislo
fields = ['cislo', 'datum_vydani', 'datum_deadline', fields = ['cislo',
'datum_vydani', 'datum_deadline', 'datum_deadline_soustredeni',
'verejne_db', 'poznamka'] 'verejne_db', 'poznamka']
readonly_fields = ['cislo'] readonly_fields = ['cislo']
extra = 0 extra = 0
@ -257,7 +258,8 @@ class CisloAdmin(VersionAdmin):
'pdf' 'pdf'
] ]
}), }),
(u'Data', {'fields': ['datum_vydani', 'datum_deadline']}), (u'Data', {'fields': ['datum_vydani', 'datum_deadline',
'datum_deadline_soustredeni']}),
] ]
list_display = [ list_display = [
'kod', 'kod',
@ -419,8 +421,9 @@ class ProblemAdmin(VersionAdmin):
return readonly_fields return readonly_fields
if obj.cislo_zadani.faze != 'admin': if obj.cislo_zadani.faze != 'admin':
readonly_fields += ['nazev', 'text_zadani', 'body'] readonly_fields += ['nazev', 'text_zadani', 'body']
if obj.cislo_reseni.faze != 'admin': if obj.cislo_reseni:
readonly_fields += ['text_reseni'] if obj.cislo_reseni.faze != 'admin':
readonly_fields += ['text_reseni']
return readonly_fields return readonly_fields
def get_queryset(self, request): def get_queryset(self, request):

19
seminar/migrations/0048_add_cislo_datum_deadline_soustredeni.py

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('seminar', '0047_auto_20170120_2118'),
]
operations = [
migrations.AddField(
model_name='cislo',
name='datum_deadline_soustredeni',
field=models.DateField(help_text='Datum pro p\u0159\xedjem \u0159e\u0161en\xed pro \xfa\u010dast na soust\u0159ed\u011bn\xed', null=True, verbose_name='datum deadline soust\u0159ed\u011bn\xed', blank=True),
),
]

12
seminar/models.py

@ -105,7 +105,9 @@ class Skola(SeminarModelBase):
help_text=u'Neveřejná poznámka ke škole (plain text)') help_text=u'Neveřejná poznámka ke škole (plain text)')
def __str__(self): def __str__(self):
return force_unicode(u'%s, %s, %s' % (self.nazev, self.ulice, self.mesto)) return force_unicode(u'%s, %s, %s' % (self.nazev,
self.ulice,
self.mesto))
@reversion.register(ignore_duplicate_revisions=True) @reversion.register(ignore_duplicate_revisions=True)
@ -338,7 +340,13 @@ class Cislo(SeminarModelBase):
datum_deadline = models.DateField(u'datum deadline', blank=True, null=True, datum_deadline = models.DateField(u'datum deadline', blank=True, null=True,
help_text=u'Datum pro příjem řešení úloh zadaných v tomto čísle') help_text=u'Datum pro příjem řešení úloh zadaných v tomto čísle')
verejne_db = models.BooleanField(u'číslo zveřejněno', db_column='verejne', default=False) datum_deadline_soustredeni = models.DateField(
u'datum deadline soustředění',
blank=True, null=True,
help_text=u'Datum pro příjem řešení pro účast na soustředění')
verejne_db = models.BooleanField(u'číslo zveřejněno',
db_column='verejne', default=False)
verejna_vysledkovka = models.BooleanField( verejna_vysledkovka = models.BooleanField(
u'zveřejněna výsledkovka', u'zveřejněna výsledkovka',

2
seminar/templates/seminar/titulnistrana.html

@ -20,7 +20,7 @@ M&M je korespondenční seminář. Několikrát do roka zdarma vydáváme č
<div class="novinky"> <div class="novinky">
{% if dead %} {% if dead %}
<div class="odpocet"> <div class="odpocet">
<p><b>Do konce <a href="https://mam.mff.cuni.cz/zadani/aktualni/">odeslání řešení</a> zbývá:<br> <p><b>Do konce <a href="https://mam.mff.cuni.cz/zadani/aktualni/">odeslání řešení</a> {% if deadline_soustredeni %}(pro účast na soustředění) {% endif %}zbývá:<br>
<big>{{ted|timesince:dead}}</big></b></p> <big>{{ted|timesince:dead}}</big></b></p>
</div> </div>
{% endif %} {% endif %}

20
seminar/templates/seminar/zadani/AktualniZadani.html

@ -19,12 +19,20 @@
{% if user.is_staff or verejne %} {% if user.is_staff or verejne %}
{% if user.is_staff and not verejne %}<div class="mam-org-only">{% endif %} {% if user.is_staff and not verejne %}<div class="mam-org-only">{% endif %}
{% if ac.zadane_problemy.all %} {% if ac.zadane_problemy.all %}
<div class="zadani_azad_termin"> {% if ac.datum_deadline_soustredeni %}
Termín odeslání {{ac.cislo}}. série: {{ac.datum_deadline}} <div class="zadani_azad_termin">
</div> Termín odeslání {{ac.cislo}}. série pro účast na soustředění:
{% endif %} {{ac.datum_deadline_soustredeni}}
{#TODO a co speciální deadline pro účast na soustředění? #} </div>
{% endif %}
{% endif %}
{% if ac.zadane_problemy.all %}
<div class="zadani_azad_termin">
Termín odeslání {{ac.cislo}}. série: {{ac.datum_deadline}}
</div>
{% endif %}
{% if ac.pdf %} {% if ac.pdf %}
<p><a href="{{ac.pdf.url}}">Aktuální číslo v PDF</a></p> <p><a href="{{ac.pdf.url}}">Aktuální číslo v PDF</a></p>

18
seminar/views.py

@ -101,11 +101,26 @@ class TitulniStranaView(generic.ListView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(TitulniStranaView, self).get_context_data(**kwargs) context = super(TitulniStranaView, self).get_context_data(**kwargs)
nastaveni = get_object_or_404(Nastaveni) nastaveni = get_object_or_404(Nastaveni)
cas_deadline = nastaveni.aktualni_cislo.datum_deadline
# zjisteni spravneho terminu
if nastaveni.aktualni_cislo.datum_deadline_soustredeni:
cas_deadline_soustredeni = nastaveni.aktualni_cislo.\
datum_deadline_soustredeni
if (datetime.now().date() < cas_deadline_soustredeni):
cas_deadline = cas_deadline_soustredeni
deadline_soustredeni = True
else:
cas_deadline = nastaveni.aktualni_cislo.datum_deadline
deadline_soustredeni = False
else:
cas_deadline = nastaveni.aktualni_cislo.datum_deadline
deadline_soustredeni = False
# Pokud neni zverejnene cislo nezverejnuj odpocet # Pokud neni zverejnene cislo nezverejnuj odpocet
if nastaveni.aktualni_cislo.verejne(): if nastaveni.aktualni_cislo.verejne():
# pokus se zjistit termin odeslani a pokud neni zadany, # pokus se zjistit termin odeslani a pokud neni zadany,
# nezverejnuj odpocet # nezverejnuj odpocet
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())
@ -114,6 +129,7 @@ class TitulniStranaView(generic.ListView):
context['dead'] = None context['dead'] = None
else: else:
context['dead'] = None context['dead'] = None
context['deadline_soustredeni'] = deadline_soustredeni
return context return context
class StareNovinkyView(generic.ListView): class StareNovinkyView(generic.ListView):

Loading…
Cancel
Save