Browse Source

Webove rozhrani k prednaskam, prototyp.

remotes/origin/fix-prekryvani-korektur
parent
commit
de536fe081
  1. 3
      mamweb/urls.py
  2. 26
      prednasky/templates/prednasky/metaseznam_prednasek.html
  3. 21
      prednasky/templates/prednasky/seznam_prednasek.html
  4. 21
      prednasky/templates/prednasky/seznam_prednasek_export.txt
  5. 15
      prednasky/urls.py
  6. 39
      prednasky/views.py
  7. 5
      seminar/urls.py

3
mamweb/urls.py

@ -18,6 +18,9 @@ urlpatterns = [
# Korekturovaci aplikace (ma vlastni podadresare) # Korekturovaci aplikace (ma vlastni podadresare)
url(r'^', include('korektury.urls')), url(r'^', include('korektury.urls')),
# Prednaskova aplikace (ma vlastni podadresare)
url(r'^', include('prednasky.urls')),
# Comments (interni i verejne) # Comments (interni i verejne)
url(r'^comments_dj/', include('django_comments.urls')), url(r'^comments_dj/', include('django_comments.urls')),

26
prednasky/templates/prednasky/metaseznam_prednasek.html

@ -0,0 +1,26 @@
{% extends "prednasky/Base.html" %}
{% block header %}hlasovani{% endblock %}
{% block nadpis1a %}{% block nadpis1b %}
Hlasování o přednáškách
{% endblock %}{% endblock %}
{% block content %}
{# Projdi vsechny seznamy #}
<div class="mam-org-only">
<ul>
{% for seznam in object_list %}
<li>
{% if seznam.stav == 1 %} {# STAV_NAHRH = 1 #}
<a href="/prednasky/seznam_prednasek/{{seznam.id}}">Návrh přednášek na soustředění {{seznam.soustredeni.misto}} </a>
{% else %}
<a href="/prednasky/seznam_prednasek/{{seznam.id}}">Seznam přednášek na soustředění {{seznam.soustredeni.misto}} </a>
{% endif %}
<a href="/prednasky/seznam_prednasek/{{seznam.id}}/export">Export</a>
</li>
{% endfor %}
{% endblock %}

21
prednasky/templates/prednasky/seznam_prednasek.html

@ -0,0 +1,21 @@
{% extends "prednasky/Base.html" %}
{% block header %}seznam_prednasek{% endblock %}
{% block nadpis1a %}{% block nadpis1b %}
Seznam přednášek
{% endblock %}{% endblock %}
{% block content %}
<div class="mam-org-only">
<ul>
{# Projdi vsechny prednasky #}
{% for prednaska in object_list %}
<li>
<strong>{{prednaska.nazev}}</strong> (<i>{{prednaska.obor}},{{prednaska.obtiznost}}</i>) - {{prednaska.org}}
</li>
{% endfor %}
{% endblock %}

21
prednasky/templates/prednasky/seznam_prednasek_export.txt

@ -0,0 +1,21 @@
{% block content %}
{% spaceless %}
{% for hlas in hlasovani %}
hlas({{hlas.ucastnik}},{{hlas.prednaska.id}},{{hlas.body}})
{% endfor %}
{% for prednaska in prednasky %}
prednaska({{prednaska.id}},{{prednaska.org.id}},{{prednaska.obtiznost}},{{prednaska.obor}})
{% endfor %}
{% for org in orgove %}
org({{org.id}},4,0,15)
{% endfor %}
{% for org in orgove %}
{{org.id}};{{org}}
{% endfor %}
{% for prednaska in prednasky %}
{{prednaska.id}};{{prednaska.nazev}};{{prednaska.org.id}}
{{prednaska.body}}
{% endfor %}
{% endspaceless %}
{% endblock %}

15
prednasky/urls.py

@ -0,0 +1,15 @@
from django.conf.urls import * # NOQA
from django.conf.urls import patterns, url
from django.contrib.auth.decorators import user_passes_test
from . import views
staff_member_required = user_passes_test(lambda u: u.is_staff)
urlpatterns = [
url(r'^prednasky/$', views.newPrednaska),
url(r'^prednasky/hotovo$', views.Prednaska_hotovo),
url(r'^prednasky/metaseznam_prednasek$', staff_member_required(views.MetaSeznamListView.as_view()), name='metaseznam-list'),
url(r'^prednasky/seznam_prednasek/(?P<seznam>\d+)/$', staff_member_required(views.SeznamListView.as_view()), name='seznam-list'),
url(r'^prednasky/seznam_prednasek/(?P<seznam>\d+)/export$', staff_member_required(views.SeznamExportView), name='seznam-export'),
# url(r'^korektury/help/', staff_member_required(views.KorekturyHelpView.as_view()), name='korektury-help'),
]

39
prednasky/views.py

@ -1,4 +1,5 @@
from django.shortcuts import render from django.shortcuts import render,get_object_or_404
from django.views import generic
from prednasky.forms import NewPrednaskyForm from prednasky.forms import NewPrednaskyForm
from prednasky.models import Seznam, Hlasovani, Prednaska from prednasky.models import Seznam, Hlasovani, Prednaska
from django.shortcuts import HttpResponseRedirect from django.shortcuts import HttpResponseRedirect
@ -24,7 +25,7 @@ def newPrednaska(request):
hlasovani.prednaska = Prednaska.objects.filter(pk = int(i[1:]))[0] hlasovani.prednaska = Prednaska.objects.filter(pk = int(i[1:]))[0]
hlasovani.body = int(request.POST[i]) hlasovani.body = int(request.POST[i])
hlasovani.ucastnik = jmeno hlasovani.ucastnik = jmeno
hlasovani.seznam = seznam hlasovani.seznam = seznam
hlasovani.save() hlasovani.save()
# presmerovani na prave vzniklou galerii # presmerovani na prave vzniklou galerii
@ -40,6 +41,36 @@ def newPrednaska(request):
def Prednaska_hotovo(request): def Prednaska_hotovo(request):
return render(request, 'prednasky/hotovo.html') return render(request, 'prednasky/hotovo.html')
# Create your views here. class MetaSeznamListView(generic.ListView):
model = Seznam
template_name = 'prednasky/metaseznam_prednasek.html'
class SeznamListView(generic.ListView):
template_name = 'prednasky/seznam_prednasek.html'
def get_queryset(self):
print self.kwargs
self.seznam = get_object_or_404(Seznam,id=self.kwargs["seznam"])
return Prednaska.objects.filter(seznamy = self.seznam)
def SeznamExportView(request,seznam):
seznam_obj = Seznam.objects.get(id=seznam)
hlasovani = Hlasovani.objects.filter(seznam=seznam)
prednasky = Prednaska.objects.filter(seznamy=seznam)
orgove = set(map(lambda x:x.org,prednasky))
ucastnici = list(set(map(lambda x:x.ucastnik,hlasovani)))
for p in prednasky:
p.body = []
for u in ucastnici:
p.body.append(hlasovani.get(ucastnik=u,prednaska=p).body)
for h in hlasovani:
h.ucastnik = hash(h.ucastnik)
return render(request, 'prednasky/seznam_prednasek_export.txt',
{"hlasovani":hlasovani,"prednasky":prednasky,"orgove":orgove},
content_type="text/plain")

5
seminar/urls.py

@ -3,16 +3,11 @@ from django.conf.urls import patterns, url
from django.contrib.auth.decorators import user_passes_test from django.contrib.auth.decorators import user_passes_test
from . import views, export from . import views, export
from utils import staff_member_required from utils import staff_member_required
from prednasky.views import newPrednaska, Prednaska_hotovo
from django.views.generic.base import RedirectView from django.views.generic.base import RedirectView
staff_member_required = user_passes_test(lambda u: u.is_staff) staff_member_required = user_passes_test(lambda u: u.is_staff)
urlpatterns = [ urlpatterns = [
# prednasky
url(r'^prednasky/$', newPrednaska),
url(r'^prednasky/hotovo$', Prednaska_hotovo),
# REDIRECTy # REDIRECTy
url(r'^jak-resit/$', RedirectView.as_view(url='/co-je-MaM/jak-resit/')), url(r'^jak-resit/$', RedirectView.as_view(url='/co-je-MaM/jak-resit/')),

Loading…
Cancel
Save