Obálky do personálního
This commit is contained in:
parent
a6eebb2d59
commit
ba2ea74a04
4 changed files with 35 additions and 30 deletions
|
@ -1,3 +1,8 @@
|
|||
import tempfile
|
||||
import subprocess
|
||||
import shutil
|
||||
import http
|
||||
|
||||
from django.shortcuts import render
|
||||
from django.urls import reverse
|
||||
from django.views import generic
|
||||
|
@ -6,6 +11,7 @@ from django.views.decorators.debug import sensitive_post_parameters
|
|||
from django.views.generic.base import TemplateView
|
||||
from django.contrib.auth.models import User, Permission, Group, AnonymousUser
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
from django.contrib.staticfiles.finders import find
|
||||
from django.db import transaction
|
||||
from django.http import HttpResponse
|
||||
from django.utils import timezone
|
||||
|
@ -53,6 +59,31 @@ class CojemamOrganizatoriStariView(generic.ListView):
|
|||
).order_by('-organizuje_do')
|
||||
|
||||
|
||||
def obalkyView(request, resitele):
|
||||
if len(resitele) == 0:
|
||||
return HttpResponse(
|
||||
render(request, 'universal.html', {
|
||||
'title': 'Není pro koho vyrobit obálky.',
|
||||
'text': 'Právě ses pokusil/a vygenerovat obálky pro prázdnou množinu lidí. Můžeš to zkusit změnit, případně se zeptej webařů :-)',
|
||||
}),
|
||||
status=http.HTTPStatus.NOT_FOUND,
|
||||
)
|
||||
|
||||
tex = render(request, 'personalni/obalky.tex', {
|
||||
'resitele': resitele
|
||||
}).content
|
||||
|
||||
with tempfile.TemporaryDirectory() as tempdir:
|
||||
with open(tempdir+"/obalky.tex", "w") as texfile:
|
||||
texfile.write(tex.decode())
|
||||
shutil.copy(find('seminar/lisak.pdf'), tempdir)
|
||||
subprocess.call(["pdflatex", "obalky.tex"], cwd=tempdir)
|
||||
|
||||
with open(tempdir+"/obalky.pdf", "rb") as pdffile:
|
||||
response = HttpResponse(pdffile.read(), content_type='application/pdf')
|
||||
return response
|
||||
|
||||
|
||||
class OrgoRozcestnikView(TemplateView):
|
||||
""" Zobrazí organizátorský rozcestník."""
|
||||
|
||||
|
|
|
@ -8,7 +8,6 @@ from django.http import Http404
|
|||
from django.db.models import Q, Sum, Count
|
||||
from django.views.generic.base import RedirectView
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.contrib.staticfiles.finders import find
|
||||
|
||||
import seminar.models as s
|
||||
import seminar.models as m
|
||||
|
@ -26,18 +25,15 @@ from vysledkovky.utils import body_resitelu, VysledkovkaCisla, \
|
|||
from datetime import date, datetime
|
||||
from itertools import groupby
|
||||
from collections import OrderedDict
|
||||
import tempfile
|
||||
import subprocess
|
||||
import shutil
|
||||
import os
|
||||
import os.path as op
|
||||
from django.conf import settings
|
||||
import unicodedata
|
||||
import logging
|
||||
import time
|
||||
import http
|
||||
|
||||
from seminar.utils import aktivniResitele
|
||||
import personalni.views
|
||||
|
||||
# ze starého modelu
|
||||
#def verejna_temata(rocnik):
|
||||
|
@ -485,31 +481,9 @@ class RocnikVysledkovkaView(RocnikView):
|
|||
|
||||
def cisloObalkyView(request, rocnik, cislo):
|
||||
realne_cislo = get_object_or_404(Cislo, poradi=cislo, rocnik__rocnik=rocnik)
|
||||
return obalkyView(request, aktivniResitele(realne_cislo))
|
||||
return personalni.views.obalkyView(request, aktivniResitele(realne_cislo))
|
||||
|
||||
|
||||
def obalkyView(request, resitele):
|
||||
if len(resitele) == 0:
|
||||
return HttpResponse(
|
||||
render(request, 'universal.html', {
|
||||
'title': 'Není pro koho vyrobit obálky.',
|
||||
'text': 'Právě ses pokusil/a vygenerovat obálky pro prázdnou množinu lidí. Můžeš to zkusit změnit, případně se zeptej webařů :-)',
|
||||
}),
|
||||
status=http.HTTPStatus.NOT_FOUND,
|
||||
)
|
||||
|
||||
tex = render(request,'seminar/archiv/obalky.tex', {'resitele': resitele}).content
|
||||
|
||||
with tempfile.TemporaryDirectory() as tempdir:
|
||||
with open(tempdir+"/obalky.tex","w") as texfile:
|
||||
texfile.write(tex.decode())
|
||||
shutil.copy(find('seminar/lisak.pdf'), tempdir)
|
||||
subprocess.call(["pdflatex","obalky.tex"], cwd = tempdir)
|
||||
|
||||
with open(tempdir+"/obalky.pdf","rb") as pdffile:
|
||||
response = HttpResponse(pdffile.read(), content_type='application/pdf')
|
||||
return response
|
||||
|
||||
|
||||
### Tituly
|
||||
def TitulyViewRocnik(request, rocnik):
|
||||
|
|
|
@ -11,7 +11,7 @@ import subprocess
|
|||
from pathlib import Path
|
||||
import http
|
||||
|
||||
from seminar.views import obalkyView
|
||||
import personalni.views
|
||||
|
||||
|
||||
class SoustredeniListView(generic.ListView):
|
||||
|
@ -34,7 +34,7 @@ class SoustredeniListView(generic.ListView):
|
|||
|
||||
def soustredeniObalkyView(request, soustredeni):
|
||||
soustredeni = get_object_or_404(Soustredeni, id=soustredeni)
|
||||
return obalkyView(request, soustredeni.ucastnici.all())
|
||||
return personalni.views.obalkyView(request, soustredeni.ucastnici.all())
|
||||
|
||||
|
||||
class SoustredeniUcastniciBaseView(generic.ListView):
|
||||
|
|
Loading…
Reference in a new issue