Merge branch 'test'
This commit is contained in:
commit
743d8056da
13 changed files with 126 additions and 104 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -27,3 +27,6 @@
|
|||
# org poznamky
|
||||
schemata
|
||||
TODO
|
||||
|
||||
# .htpasswd kvůli přihlášení
|
||||
.htpasswd
|
||||
|
|
9
Makefile
9
Makefile
|
@ -119,12 +119,13 @@ sync_test: sync_test_media sync_test_db
|
|||
# Does not sync Galerie and CACHE (too huge).
|
||||
sync_local_media:
|
||||
rsync -ave ssh --exclude Galerie --exclude CACHE\
|
||||
www-mam@atrey.karlin.mff.cuni.cz:/akce/MaM/WWW/mamweb-prod/media/ ./media/
|
||||
mam-web@gimli.ms.mff.cuni.cz:/akce/mam/www/mamweb-prod/media/ ./media/
|
||||
# Downloads and restores production database to local database. PostgreSQL only.
|
||||
sync_local_db:
|
||||
scp www-mam@atrey.karlin.mff.cuni.cz:`ssh www-mam@atrey.karlin.mff.cuni.cz 'ls -v /akce/MaM/WWW/backups/mam-prod-*\.pgdump | tail -n 1'` \
|
||||
./last.pgdump
|
||||
pg_restore -c -d mam_prod last.pgdump
|
||||
scp mam-web@gimli.ms.mff.cuni.cz:`ssh mam-web@gimli.ms.mff.cuni.cz 'ls -v /akce/mam/www/backups/mam_prod-*\.pgdump.xz | tail -n 1'` \
|
||||
./last.pgdump.xz
|
||||
xz -fd last.pgdump.xz
|
||||
pg_restore -c -d mam-prod last.pgdump
|
||||
|
||||
# Sync database and media. See above lines
|
||||
sync_local: sync_media sync_db
|
||||
|
|
|
@ -7,10 +7,10 @@
|
|||
<script src="{% static "korektury/opraf.js"%}"></script>
|
||||
<title>Korektury {{pdf.nazev}}</title>
|
||||
</head>
|
||||
<body {% if pdf.status = 'zanaseni'%} class="comitting" {% elif pdf.status = 'zastarale' %} class="deprecated" {% endif %} onload='place_comments()'>
|
||||
<body {% if pdf.status == 'zanaseni'%} class="comitting" {% elif pdf.status == 'zastarale' %} class="deprecated" {% endif %} onload='place_comments()'>
|
||||
<h1>Korektury {{pdf.nazev}}</h1>
|
||||
{% if pdf.status = 'zanaseni' %} <h2> Probíhá zanášení korektur, zvažte, zda chcete přidávat nové </h2> {% endif %}
|
||||
{% if pdf.status = 'zastarale' %} <h2> Toto PDF je již zastaralé, nepřidávejte nové korektury </h2> {% endif %}
|
||||
{% if pdf.status == 'zanaseni' %} <h2> Probíhá zanášení korektur, zvažte, zda chcete přidávat nové </h2> {% endif %}
|
||||
{% if pdf.status == 'zastarale' %} <h2> Toto PDF je již zastaralé, nepřidávejte nové korektury </h2> {% endif %}
|
||||
<i>{{pdf.komentar}}</i>
|
||||
<br>
|
||||
<i>Klikni na chybu, napiš komentář</i> |
|
||||
|
@ -60,11 +60,11 @@
|
|||
{% csrf_token %}
|
||||
<input type='hidden' name='action' value='set-state'/>
|
||||
<input type='hidden' name='pdf' value='{{pdf.id}}'/>
|
||||
<input type="radio" name="state" value="adding" {% if pdf.status = 'pridavani' %} checked {% endif %}>Přidávání korektur
|
||||
<input type="radio" name="state" value="adding" {% if pdf.status == 'pridavani' %} checked {% endif %}>Přidávání korektur
|
||||
<br>
|
||||
<input type="radio" name="state" value="comitting" {% if pdf.status = 'zanaseni' %} checked {% endif %}>Zanášení korektur
|
||||
<input type="radio" name="state" value="comitting" {% if pdf.status == 'zanaseni' %} checked {% endif %}>Zanášení korektur
|
||||
<br>
|
||||
<input type="radio" name="state" value="deprecated" {% if pdf.status = 'zastarale' %} checked {% endif %}>Zastaralé, nekorigovat
|
||||
<input type="radio" name="state" value="deprecated" {% if pdf.status == 'zastarale' %} checked {% endif %}>Zastaralé, nekorigovat
|
||||
<br>
|
||||
<input type='submit' value='Změnit stav PDF'/>
|
||||
</form>
|
||||
|
@ -81,12 +81,12 @@
|
|||
{% for o in opravy %}
|
||||
<div onclick='img_click(this,event)'
|
||||
id='op{{o.id}}-pointer'
|
||||
class='pointer{%if o.status = 'opraveno' %}-done{% elif o.status = 'neni_chyba' %}-wontfix{% elif o.status = 'k_zaneseni' %}-ready{% endif %}'>
|
||||
class='pointer{%if o.status == 'opraveno' %}-done{% elif o.status == 'neni_chyba' %}-wontfix{% elif o.status == 'k_zaneseni' %}-ready{% endif %}'>
|
||||
</div>
|
||||
<div name='op{{o.id}}' id='op{{o.id}}'
|
||||
class='box{%if o.status = 'opraveno' %}-done{% elif o.status = 'neni_chyba' %}-wontfix{% elif o.status = 'k_zaneseni' %}-ready{% endif %}'
|
||||
onmouseover='box_onmouseover(this,{% if o.status = 'opraveno' %}"done"{% elif o.status = 'neni_chyba' %}"wontfix"{% elif o.status = 'k_zaneseni' %}"ready"{% else %}""{% endif %})'
|
||||
onmouseout='box_onmouseout(this, {% if o.status = 'opraveno' %}"done"{% elif o.status = 'neni_chyba' %}"wontfix"{% elif o.status = 'k_zaneseni' %}"ready"{% else %}""{% endif %})'>
|
||||
class='box{%if o.status == 'opraveno' %}-done{% elif o.status == 'neni_chyba' %}-wontfix{% elif o.status == 'k_zaneseni' %}-ready{% endif %}'
|
||||
onmouseover='box_onmouseover(this,{% if o.status == 'opraveno' %}"done"{% elif o.status == 'neni_chyba' %}"wontfix"{% elif o.status == 'k_zaneseni' %}"ready"{% else %}""{% endif %})'
|
||||
onmouseout='box_onmouseout(this, {% if o.status == 'opraveno' %}"done"{% elif o.status == 'neni_chyba' %}"wontfix"{% elif o.status == 'k_zaneseni' %}"ready"{% else %}""{% endif %})'>
|
||||
|
||||
<div class='corr-header'>
|
||||
<span class='author' id='op{{o.id}}-autor'>{{o.autor}}</span>
|
||||
|
@ -142,7 +142,7 @@
|
|||
<img src="{% static "korektury/imgs/edit.png" %}"/>
|
||||
</button>
|
||||
{% endif %}
|
||||
{% if o.status = 'opraveno' or o.status = 'neni_chyba' %}
|
||||
{% if o.status == 'opraveno' or o.status == 'neni_chyba' %}
|
||||
<button type='button' title='Korekturu nelze komentovat, protože už je uzavřená'>
|
||||
<img src="{% static "korektury/imgs/comment-gr.png" %}"/>
|
||||
</button>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
<ul>
|
||||
{% for pdf in object_list %}
|
||||
<li><span {% if pdf.status = 'zanaseni'%} class="comitting-text" {% elif pdf.status = 'zastarale' %} class="deprecated-text" {% endif %}> <b>{{ pdf.nazev }}</b> <i>{{pdf.komentar}}</i> <a href="/korektury/{{pdf.id}}">{{pdf.pdf.name}}</a> </span> </li>
|
||||
<li><span {% if pdf.status == 'zanaseni'%} class="comitting-text" {% elif pdf.status == 'zastarale' %} class="deprecated-text" {% endif %}> <b>{{ pdf.nazev }}</b> <i>{{pdf.komentar}}</i> <a href="/korektury/{{pdf.id}}">{{pdf.pdf.name}}</a> </span> </li>
|
||||
{% empty %}
|
||||
<li> Nejsou žádné dokumenty ke korekturování.
|
||||
{% endfor %}
|
||||
|
|
|
@ -6,10 +6,10 @@ from django.contrib.flatpages.admin import FlatPageAdmin as FlatPageAdminOld
|
|||
from django.contrib.flatpages.admin import FlatpageForm as FlatpageFormOld
|
||||
|
||||
from django import forms
|
||||
from ckeditor.widgets import CKEditorWidget
|
||||
from ckeditor_uploader.widgets import CKEditorUploadingWidget
|
||||
|
||||
class FlatpageForm(FlatpageFormOld):
|
||||
content = forms.CharField(widget=CKEditorWidget())
|
||||
content = forms.CharField(widget=CKEditorUploadingWidget())
|
||||
class Meta:
|
||||
model = FlatPage # this is not automatically inherited from FlatpageFormOld
|
||||
exclude = []
|
||||
|
|
|
@ -100,6 +100,7 @@ INSTALLED_APPS = (
|
|||
'django_countries',
|
||||
'solo',
|
||||
'ckeditor',
|
||||
'ckeditor_uploader',
|
||||
'taggit',
|
||||
'autocomplete_light',
|
||||
|
||||
|
|
|
@ -10,6 +10,9 @@ import os.path
|
|||
# Import common settings
|
||||
from .settings_common import *
|
||||
|
||||
MIDDLEWARE_CLASSES += (
|
||||
'debug_toolbar.middleware.DebugToolbarMiddleware',
|
||||
)
|
||||
|
||||
# Quick-start development settings - unsuitable for production
|
||||
# See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/
|
||||
|
@ -22,7 +25,7 @@ INSTALLED_APPS += (
|
|||
# SECURITY WARNING: don't run with debug turned on in production!
|
||||
DEBUG = True
|
||||
|
||||
TEMPLATE_DEBUG = True
|
||||
TEMPLATES[0]['OPTIONS']['debug'] = True
|
||||
|
||||
ALLOWED_HOSTS = ['127.0.0.1']
|
||||
|
||||
|
@ -48,7 +51,3 @@ DATABASES = {
|
|||
# set to 'DEBUG' for EXTRA verbose output
|
||||
LOGGING['handlers']['console']['level'] = 'INFO'
|
||||
|
||||
# So that it is not necessary to restart the server every time a template is
|
||||
# changed
|
||||
TEMPLATE_LOADERS = ('django.template.loaders.filesystem.Loader',
|
||||
'django.template.loaders.app_directories.Loader')
|
||||
|
|
|
@ -50,7 +50,7 @@ SERVER_EMAIL = 'mamweb-prod-errors@mam.mff.cuni.cz'
|
|||
ADMINS = [
|
||||
('Tomas Gavenciak', 'gavento@gmail.com'),
|
||||
('Matěj Kocián', 'matej.kocian@gmail.com'),
|
||||
('M&M ERRORs', 'mam-errors@atrey.karlin.mff.cuni.cz'),
|
||||
('M&M ERRORs', 'mam-errors@mam.mff.cuni.cz'),
|
||||
]
|
||||
|
||||
|
||||
|
|
|
@ -12,6 +12,9 @@ import os.path
|
|||
# Import common settings
|
||||
from .settings_common import * # zatim nutne, casem snad vyresime # noqa
|
||||
|
||||
MIDDLEWARE_CLASSES += (
|
||||
'debug_toolbar.middleware.DebugToolbarMiddleware',
|
||||
)
|
||||
|
||||
# Quick-start development settings - unsuitable for production
|
||||
# See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/
|
||||
|
@ -27,7 +30,7 @@ SECRET_KEY = ')^u=i65*zmr_k53a*@f4q_+ji^o@!pgpef*5&8c7zzv9l+zo)n'
|
|||
# SECURITY WARNING: don't run with debug turned on in production!
|
||||
DEBUG = True
|
||||
|
||||
TEMPLATE_DEBUG = False
|
||||
TEMPLATES[0]['OPTIONS']['debug'] = True
|
||||
|
||||
ALLOWED_HOSTS = ['*.mam.mff.cuni.cz', 'atrey.karlin.mff.cuni.cz', 'mam.mff.cuni.cz', 'mam-test.kam.mff.cuni.cz', 'gimli.ms.mff.cuni.cz']
|
||||
|
||||
|
@ -49,7 +52,7 @@ import os
|
|||
|
||||
SERVER_EMAIL = 'mamweb-test-errors@mam.mff.cuni.cz'
|
||||
ADMINS = [
|
||||
('M&M ERRORs', 'mam-errors@atrey.karlin.mff.cuni.cz'),
|
||||
('M&M ERRORs', 'mam-errors@mam.mff.cuni.cz'),
|
||||
]
|
||||
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ from django import forms
|
|||
from django.forms import widgets
|
||||
from reversion.admin import VersionAdmin
|
||||
from solo.admin import SingletonModelAdmin
|
||||
from ckeditor.widgets import CKEditorWidget
|
||||
from ckeditor_uploader.widgets import CKEditorUploadingWidget
|
||||
from django.db.models import Count
|
||||
from django.db import models
|
||||
from django.utils.safestring import mark_safe
|
||||
|
@ -402,9 +402,9 @@ from autocomplete_light.contrib.taggit_field import TaggitField, TaggitWidget
|
|||
|
||||
|
||||
class ProblemAdminForm(forms.ModelForm):
|
||||
text_zadani = forms.CharField(widget=CKEditorWidget(), required=False, **field_labels(Problem, 'text_zadani'))
|
||||
text_reseni = forms.CharField(widget=CKEditorWidget(), required=False, **field_labels(Problem, 'text_reseni'))
|
||||
text_org = forms.CharField(widget=CKEditorWidget(), required=False, **field_labels(Problem, 'text_org'))
|
||||
text_zadani = forms.CharField(widget=CKEditorUploadingWidget(), required=False, **field_labels(Problem, 'text_zadani'))
|
||||
text_reseni = forms.CharField(widget=CKEditorUploadingWidget(), required=False, **field_labels(Problem, 'text_reseni'))
|
||||
text_org = forms.CharField(widget=CKEditorUploadingWidget(), required=False, **field_labels(Problem, 'text_org'))
|
||||
zamereni = TaggitField(widget=TaggitWidget('TagAutocomplete'), required=False)
|
||||
autor = UserModelChoiceField(User.objects.filter(is_staff=True))
|
||||
opravovatel = UserModelChoiceField(User.objects.filter(is_staff=True), required=False)
|
||||
|
@ -536,9 +536,9 @@ create_modeladmin(ProblemZadanyAdmin, Problem, 'ProblemZadany', verbose_name=u'P
|
|||
### Prispevek (k tematkum)
|
||||
|
||||
class PrispevekAdminForm(forms.ModelForm):
|
||||
text_org = forms.CharField(widget=CKEditorWidget(), required=False,
|
||||
text_org = forms.CharField(widget=CKEditorUploadingWidget(), required=False,
|
||||
**field_labels(Prispevek, 'text_org'))
|
||||
text_resitel = forms.CharField(widget=CKEditorWidget(), required=False,
|
||||
text_resitel = forms.CharField(widget=CKEditorUploadingWidget(), required=False,
|
||||
**field_labels(Prispevek, 'text_resitel'))
|
||||
|
||||
class Meta:
|
||||
|
@ -554,7 +554,7 @@ admin.site.register(Prispevek, PrispevekAdmin)
|
|||
### Soustredeni
|
||||
|
||||
class SoustredeniAdminForm(forms.ModelForm):
|
||||
text = forms.CharField(widget=CKEditorWidget(), required=False, **field_labels(Soustredeni, 'text'))
|
||||
text = forms.CharField(widget=CKEditorUploadingWidget(), required=False, **field_labels(Soustredeni, 'text'))
|
||||
class Meta:
|
||||
model = Soustredeni
|
||||
exclude = []
|
||||
|
@ -595,7 +595,7 @@ admin.site.register(Konfera,KonferaAdmin)
|
|||
### Novinky
|
||||
|
||||
class NovinkyAdminForm(forms.ModelForm):
|
||||
text = forms.CharField(widget=CKEditorWidget(), required=False,
|
||||
text = forms.CharField(widget=CKEditorUploadingWidget(), required=False,
|
||||
**field_labels(Novinky, 'text'))
|
||||
autor = UserModelChoiceField(User.objects.filter(is_staff=True))
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
\setlength{\tabcolsep}{3pt}
|
||||
\begin{longtable}{|r|l|c|r|{% for p in problemy %}c@{\hskip.5em}{% endfor %}|r|r|}\hline
|
||||
& & & & \multicolumn{ {{ problemy|length}} }{c|}{\textbf{Úlohy}} & & \\\textbf{Poř.}& \textbf{Jméno}& \textbf{R.}& \raisebox{0.7mm}{$\sum_{-1}$}& {% for p in problemy %}{% if p.typ == "uloha" %}\textbf{r{{p.kod}}}&{% elif p.typ = "tema" %}\textbf{t{{p.kod}}}&{% else %}\textbf{ {{p.kod}} }&{% endif %}{% endfor %}\raisebox{0.7mm}{$\sum_0$}&\raisebox{0.7mm}{$\sum_1$}\\\hline
|
||||
& & & & \multicolumn{ {{ problemy|length}} }{c|}{\textbf{Úlohy}} & & \\\textbf{Poř.}& \textbf{Jméno}& \textbf{R.}& \raisebox{0.7mm}{$\sum_{-1}$}& {% for p in problemy %}{% if p.typ == "uloha" %}\textbf{r{{p.kod}}}&{% elif p.typ == "tema" %}\textbf{t{{p.kod}}}&{% else %}\textbf{ {{p.kod}} }&{% endif %}{% endfor %}\raisebox{0.7mm}{$\sum_0$}&\raisebox{0.7mm}{$\sum_1$}\\\hline
|
||||
\endhead
|
||||
\hline
|
||||
\endfoot
|
||||
|
|
|
@ -1,79 +1,97 @@
|
|||
{% autoescape off %}
|
||||
{% load staticfiles %}
|
||||
{% load tex %}
|
||||
\input czech.sty
|
||||
\input epsf
|
||||
\special{landscape}
|
||||
\nopagenumbers
|
||||
\hoffset=-1in
|
||||
\voffset=-1in
|
||||
\advance\voffset by 0.9cm
|
||||
%nove pridano, aby to fungovalo...
|
||||
\advance\hoffset by 6.5cm
|
||||
\hsize=22cm
|
||||
\vsize=16cm
|
||||
\documentclass[11pt,a4paper,landscape]{article}
|
||||
\usepackage[top=3.75cm,left=8cm]{geometry}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[czech]{babel}
|
||||
\usepackage{graphicx}
|
||||
\begin{document}
|
||||
|
||||
\font\adrfonta=csssbx10 at 14pt
|
||||
\font\adrfontb=csssbx10 at 12pt
|
||||
\font\adrfontc=csss12
|
||||
\font\tofont=csr12 at 16pt
|
||||
% Nechceme číslování stránek
|
||||
\pagenumbering{gobble}
|
||||
|
||||
\newdimen\fromskip
|
||||
\newdimen\toskip
|
||||
\fromskip=4.35cm
|
||||
\toskip=13.2cm
|
||||
|
||||
\def\first{\relax}
|
||||
% Různé fonty na obálce
|
||||
\def\adrfonta#1{%
|
||||
\fontsize{14pt}{14.5pt}\selectfont \textbf{\textsf{#1}}%Časopis M&M
|
||||
}
|
||||
\def\adrfontb#1{%
|
||||
\fontsize{12pt}{13pt}\selectfont \textbf{\textsf{#1}}%OPMK UK MFF
|
||||
}
|
||||
\def\adrfontc#1{%
|
||||
\fontsize{12pt}{13pt}\selectfont \textsf{#1}%Adresa, telefon, e-mail
|
||||
}
|
||||
\def\tofont#1{%
|
||||
\fontsize{16pt}{18pt}\selectfont #1%Adresa řešitele
|
||||
}
|
||||
|
||||
%Podtržítko je znak
|
||||
\catcode`_=13
|
||||
%\catcode`_=12
|
||||
|
||||
\def_{$\_$}
|
||||
|
||||
\advance\voffset by 2.5cm
|
||||
% Odsazení různých adres
|
||||
\parindent=0pt
|
||||
%\newdimen\fromskip
|
||||
\newdimen\toskip
|
||||
%\fromskip=4.35cm
|
||||
\toskip=11.7cm
|
||||
|
||||
% Předsunutí -- na PSČ
|
||||
\def\predsunout#1{%
|
||||
\setbox0=\hbox{#1\,}%
|
||||
\hskip -\wd0\relax%
|
||||
\box0
|
||||
}
|
||||
|
||||
\def\obalka#1#2#3#4#5#6#7{
|
||||
% Makro na TeXáni naší adresy
|
||||
\def\adresaMaM{%
|
||||
\hbox{\adrfonta{Časopis M\&M,}}
|
||||
\vskip 3 pt
|
||||
\hbox{\adrfontb{OPMK UK MFF}}
|
||||
\vskip 3 pt
|
||||
\hbox{\adrfontc{Ke Karlovu 3, 121 16 Praha 2}}
|
||||
\hbox{\adrfontc{Tel.: +420 221 911 235}}
|
||||
\hbox{\adrfontc{mam@matfyz.cz}}
|
||||
}
|
||||
|
||||
\def\jmeno{#1}
|
||||
\def\prijm{#2}
|
||||
\def\skola{#3}
|
||||
\def\popis{}
|
||||
\def\first{}
|
||||
\def\ulice{#4}
|
||||
\def\PSC{#5}
|
||||
\def\mesto{#6}
|
||||
\def\stat{#7}
|
||||
\vskip-4mm\vbox to 0pt{\hbox to 0pt{\hskip1.4cm\epsfysize=2.55cm\epsfbox{lisak.eps}\hss}\vss}
|
||||
% Makro na TeXání adresátovy adresy
|
||||
\def\adresat#1#2#3#4#5#6#7{%
|
||||
\def\jmeno{#1}%
|
||||
\def\prijm{#2}%
|
||||
\def\skola{#3}%
|
||||
%\def\popis{}
|
||||
%\def\first{}
|
||||
\def\ulice{#4}%
|
||||
\def\PSC{#5}%
|
||||
\def\mesto{#6}%
|
||||
\def\stat{#7}%
|
||||
|
||||
\baselineskip=13pt
|
||||
\parindent=\fromskip
|
||||
\line{\indent\adrfonta Časopis M\&M,\hfil}
|
||||
\vskip3pt
|
||||
\line{\indent\adrfontb OPMK UK MFF\hfil}
|
||||
\vskip3pt
|
||||
\line{\indent\adrfontc Ke Karlovu 3, 121 16 Praha 2\hfil}
|
||||
\line{\indent\adrfontc Tel.: +420 221 911 235\hss}
|
||||
\line{\indent\adrfontc mam@atrey.karlin.mff.cuni.cz\hfil}
|
||||
|
||||
\vskip6.15cm
|
||||
\vbox to 0pt{\parindent=1.4cm\hsize=\toskip\advance\hsize by -1cm
|
||||
\vbox to 60pt{\vfil} \popis\vss}
|
||||
\parindent=\toskip
|
||||
\baselineskip=18pt
|
||||
\line{\indent\tofont\first\hfil}
|
||||
\line{\indent\tofont\jmeno\ \prijm\hfil}
|
||||
\hbox{\tofont{\jmeno\ \prijm}}
|
||||
\vskip .2 em
|
||||
\ifx \skola \empty
|
||||
{}
|
||||
\else
|
||||
\line{\indent\tofont\skola\hfil}
|
||||
\hbox{\tofont{\skola}}
|
||||
\fi
|
||||
\line{\indent\tofont\ulice\hfil}
|
||||
\line{\tofont\item{\PSC} \mesto\hfil}
|
||||
\vskip5pt
|
||||
\line{\indent\tofont\stat\hfil}
|
||||
\vskip .2 em
|
||||
\hbox{\tofont{\ulice}}
|
||||
\vskip .2 em
|
||||
\vskip .2 em
|
||||
\hbox to 18pt{\tofont{\predsunout{\PSC\ }\mesto}}
|
||||
\vskip 5 pt
|
||||
\tofont{\stat}
|
||||
}
|
||||
|
||||
\vfil\eject
|
||||
% Tohle makro vysází samotnou obálku
|
||||
\def\obalka#1#2#3#4#5#6#7{
|
||||
% Horní a pravý okraj je zároveň okraj stránky, resetujeme odsazení
|
||||
\includegraphics[height=2.55cm]{lisak.eps}\hskip 1 em\vbox{%
|
||||
\adresaMaM}
|
||||
\vskip 7.3 cm % Od oka
|
||||
\hskip\toskip%
|
||||
\vbox{\adresat{#1}{#2}{#3}{#4}{#5}{#6}{#7}}
|
||||
\vfill\eject
|
||||
}
|
||||
|
||||
|
||||
|
@ -98,6 +116,6 @@
|
|||
{% endif %}
|
||||
{% endspaceless %}
|
||||
{% endfor %}
|
||||
\bye
|
||||
\end{document}
|
||||
|
||||
{% endautoescape %}
|
||||
|
|
|
@ -502,7 +502,7 @@ class CisloView(generic.DetailView):
|
|||
class ArchivTemataView(generic.ListView):
|
||||
model = Problem
|
||||
template_name = 'seminar/archiv/temata.html'
|
||||
queryset = Problem.objects.filter(typ=Problem.TYP_TEMA, stav=Problem.STAV_ZADANY).select_related('cislo_zadani__rocnik__rocnik').order_by('-cislo_zadani__rocnik__rocnik', 'kod')
|
||||
queryset = Problem.objects.filter(typ=Problem.TYP_TEMA, stav=Problem.STAV_ZADANY).select_related('cislo_zadani__rocnik').order_by('-cislo_zadani__rocnik__rocnik', 'kod')
|
||||
|
||||
### Generovani vysledkovky
|
||||
|
||||
|
@ -552,9 +552,8 @@ def aktivniResitele(rocnik,cislo):
|
|||
if int(cislo) > 3:
|
||||
problemy = Problem.objects.filter(cislo_zadani = letos.cisla)
|
||||
else:
|
||||
problemy = Problem.objects.filter(Q(cislo_zadani = letos.cisla)|Q(cislo_zadani=loni.cisla))
|
||||
resitele = aktualni_resitele.filter(reseni = Reseni.objects.filter(problem=problemy)).distinct()
|
||||
|
||||
problemy = Problem.objects.filter(Q(cislo_zadani__in = letos.cisla)|Q(cislo_zadani__in = loni.cisla))
|
||||
resitele = aktualni_resitele.filter(reseni__in = Reseni.objects.filter(problem__in=problemy)).distinct()
|
||||
return resitele
|
||||
|
||||
|
||||
|
@ -567,11 +566,9 @@ def obalkyView(request,resitele):
|
|||
|
||||
tempdir = tempfile.mkdtemp()
|
||||
with open(tempdir+"/obalky.tex","w") as texfile:
|
||||
# Pokud TeX chce ISO Latin, tak se da encode nastavit
|
||||
texfile.write(tex.decode("utf-8").encode("iso-8859-2"))
|
||||
texfile.write(tex)
|
||||
shutil.copy(os.path.join(settings.STATIC_ROOT, 'seminar/lisak.eps'),tempdir)
|
||||
subprocess.call(["csplain","obalky.tex"],cwd = tempdir)
|
||||
subprocess.call(["dvipdf","obalky.dvi"],cwd = tempdir)
|
||||
subprocess.call(["pdflatex","obalky.tex"],cwd = tempdir)
|
||||
|
||||
with open(tempdir+"/obalky.pdf","rb") as pdffile:
|
||||
response = HttpResponse(pdffile.read(),content_type='application/pdf')
|
||||
|
@ -707,12 +704,12 @@ def soustredeniUcastniciExportView(request,soustredeni):
|
|||
class ClankyResitelView(generic.ListView):
|
||||
model = Problem
|
||||
template_name = 'seminar/clanky/resitelske_clanky.html'
|
||||
queryset = Problem.objects.filter(typ=Problem.TYP_RES_CLANEK, stav=Problem.STAV_ZADANY).select_related('cislo_zadani__rocnik__rocnik').order_by('-cislo_zadani__rocnik__rocnik', 'kod')
|
||||
queryset = Problem.objects.filter(typ=Problem.TYP_RES_CLANEK, stav=Problem.STAV_ZADANY).select_related('cislo_zadani__rocnik').order_by('-cislo_zadani__rocnik__rocnik', 'kod')
|
||||
|
||||
class ClankyOrganizatorView(generic.ListView):
|
||||
model = Problem
|
||||
template_name = 'seminar/clanky/organizatorske_clanky.html'
|
||||
queryset = Problem.objects.filter(typ=Problem.TYP_ORG_CLANEK, stav=Problem.STAV_ZADANY).select_related('cislo_zadani__rocnik__rocnik').order_by('-cislo_zadani__rocnik__rocnik', 'kod')
|
||||
queryset = Problem.objects.filter(typ=Problem.TYP_ORG_CLANEK, stav=Problem.STAV_ZADANY).select_related('cislo_zadani__rocnik').order_by('-cislo_zadani__rocnik__rocnik', 'kod')
|
||||
|
||||
|
||||
### Status
|
||||
|
|
Loading…
Reference in a new issue