Browse Source

Nove sketche views pro seminar

remotes/origin/feincms
Tomas Gavenciak 10 years ago
parent
commit
467c7c53b3
  1. 2
      mamweb/templates/base.html
  2. 19
      mamweb/templates/menu.html
  3. 1
      mamweb/urls.py
  4. 22
      seminar/models.py
  5. 22
      seminar/templates/seminar/cislo.html
  6. 6
      seminar/templates/seminar/problem.html
  7. 18
      seminar/templates/seminar/rocnik.html
  8. 3
      seminar/urls.py
  9. 6
      seminar/views.py

2
mamweb/templates/base.html

@ -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 %}

19
mamweb/templates/menu.html

@ -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 %}

1
mamweb/urls.py

@ -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')),

22
seminar/models.py

@ -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):

22
seminar/templates/seminar/cislo.html

@ -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

6
seminar/templates/seminar/problem.html

@ -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

@ -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 %}

3
seminar/urls.py

@ -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'),
) )

6
seminar/views.py

@ -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…
Cancel
Save