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): | class CisloInline(admin.TabularInline): | ||||||
|     model = Cislo |     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'] |     readonly_fields = ['cislo'] | ||||||
|     extra = 0 |     extra = 0 | ||||||
|     formfield_overrides = { |     formfield_overrides = { | ||||||
|  | @ -256,7 +256,7 @@ 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', | ||||||
|  |  | ||||||
|  | @ -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, |     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') | ||||||
| 
 | 
 | ||||||
|  |     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) |     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, |     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"> | <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 %} | ||||||
|  |  | ||||||
|  | @ -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> | ||||||
|  |  | ||||||
|  | @ -101,16 +101,31 @@ 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 | ||||||
|           try: |             try: | ||||||
|             context['dead'] = datetime.combine(cas_deadline, datetime.max.time()) |                 context['dead'] = datetime.combine(cas_deadline, | ||||||
|             context['ted'] = datetime.now() |                                                    datetime.max.time()) | ||||||
|           except: |                 context['ted'] = datetime.now() | ||||||
|               context['dead'] = None |                 context['deadline_soustredeni'] = deadline_soustredeni | ||||||
|  |             except: | ||||||
|  |                 context['dead'] = None | ||||||
|         else: |         else: | ||||||
|             context['dead'] = None |             context['dead'] = None | ||||||
|         return context |         return context | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Bc. Petr Pecha
						Bc. Petr Pecha