seminar | Cislo | pridan datum pro ucast na soustredeni
This commit is contained in:
parent
57c8241ac7
commit
5adc4eecb9
6 changed files with 64 additions and 17 deletions
|
@ -84,7 +84,7 @@ class ResitelInline(admin.TabularInline):
|
|||
|
||||
class CisloInline(admin.TabularInline):
|
||||
model = Cislo
|
||||
fields = ['cislo', 'datum_vydani', 'datum_deadline', 'verejne_db', 'poznamka']
|
||||
fields = ['cislo', 'datum_vydani', 'datum_deadline', 'datum_deadline_soustredeni', 'verejne_db', 'poznamka']
|
||||
readonly_fields = ['cislo']
|
||||
extra = 0
|
||||
formfield_overrides = {
|
||||
|
@ -256,7 +256,7 @@ class CisloAdmin(VersionAdmin):
|
|||
'pdf'
|
||||
]
|
||||
}),
|
||||
(u'Data', {'fields': ['datum_vydani', 'datum_deadline']}),
|
||||
(u'Data', {'fields': ['datum_vydani', 'datum_deadline', 'datum_deadline_soustredeni']}),
|
||||
]
|
||||
list_display = [
|
||||
'kod',
|
||||
|
|
|
@ -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),
|
||||
),
|
||||
]
|
|
@ -338,6 +338,11 @@ class Cislo(SeminarModelBase):
|
|||
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')
|
||||
|
||||
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(u'zveřejněna výsledkovka', default=False,
|
||||
|
|
|
@ -20,7 +20,7 @@ M&M je korespondenční seminář. Několikrát do roka zdarma vydáváme č
|
|||
<div class="novinky">
|
||||
{% if dead %}
|
||||
<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>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
|
|
@ -19,12 +19,20 @@
|
|||
{% if user.is_staff or verejne %}
|
||||
{% if user.is_staff and not verejne %}<div class="mam-org-only">{% endif %}
|
||||
|
||||
{% if ac.zadane_problemy.all %}
|
||||
<div class="zadani_azad_termin">
|
||||
Termín odeslání {{ac.cislo}}. série: {{ac.datum_deadline}}
|
||||
</div>
|
||||
{% endif %}
|
||||
{#TODO a co speciální deadline pro účast na soustředění? #}
|
||||
{% if ac.zadane_problemy.all %}
|
||||
{% if ac.datum_deadline_soustredeni %}
|
||||
<div class="zadani_azad_termin">
|
||||
Termín odeslání {{ac.cislo}}. série pro účast na soustředění:
|
||||
{{ac.datum_deadline_soustredeni}}
|
||||
</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 %}
|
||||
<p><a href="{{ac.pdf.url}}">Aktuální číslo v PDF</a></p>
|
||||
|
|
|
@ -101,16 +101,31 @@ class TitulniStranaView(generic.ListView):
|
|||
def get_context_data(self, **kwargs):
|
||||
context = super(TitulniStranaView, self).get_context_data(**kwargs)
|
||||
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
|
||||
if nastaveni.aktualni_cislo.verejne():
|
||||
# pokus se zjistit termin odeslani a pokud neni zadany,
|
||||
# nezverejnuj odpocet
|
||||
try:
|
||||
context['dead'] = datetime.combine(cas_deadline, datetime.max.time())
|
||||
context['ted'] = datetime.now()
|
||||
except:
|
||||
context['dead'] = None
|
||||
# pokus se zjistit termin odeslani a pokud neni zadany,
|
||||
# nezverejnuj odpocet
|
||||
try:
|
||||
context['dead'] = datetime.combine(cas_deadline,
|
||||
datetime.max.time())
|
||||
context['ted'] = datetime.now()
|
||||
context['deadline_soustredeni'] = deadline_soustredeni
|
||||
except:
|
||||
context['dead'] = None
|
||||
else:
|
||||
context['dead'] = None
|
||||
return context
|
||||
|
|
Loading…
Reference in a new issue