Weasy Renderer
This commit is contained in:
parent
d5dcfd5fa2
commit
ccdd2c2982
6 changed files with 38 additions and 5 deletions
|
@ -13,7 +13,10 @@ RUN apk update \
|
||||||
# Translations dependencies
|
# Translations dependencies
|
||||||
&& apk add gettext \
|
&& apk add gettext \
|
||||||
# https://docs.djangoproject.com/en/dev/ref/django-admin/#dbshell
|
# https://docs.djangoproject.com/en/dev/ref/django-admin/#dbshell
|
||||||
&& apk add postgresql-client
|
&& apk add postgresql-client \
|
||||||
|
# https://weasyprint.readthedocs.io/en/latest/install.html
|
||||||
|
&& apk add gcc musl-dev jpeg-dev zlib-dev libffi-dev cairo-dev pango-dev gdk-pixbuf-dev \
|
||||||
|
&& apk add ttf-ubuntu-font-family
|
||||||
|
|
||||||
# Requirements are installed here to ensure they will be cached.
|
# Requirements are installed here to ensure they will be cached.
|
||||||
COPY ./requirements /requirements
|
COPY ./requirements /requirements
|
||||||
|
|
|
@ -10,7 +10,10 @@ RUN apk update \
|
||||||
# Pillow dependencies
|
# Pillow dependencies
|
||||||
&& apk add jpeg-dev zlib-dev freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev \
|
&& apk add jpeg-dev zlib-dev freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev \
|
||||||
# CFFI dependencies
|
# CFFI dependencies
|
||||||
&& apk add libffi-dev py-cffi
|
&& apk add libffi-dev py-cffi \
|
||||||
|
# https://weasyprint.readthedocs.io/en/latest/install.html
|
||||||
|
&& apk add gcc musl-dev jpeg-dev zlib-dev libffi-dev cairo-dev pango-dev gdk-pixbuf-dev \
|
||||||
|
&& apk add ttf-ubuntu-font-family
|
||||||
|
|
||||||
RUN addgroup -S django \
|
RUN addgroup -S django \
|
||||||
&& adduser -S -G django django
|
&& adduser -S -G django django
|
||||||
|
|
|
@ -20,3 +20,5 @@ djangorestframework==3.10.2 # https://github.com/encode/django-rest-framework
|
||||||
coreapi==2.3.3 # https://github.com/core-api/python-client
|
coreapi==2.3.3 # https://github.com/core-api/python-client
|
||||||
|
|
||||||
django-markdownx==2.0.28
|
django-markdownx==2.0.28
|
||||||
|
WeasyPrint==48
|
||||||
|
django-weasyprint==0.5.4
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
from django.urls import path
|
from django.urls import path
|
||||||
|
|
||||||
from schickmacher.renderer.views import form_view
|
from schickmacher.renderer.views import form_view, RenderView
|
||||||
|
|
||||||
app_name = 'renderer'
|
app_name = 'renderer'
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path("", view=form_view, name="form")
|
path("", view=form_view, name="form"),
|
||||||
|
path("render", view=RenderView.as_view(), name="render")
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
from django.core.handlers.wsgi import WSGIRequest
|
from django.core.handlers.wsgi import WSGIRequest
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
|
from django.views.generic import FormView
|
||||||
|
from django_weasyprint import WeasyTemplateView
|
||||||
from markdownx.utils import markdownify
|
from markdownx.utils import markdownify
|
||||||
|
|
||||||
from schickmacher.renderer.forms import RendererForm
|
from schickmacher.renderer.forms import RendererForm
|
||||||
|
@ -18,3 +20,25 @@ def form_view(request: WSGIRequest):
|
||||||
form = RendererForm()
|
form = RendererForm()
|
||||||
ctx = {"form": form}
|
ctx = {"form": form}
|
||||||
return render(request, 'renderer/render_form.html', ctx)
|
return render(request, 'renderer/render_form.html', ctx)
|
||||||
|
|
||||||
|
|
||||||
|
class RenderView(WeasyTemplateView):
|
||||||
|
template_name = 'renderer/rendered.html'
|
||||||
|
|
||||||
|
def get_context_data(self, **kwargs):
|
||||||
|
form = RendererForm(self.request.POST)
|
||||||
|
if form.is_valid():
|
||||||
|
return {
|
||||||
|
'date': form.cleaned_data['date'],
|
||||||
|
'content': markdownify(form.cleaned_data['render_content']),
|
||||||
|
'title': form.cleaned_data['title']
|
||||||
|
}
|
||||||
|
else:
|
||||||
|
return {
|
||||||
|
'date': 'Error',
|
||||||
|
'content': 'Error',
|
||||||
|
'title': 'Error'
|
||||||
|
}
|
||||||
|
|
||||||
|
def post(self, request, *args, **kwargs):
|
||||||
|
return self.get(request, *args, **kwargs)
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>{% trans "Renderer" %}</h1>
|
<h1>{% trans "Renderer" %}</h1>
|
||||||
<form class="form-horizontal" method="post" action="{% url 'renderer:form' %}">
|
<form class="form-horizontal" method="post" action="{% url 'renderer:render' %}">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{{ form|crispy }}
|
{{ form|crispy }}
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
|
|
Loading…
Reference in a new issue