diff --git a/.dockerignore b/.dockerignore index 05a31b5..bc74dd3 100644 --- a/.dockerignore +++ b/.dockerignore @@ -98,7 +98,6 @@ jdav_web/media # django database migrations /static/ -/media/ # database configuration jdav_web/my.cnf @@ -114,3 +113,7 @@ jdav_web/celerybeat-schedule.db # docker development database folder docker/development/db + +# docker dev and production media folders +docker/development/media +docker/production/media diff --git a/.gitignore b/.gitignore index 49b2909..6c752a8 100644 --- a/.gitignore +++ b/.gitignore @@ -117,3 +117,7 @@ docker.env # docker development database folder docker/development/db + +# docker dev and production media folders +docker/development/media +docker/production/media diff --git a/docker/development/Dockerfile b/docker/development/Dockerfile index 3c69680..528957d 100644 --- a/docker/development/Dockerfile +++ b/docker/development/Dockerfile @@ -1,7 +1,7 @@ FROM python:3.9-bullseye # install additional dependencies -RUN apt-get update && apt-get install -y gettext +RUN apt-get update && apt-get install -y gettext texlive texlive-fonts-extra WORKDIR /app diff --git a/docker/development/docker-compose.yaml b/docker/development/docker-compose.yaml index b163890..96f0fd1 100644 --- a/docker/development/docker-compose.yaml +++ b/docker/development/docker-compose.yaml @@ -25,6 +25,7 @@ services: tty: true volumes: - ./../../jdav_web:/app/jdav_web + - ./media:/app/media ports: - "8000:8000" diff --git a/docker/production/Dockerfile b/docker/production/Dockerfile index e063e70..7b78036 100644 --- a/docker/production/Dockerfile +++ b/docker/production/Dockerfile @@ -1,7 +1,7 @@ FROM python:3.9-bullseye # install additional dependencies -RUN apt-get update && apt-get install -y gettext +RUN apt-get update && apt-get install -y gettext texlive texlive-fonts-extra # create user RUN groupadd -g 501 app && useradd -g 501 -u 501 -m -d /app app diff --git a/docker/production/docker-compose.yaml b/docker/production/docker-compose.yaml index 266c3e5..0282f7d 100644 --- a/docker/production/docker-compose.yaml +++ b/docker/production/docker-compose.yaml @@ -3,9 +3,6 @@ version: "3.9" x-kompass: &kompass image: kompass:production - build: - context: ./../../ - dockerfile: docker/production/Dockerfile env_file: docker.env restart: always depends_on: @@ -15,11 +12,15 @@ x-kompass: services: master: <<: *kompass + build: + context: ./../../ + dockerfile: docker/production/Dockerfile entrypoint: /app/docker/production/entrypoint-master.sh volumes: - uwsgi_data:/tmp/uwsgi/ - web_static:/app/static/ - web_static:/var/www/jdav_web/assets/ + - ./media:/app/media/ nginx: build: ./nginx/ diff --git a/jdav_web/members/pdf.py b/jdav_web/members/pdf.py index aec5ac6..94b68e5 100644 --- a/jdav_web/members/pdf.py +++ b/jdav_web/members/pdf.py @@ -28,6 +28,10 @@ def render_tex(name, template_path, context): tmpl = get_template(template_path) res = tmpl.render(dict(context, creation_date=datetime.today().strftime('%d.%m.%Y'))) + + if not os.path.exists(media_dir()): + os.makedirs(media_dir()) + with open(media_path(filename_tex), 'w', encoding='utf-8') as f: f.write(res) diff --git a/jdav_web/members/templates/members/crisis_intervention_list.tex b/jdav_web/members/templates/members/crisis_intervention_list.tex index f652791..48f49e4 100644 --- a/jdav_web/members/templates/members/crisis_intervention_list.tex +++ b/jdav_web/members/templates/members/crisis_intervention_list.tex @@ -42,7 +42,7 @@ } \begin{document} % HEADER RIGHT -\picpos{4.5cm}{11.5cm}{0cm}{dav_logo.png} +\picpos{4.5cm}{11.5cm}{0cm}{/app/jdav_web/static/general/img/dav_logo.png} \begin{textblock*}{5cm}(11.5cm, 2.3cm) \begin{flushright} \small diff --git a/jdav_web/members/templates/members/seminar_report.tex b/jdav_web/members/templates/members/seminar_report.tex index 9e69d26..aea3416 100644 --- a/jdav_web/members/templates/members/seminar_report.tex +++ b/jdav_web/members/templates/members/seminar_report.tex @@ -49,7 +49,7 @@ } \begin{document} % HEADER RIGHT -\picpos{4.5cm}{11.5cm}{0cm}{dav_logo.png} +\picpos{4.5cm}{11.5cm}{0cm}{/app/jdav_web/static/general/img/dav_logo.png} \begin{textblock*}{5cm}(11.5cm, 2.3cm) \begin{flushright} \small diff --git a/media/memberlists/dav_logo.png b/jdav_web/static/general/img/dav_logo.png similarity index 100% rename from media/memberlists/dav_logo.png rename to jdav_web/static/general/img/dav_logo.png diff --git a/media/memberlists/memberlist_template.tex b/media/memberlists/memberlist_template.tex deleted file mode 100644 index 3a31216..0000000 --- a/media/memberlists/memberlist_template.tex +++ /dev/null @@ -1,92 +0,0 @@ -\documentclass{article} - -\usepackage[utf8]{inputenc} -\usepackage{booktabs} -\usepackage{amssymb} -\usepackage{cmbright} -\usepackage{graphicx} -\usepackage{textpos} -\usepackage[colorlinks, breaklinks]{hyperref} -\usepackage{float} -\usepackage[margin=1in]{geometry} -\usepackage{array} -\usepackage{tabularx} - -\newcommand{\picpos}[4]{ - \begin{textblock*}{#1}(#2, #3) - \includegraphics[width=\textwidth]{#4} - \end{textblock*} -} - -% custom url command for properly formatting emails -\DeclareUrlCommand\Email{\urlstyle{same}} -% allow linebreak after every character -\expandafter\def\expandafter\UrlBreaks\expandafter{\UrlBreaks -\do\/\do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j\do\k -\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t\do\u\do\v -\do\w\do\x\do\y\do\z -\do\A\do\B\do\C\do\D\do\E\do\F\do\G\do\H\do\I\do\J\do\K -\do\L\do\M\do\N\do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V -\do\W\do\X\do\Y\do\Z} - -\renewcommand{\arraystretch}{1.5} - -\newcolumntype{L}{>{\hspace{0pt}}X} -\newcommand{\tickedbox}{ - \makebox[0pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$\checkmark$} -} -\newcommand{\checkbox}{ - \makebox[0pt][l]{$\square$} -} -\begin{document} -% HEADER RIGHT -\picpos{4.5cm}{11.5cm}{0cm}{dav_logo.png} -\begin{textblock*}{5cm}(11.5cm, 2.3cm) - \begin{flushright} - \small - \noindent Deutscher Alpenverein e. V. \\ - Sektion Ludwigsburg\\ - Fuchshofstr. 66\\ - 71638 Ludwigsburg\\ - Tel.: 07141 927893\\ - Fax: 07141 924042\\ - info@alpenverein-ludwigsburg.de\\ - \end{flushright} -\end{textblock*} - -% HEADLINE -{\noindent\LARGE\textsc{Teilnehmerliste \\Sektionsveranstaltung}}\\ -\textit{Erstellt: MEMBERLIST-DATE}\\ - -% DESCRIPTION TABLE -\begin{table}[H] - \begin{tabular}{ll} - \large Aktivität: & ACTIVITY \\ - \large Gruppe: & GROUP \\ - \large Ziel: & DESTINATION \\ - \large Stützpunkt: & PLACE \\ - \large Zeitraum: & TIME-PERIOD \\ - \large Betreuer: & JUGENDLEITER \\ - \end{tabular} -\end{table} - -\noindent TOUR-TYPE -\large Anreise: \\ -\noindent TOUR-APPROACH -\begin{table}[H] - \begin{tabularx}{1\linewidth}{@{\extracolsep{\fill}}lLlL} - \toprule - \textbf{Name} & \textbf{Anschrift} & \textbf{Telefon} & \textbf{E-Mail} \\ - \midrule - \input{TABLE-NAME} - \bottomrule - \end{tabularx} -\end{table} - -\vspace{1cm} - -\noindent Bitte die ausgefüllte Teilnehmerliste vor Antritt der Aktivität per E-Mail an -\href{mailto:info@alpenverein-ludwigsburg.de}{info@alpenverein-ludwigsburg.de} und -\href{mailto:vorstand@alpenverein-ludwigsburg.de}{vorstand@alpenverein-ludwigsburg.de} senden. - -\end{document} diff --git a/media/memberlists/memberlistnote_template.tex b/media/memberlists/memberlistnote_template.tex deleted file mode 100644 index 5955560..0000000 --- a/media/memberlists/memberlistnote_template.tex +++ /dev/null @@ -1,34 +0,0 @@ -\documentclass{article} - -\usepackage[utf8]{inputenc} -\usepackage{booktabs} -\usepackage{tabularx} -\usepackage{ragged2e} -\usepackage{amssymb} -\usepackage{cmbright} -\usepackage{graphicx} -\usepackage{textpos} -\usepackage[colorlinks]{hyperref} -\usepackage{float} -\usepackage[margin=1cm]{geometry} - -\renewcommand{\arraystretch}{1.5} - -\newcolumntype{Y}{>{\RaggedRight\arraybackslash}X} -\begin{document} - -% HEADLINE -{\noindent\LARGE\textsc{MEMBERLIST-TITLE}}\\ -\textit{Erstellt: MEMBERLIST-DATE}\\ - -\begin{table}[H] - \begin{tabularx}{\textwidth}{@{} l l Y @{}} - \toprule - \textbf{Name} & \textbf{Kommentare} \\ - \midrule - TABLE - \bottomrule - \end{tabularx} -\end{table} - -\end{document} diff --git a/media/memberlists/membernote_template.tex b/media/memberlists/membernote_template.tex deleted file mode 100644 index 8600f11..0000000 --- a/media/memberlists/membernote_template.tex +++ /dev/null @@ -1,58 +0,0 @@ -\documentclass{article} - -\usepackage[utf8]{inputenc} -\usepackage{booktabs} -\usepackage{tabularx} -\usepackage{ragged2e} -\usepackage{amssymb} -\usepackage{cmbright} -\usepackage{graphicx} -\usepackage{textpos} -\usepackage[colorlinks]{hyperref} -\usepackage{float} -\usepackage[margin=1cm]{geometry} - -\renewcommand{\arraystretch}{1.5} - -\newcolumntype{Y}{>{\RaggedRight\arraybackslash}X} -\begin{document} - -% HEADLINE -{\noindent\LARGE\textsc{Teilnehmerliste \\Sektionsveranstaltung}}\\ -\textit{Erstellt: MEMBERLIST-DATE}\\ - -% DESCRIPTION -\begin{table}[H] - \begin{tabular}{ll} - \large Aktivität: & ACTIVITY \\ - \large Gruppe: & GROUP \\ - \large Ziel: & DESTINATION \\ - \large Stützpunkt: & PLACE \\ - \large Zeitraum: & TIME-PERIOD \\ - \end{tabular} -\end{table} - -\begin{table}[H] - \begin{tabularx}{\textwidth}{@{} l l Y @{}} - \toprule - \textbf{Name} & \textbf{Fähigkeiten (max. 100)} & \textbf{Kommentare} \\ - \midrule - TABLE - \bottomrule - \end{tabularx} -\end{table} - -\noindent\large Fähigkeiten der Gruppe\\ -\begin{table}[H] - \begin{tabular*}{1\linewidth}{@{\extracolsep{\fill}}llll} - \toprule - \textbf{Name} & \textbf{Durchschnitt} & \textbf{Minimum} & \textbf{Maximum} \\ - \midrule - TABLE-QUALITIES - \bottomrule - \end{tabular*} -\end{table} - -\vspace{1cm} - -\end{document}