Zdrojový kód pro korektury.testutils

"""
Soubor sloužící ke generování testdat.
"""
import logging
import os
from shutil import copyfile, rmtree

from django.db import transaction
from django.conf import settings

from korektury.models import KorekturovanePDF, generate_filename

logger = logging.getLogger(__name__)

[dokumentace]@transaction.atomic def create_test_pdf(rnd, organizatori): """ Vyrobí testovací pdf ke korekturování. Nevyrábí korektury! """ logger.info('Vyrábím testovací pdf ke korekturovani') try: testpdfs = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'testpdfs') # smaže minulé pdfka a obrázky k nim a vytvoří (znovu) jejich složky pdf_dir = os.path.join(settings.BASE_DIR, os.path.join('media', settings.KOREKTURY_PDF_DIR)) img_dir = os.path.join(settings.BASE_DIR, os.path.join('media', settings.KOREKTURY_IMG_DIR)) rmtree(pdf_dir, ignore_errors=True) os.makedirs(pdf_dir) rmtree(img_dir, ignore_errors=True) os.makedirs(img_dir) def gen_filename(filename): name = generate_filename(None, filename) print(name) copyfile(os.path.join(testpdfs, filename), os.path.join(settings.BASE_DIR, os.path.join('media', name))) return name # TODO silent ghostscript (vypisuje odstavec za každou stránku…) KorekturovanePDF.objects.create( nazev='B', komentar='Neuronové sítě', org=rnd.choice(organizatori), pdf=gen_filename(filename='B.pdf') ) KorekturovanePDF.objects.create( nazev='A', komentar='M&M: Jak řešit?', org=rnd.choice(organizatori), pdf=gen_filename(filename='A.pdf') ) korekturovane_pdf = KorekturovanePDF.objects.create( nazev='A', komentar='M&M: Jak řešit?', org=rnd.choice(organizatori), pdf=gen_filename(filename='A.pdf'), status='zanaseni' ) KorekturovanePDF.objects.create( nazev='A', komentar='M&M: Jak řešit?', org=rnd.choice(organizatori), pdf=gen_filename(filename='A.pdf'), status='zastarale' ) except (FileNotFoundError, Exception) as e: # TODO najít správné chyby, které vyhazují různé systémy při neexistenci ImageMagick, nebo knihoven logger.error(str(e)) logger.error( 'Chyba vytváření testovacích korektur, pravděpodobně není nainstalován ImageMagick nebo některá z knihoven' 'pro práci se soubory pdf (ghostscript) nebo png (libpng?).\n' ''' Instalaci na linux provedete např. příkazy: sudo apt-get build-dep imagemagick git clone https://github.com/ImageMagick/ImageMagick.git cd ImageMagick/ ./configure make sudo make install sudo ldconfig /usr/local/lib cd .. rm -r ImageMagick/ ''' )