pdf template akt, invoice, stage settings

feature/docker
Dmitriy Shesterkin 9 years ago
parent 774c3d1833
commit dd014a99bc
  1. 10
      src/commons/pdf_tools.py
  2. 1
      src/dokumentor/settings/stage.py
  3. 2
      src/dokumentor/templates/callback/req_avail_new.txt
  4. 21
      src/dokumentor/templates/docs/aktrabot/as_pdf.html
  5. 1
      src/dokumentor/templates/docs/invoice/as_pdf.html

@ -2,9 +2,8 @@
from io import BytesIO
from trans import trans
from xhtml2pdf import pisa
from django.template.loader import render_to_string
from django.template import RequestContext
from django.template.loader import get_template
from django.template import Context
from django.http import HttpResponse
@ -22,8 +21,9 @@ def pdf_to_response(content, filename=None):
def render_pdf_to_string(request, template_name, dictionary=None):
"""Рендерит html шаблон в pdf. Возвращает строку, в которой содержится сгенерированный pdf."""
context_instance = RequestContext(request)
html = render_to_string(template_name, dictionary, context_instance)
template = get_template(template_name)
html = template.render(Context(dictionary))
result = BytesIO()
pdf = pisa.pisaDocument(BytesIO(html.encode('utf-8')), result, encoding='utf-8')
pdf_content = result.getvalue()

@ -8,6 +8,7 @@ DEBUG = False
ADMINS = [
('Dmitriy Shesterkin', 'mitri4@bk.ru'),
('Александр Костенко', 'alexander.time@gmail.com'),
]
MANAGERS = ADMINS

@ -1,5 +1,5 @@
{% load url from future %}
Заказ товара с сайта
Обращение в техподдержку
Имя клиента: {{ req.name }}
Телефон/E-mail: {{ req.phone }}

@ -9,13 +9,18 @@
@font-face { font-family: Arial; src: url("{% fonts_root %}arial.ttf"); }
@font-face { font-family: Arial; src: url("{% fonts_root %}arialbd.ttf"); font-weight: bold; }
body { font-family: Arial; font-size: 9pt; line-height: 140%; }
body { font-family: Arial, sans-serif; font-size: 9pt; line-height: 140%; }
table { border-collapse: collapse; padding-top: 0.5ex; line-height: 140%; }
table tr { padding-left: 0.5ex; padding-right: 0.5ex; }
table tr td { vertical-align: middle; }
table .row { text-align: right; }
td {
padding-left: 2px;
padding-right: 2px;
}
#header { text-align: left; font-weight: bold; font-size: 14pt; }
#header_2 { text-align: left; font-size: 10pt; }
@ -79,30 +84,30 @@
{% for item in obj_items %}
<tr class="row borders">
<td>{{ forloop.counter }}</td>
<td align="right">{{ forloop.counter }}</td>
<td align="left">{{ item.name|safe }}</td>
<td>{{ item.qty|floatformat:3 }}</td>
<td align="right">{{ item.qty|floatformat:3 }}</td>
<td align="center">{{ item.units|safe }}</td>
<td>{{ item.price|floatformat:2 }}</td>
<td>{{ item.total_price|floatformat:2 }}</td>
<td align="right">{{ item.price|floatformat:2 }}</td>
<td align="right">{{ item.total_price|floatformat:2 }}</td>
</tr>
{% endfor %}
<tr class="row font_10 bold">
<td colspan="5">Итого:</td>
<td class="borders">{{ obj.sum_total_price|floatformat:2 }}</td>
<td class="borders" align="right">{{ obj.sum_total_price|floatformat:2 }}</td>
</tr>
<tr class="row font_10 bold">
<td colspan="5">{{ obj.nds_itogo_text|safe }}:</td>
<td class="borders">
<td class="borders" align="right">
{{ obj.sum_total_nds|floatformat:2 }}
</td>
</tr>
<tr class="row font_10 bold">
<td colspan="5">Всего:</td>
<td class="borders">{{ obj.sum_full_total_price|floatformat:2 }}</td>
<td class="borders" align="right">{{ obj.sum_full_total_price|floatformat:2 }}</td>
</tr>
</table>
</div>

@ -15,6 +15,7 @@
table tr { padding-left: 0.5ex; padding-right: 0.5ex; vertical-align: bottom; }
table tr td { vertical-align: bottom; }
table .row { text-align: right; }
td {
padding-left: 2px;
padding-right: 2px;

Loading…
Cancel
Save