Nove sketche views pro seminar
This commit is contained in:
		
							parent
							
								
									f56a37edfa
								
							
						
					
					
						commit
						467c7c53b3
					
				
					 9 changed files with 75 additions and 24 deletions
				
			
		|  | @ -18,7 +18,7 @@ | ||||||
|       </div> |       </div> | ||||||
|       <div class='row'> |       <div class='row'> | ||||||
| 	<div class='col-md-4' style=''> | 	<div class='col-md-4' style=''> | ||||||
| 	  Menu | 	  {% include "menu.html" %} | ||||||
| 	</div> | 	</div> | ||||||
| 	<div class='col-md-8'> | 	<div class='col-md-8'> | ||||||
| 	  {% block content %} | 	  {% block content %} | ||||||
|  |  | ||||||
|  | @ -1,18 +1,3 @@ | ||||||
| {% load i18n menu_tags cache %} | {% load i18n cache %} | ||||||
| 
 | 
 | ||||||
| {% for child in children %} | MENU | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| <li class="{% if child.ancestor %}ancestor{% endif %}{% if child.selected %} active{% endif %}{% if child.children %} dropdown{% endif %}"> |  | ||||||
|     {% if child.children %}<a class="dropdown-toggle" data-toggle="dropdown" href="#">{{ child.get_menu_title }} <span class="caret"></span></a> |  | ||||||
|     <ul class="dropdown-menu"> |  | ||||||
|         {% show_menu from_level to_level extra_inactive extra_active template "" "" child %} |  | ||||||
|     </ul> |  | ||||||
|     {% else %} |  | ||||||
|     <a href="{{ child.get_absolute_url }}"><span>{{ child.get_menu_title }}</span></a> |  | ||||||
|     {% endif %} |  | ||||||
| </li> |  | ||||||
| 
 |  | ||||||
| {% if class and forloop.last and not forloop.parentloop %} |  | ||||||
| {% endif %} |  | ||||||
| {% endfor %} |  | ||||||
|  |  | ||||||
|  | @ -7,6 +7,7 @@ from django.conf import settings | ||||||
| urlpatterns = i18n_patterns('', | urlpatterns = i18n_patterns('', | ||||||
| 
 | 
 | ||||||
|     url(r'^admin/', include(admin.site.urls)),  # NOQA |     url(r'^admin/', include(admin.site.urls)),  # NOQA | ||||||
|  |     url(r'^r/', include('django.conf.urls.shortcut')), | ||||||
|     url(r'^admin_tools/', include('admin_tools.urls')), |     url(r'^admin_tools/', include('admin_tools.urls')), | ||||||
|     url(r'^ckeditor/', include('ckeditor.urls')), |     url(r'^ckeditor/', include('ckeditor.urls')), | ||||||
|     url(r'^', include('seminar.urls')), |     url(r'^', include('seminar.urls')), | ||||||
|  |  | ||||||
|  | @ -9,6 +9,7 @@ from django.utils import timezone | ||||||
| from django.conf import settings | from django.conf import settings | ||||||
| from django.utils.encoding import python_2_unicode_compatible | from django.utils.encoding import python_2_unicode_compatible | ||||||
| from django.utils.encoding import force_unicode | from django.utils.encoding import force_unicode | ||||||
|  | from django.core.urlresolvers import reverse | ||||||
| 
 | 
 | ||||||
| from django_countries.fields import CountryField | from django_countries.fields import CountryField | ||||||
| from solo.models import SingletonModel | from solo.models import SingletonModel | ||||||
|  | @ -161,6 +162,12 @@ class Rocnik(models.Model): | ||||||
|         else: |         else: | ||||||
|             return force_unicode(self.rocnik) |             return force_unicode(self.rocnik) | ||||||
| 
 | 
 | ||||||
|  |     def verejna_cisla(self): | ||||||
|  |         return [c for c in self.cisla.all() if c.verejne()] | ||||||
|  | 
 | ||||||
|  |     def druhy_rok(self): | ||||||
|  |         return self.prvni_rok + 1 | ||||||
|  | 
 | ||||||
| @python_2_unicode_compatible | @python_2_unicode_compatible | ||||||
| class Cislo(models.Model): | class Cislo(models.Model): | ||||||
| 
 | 
 | ||||||
|  | @ -173,7 +180,7 @@ class Cislo(models.Model): | ||||||
|     # Interní ID |     # Interní ID | ||||||
|     id = models.AutoField(primary_key = True) |     id = models.AutoField(primary_key = True) | ||||||
| 
 | 
 | ||||||
|     rocnik = models.ForeignKey(Rocnik, verbose_name=u'ročník') |     rocnik = models.ForeignKey(Rocnik, verbose_name=u'ročník', related_name='cisla') | ||||||
| 
 | 
 | ||||||
|     cislo = models.CharField(u'název čísla', max_length=32, |     cislo = models.CharField(u'název čísla', max_length=32, | ||||||
|         help_text=u'Většinou jen "1", vyjímečně "7-8", lexikograficky určije pořadí v ročníku!') |         help_text=u'Většinou jen "1", vyjímečně "7-8", lexikograficky určije pořadí v ročníku!') | ||||||
|  | @ -191,6 +198,12 @@ class Cislo(models.Model): | ||||||
|     def __str__(self): |     def __str__(self): | ||||||
|         return force_unicode(u'%s' % (self.kod(),)) |         return force_unicode(u'%s' % (self.kod(),)) | ||||||
| 
 | 
 | ||||||
|  |     def verejne(self): | ||||||
|  |         return (self.datum_vydani and self.datum_vydani <= datetime.date.today()) | ||||||
|  | 
 | ||||||
|  |     def get_absolute_url(self): | ||||||
|  |         return reverse('seminar.cislo', args=[str(self.id)]) | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| @python_2_unicode_compatible | @python_2_unicode_compatible | ||||||
| class Problem(models.Model): | class Problem(models.Model): | ||||||
|  | @ -252,6 +265,13 @@ class Problem(models.Model): | ||||||
|     def __str__(self): |     def __str__(self): | ||||||
|         return force_unicode(u'%s (%s)' % (self.nazev, self.stav)) |         return force_unicode(u'%s (%s)' % (self.nazev, self.stav)) | ||||||
| 
 | 
 | ||||||
|  |     def kod_v_rocniku(self): | ||||||
|  |         if self.typ == self.TYP_ULOHA: | ||||||
|  |             return force_unicode(u"%s.u%s" % (self.cislo_zadani.cislo, self.kod,)) | ||||||
|  |         if self.typ == self.TYP_TEMA: | ||||||
|  |             return force_unicode(u"t%s" % (self.kod,)) | ||||||
|  |         return '' | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| @python_2_unicode_compatible | @python_2_unicode_compatible | ||||||
| class Reseni(models.Model): | class Reseni(models.Model): | ||||||
|  |  | ||||||
|  | @ -3,14 +3,32 @@ | ||||||
| 
 | 
 | ||||||
| {% block content %} | {% block content %} | ||||||
| <div> | <div> | ||||||
|   <h2>Číslo {{ cislo }} [id {{ cislo.id}}]</h2> |   <h2>Číslo {{ cislo }}</h2> | ||||||
|  | 
 | ||||||
|  |   <p>Ročník {% url 'seminar.rocnik' cislo.rocnik.id %} | ||||||
|  | 
 | ||||||
|  |   <h3>Zadané problémy</h3> | ||||||
|  |   <ul> | ||||||
|  |   {% for p in cislo.zadane_problemy.all %} | ||||||
|  |     <li><a href='{% url 'seminar.problem' p.id %}'>{{ p.kod_v_rocniku }} {{ p.nazev }} ({{ p.body }}b)</a> | ||||||
|  |   {% endfor %} | ||||||
|  |   </ul> | ||||||
|  | 
 | ||||||
|  |   <h3>Řešené problémy</h3> | ||||||
|  |   <ul> | ||||||
|  |   {% for p in cislo.resene_problemy.all %} | ||||||
|  |     <li><a href='{% url 'seminar.problem' p.id %}'>{{ p.kod_v_rocniku }} {{ p.nazev }} ({{ p.body }}b)</a> | ||||||
|  |   {% endfor %} | ||||||
|  |   </ul> | ||||||
|  | 
 | ||||||
|  |   <h3>Výsledkovka</h3> | ||||||
| 
 | 
 | ||||||
|   <table class='vysledkovka'> |   <table class='vysledkovka'> | ||||||
|     <tr class='border-b'> |     <tr class='border-b'> | ||||||
|       <th class='border-r'># |       <th class='border-r'># | ||||||
|       <th class='border-r'>Jméno |       <th class='border-r'>Jméno | ||||||
|       {% for p in problemy %} |       {% for p in problemy %} | ||||||
|       <th class='border-r'>{{ p.cislo_zadani.cislo }}.{{ p.kod }} |       <th class='border-r'><a href="{% url 'seminar.problem' p.id %}">{{ p.cislo_zadani.cislo }}.{{ p.kod }}</a> | ||||||
|       {% endfor %} |       {% endfor %} | ||||||
|       <th class='border-r'>Sum |       <th class='border-r'>Sum | ||||||
|       <th>Celkem |       <th>Celkem | ||||||
|  |  | ||||||
|  | @ -3,7 +3,11 @@ | ||||||
| 
 | 
 | ||||||
| {% block content %} | {% block content %} | ||||||
| <div> | <div> | ||||||
|   <h2>Problém {{ problem.nazev }}</h2> |   <h2>Problém {{ problem.kod_v_rocniku }} {{ problem.nazev }}</h2> | ||||||
|  | 
 | ||||||
|  |   <p>Zadáno v čísle <a href='{% url 'seminar.cislo' problem.cislo_zadani.id %}'>{{ problem.cislo_zadani.kod }}</a>, | ||||||
|  |   <p>řešeno v čísle <a href='{% url 'seminar.cislo' problem.cislo_reseni.id %}'>{{ problem.cislo_reseni.kod }}</a>, | ||||||
|  |   | ||||||
| 
 | 
 | ||||||
|   <h3>Text</h3> |   <h3>Text</h3> | ||||||
|   {{ problem.text_problemu |safe }} |   {{ problem.text_problemu |safe }} | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								seminar/templates/seminar/rocnik.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								seminar/templates/seminar/rocnik.html
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,18 @@ | ||||||
|  | {% extends "base.html" %} | ||||||
|  | {% load staticfiles sekizai_tags %} | ||||||
|  | 
 | ||||||
|  | {% block content %} | ||||||
|  | <div> | ||||||
|  |   <h2>Ročník {{ rocnik.roman }}</h2> | ||||||
|  | 
 | ||||||
|  |   <p>Ročník číslo {{ rocnik.rocnik }} ({{ rocnik.prvni_rok }}/{{ rocnik.druhy_rok }}) | ||||||
|  | 
 | ||||||
|  |   <ul> | ||||||
|  |   {% for c in rocnik.verejna_cisla %} | ||||||
|  |   <li><a href="{% url 'seminar.cislo' c.id %}">Číslo {{ c.kod }}</a> | ||||||
|  |   {% endfor %} | ||||||
|  |   </ul> | ||||||
|  | 
 | ||||||
|  | </div> | ||||||
|  | {% endblock content %} | ||||||
|  | 
 | ||||||
|  | @ -2,7 +2,8 @@ from django.conf.urls import patterns, url | ||||||
| from . import views | from . import views | ||||||
| 
 | 
 | ||||||
| urlpatterns = patterns('', | urlpatterns = patterns('', | ||||||
|     url(r'^problem/(?P<pk>\d+)/$', views.ProblemView.as_view(), name='seminar.problem'), |     url(r'^rocnik/(?P<pk>\d+)/$', views.RocnikView.as_view(), name='seminar.rocnik'), | ||||||
|     url(r'^cislo/(?P<pk>\d+)/$', views.CisloView.as_view(), name='seminar.cislo'), |     url(r'^cislo/(?P<pk>\d+)/$', views.CisloView.as_view(), name='seminar.cislo'), | ||||||
|  |     url(r'^problem/(?P<pk>\d+)/$', views.ProblemView.as_view(), name='seminar.problem'), | ||||||
|     url(r'^zadani/$', 'seminar.views.AktualZadaniView'), |     url(r'^zadani/$', 'seminar.views.AktualZadaniView'), | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | @ -2,7 +2,7 @@ from django.shortcuts import get_object_or_404, render | ||||||
| from django.http import HttpResponseRedirect | from django.http import HttpResponseRedirect | ||||||
| from django.core.urlresolvers import reverse | from django.core.urlresolvers import reverse | ||||||
| from django.views import generic | from django.views import generic | ||||||
| from .models import Problem, Cislo, Reseni, VysledkyKCislu, Nastaveni | from .models import Problem, Cislo, Reseni, VysledkyKCislu, Nastaveni, Rocnik | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def AktualZadaniView(request): | def AktualZadaniView(request): | ||||||
|  | @ -12,6 +12,10 @@ def AktualZadaniView(request): | ||||||
|                 }, |                 }, | ||||||
|             ) |             ) | ||||||
| 
 | 
 | ||||||
|  | class RocnikView(generic.DetailView): | ||||||
|  |     model = Rocnik | ||||||
|  |     template_name = 'seminar/rocnik.html' | ||||||
|  | 
 | ||||||
| class ProblemView(generic.DetailView): | class ProblemView(generic.DetailView): | ||||||
|     model = Problem |     model = Problem | ||||||
|     template_name = 'seminar/problem.html' |     template_name = 'seminar/problem.html' | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Tomas Gavenciak
						Tomas Gavenciak