diff --git a/web/.idea/workspace.xml b/web/.idea/workspace.xml index 2d8bfbac9904c5586ebe1de1863cbdcd78ba8551..20101e1383202acca7b25d6dc4190abbc3d3ae03 100644 --- a/web/.idea/workspace.xml +++ b/web/.idea/workspace.xml @@ -25,16 +25,62 @@ </component> <component name="FileEditorManager"> <leaf> - <file leaf-file-name="base.html" pinned="false" current-in-tab="true"> - <entry file="file://$PROJECT_DIR$/warpauthWeb/templates/base.html"> + <file leaf-file-name="reset_password.py" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/warpauthWeb/views/reset_password.py"> <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.75622773"> - <caret line="73" column="5" selection-start-line="73" selection-start-column="5" selection-end-line="73" selection-end-column="5" /> + <state vertical-scroll-proportion="0.0"> + <caret line="17" column="20" selection-start-line="17" selection-start-column="20" selection-end-line="17" selection-end-column="20" /> <folding /> </state> </provider> </entry> </file> + <file leaf-file-name="warp_food.py" pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/warpauthWeb/views/warp_food.py"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.36394557"> + <caret line="79" column="7" selection-start-line="79" selection-start-column="7" selection-end-line="79" selection-end-column="7" /> + <folding> + <element signature="e#0#35#0" expanded="true" /> + </folding> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="urls.py" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/warpauthWeb/urls.py"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="16" column="30" selection-start-line="16" selection-start-column="11" selection-end-line="16" selection-end-column="30" /> + <folding> + <element signature="e#0#32#0" expanded="true" /> + </folding> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="view.html" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/warpauthWeb/templates/warp_food/view.html"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="-12.423077"> + <caret line="22" column="67" selection-start-line="22" selection-start-column="67" selection-end-line="22" selection-end-column="67" /> + <folding /> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="models.py" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/warpauthWeb/models.py"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="21" column="6" selection-start-line="21" selection-start-column="6" selection-end-line="21" selection-end-column="6" /> + <folding> + <element signature="e#0#28#0" expanded="true" /> + </folding> + </state> + </provider> + </entry> + </file> </leaf> </component> <component name="FileTemplateManagerImpl"> @@ -67,11 +113,11 @@ <option value="$PROJECT_DIR$/warpauthWeb/views/pizza_sheet.py" /> <option value="$PROJECT_DIR$/warpauthWeb/templates/warp_food.html" /> <option value="$PROJECT_DIR$/warpauthWeb/models.py" /> - <option value="$PROJECT_DIR$/warpauthWeb/urls.py" /> - <option value="$PROJECT_DIR$/warpauthWeb/views/warp_food.py" /> <option value="$PROJECT_DIR$/warpauthWeb/templates/warp_food/main.html" /> - <option value="$PROJECT_DIR$/warpauthWeb/templates/warp_food/view.html" /> <option value="$PROJECT_DIR$/warpauthWeb/templates/base.html" /> + <option value="$PROJECT_DIR$/warpauthWeb/urls.py" /> + <option value="$PROJECT_DIR$/warpauthWeb/templates/warp_food/view.html" /> + <option value="$PROJECT_DIR$/warpauthWeb/views/warp_food.py" /> </list> </option> </component> @@ -653,6 +699,7 @@ <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> + <folding /> </state> </provider> </entry> @@ -683,16 +730,6 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/warpauthWeb/views/reset_password.py"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="-0.03125"> - <caret line="17" column="20" selection-start-line="17" selection-start-column="20" selection-end-line="17" selection-end-column="20" /> - <folding> - <element signature="e#0#35#0" expanded="false" /> - </folding> - </state> - </provider> - </entry> <entry file="file://$PROJECT_DIR$/warpauthWeb/templates/login.html"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="-5.8846154"> @@ -771,59 +808,67 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/warpauthWeb/urls.py"> + <entry file="file://$PROJECT_DIR$/warpauthWeb/templates/warp_food/main.html"> <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="15" column="73" selection-start-line="15" selection-start-column="73" selection-end-line="15" selection-end-column="73" /> + <state vertical-scroll-proportion="0.6672598"> + <caret line="25" column="38" selection-start-line="25" selection-start-column="38" selection-end-line="25" selection-end-column="38" /> <folding> - <element signature="e#0#32#0" expanded="true" /> + <element signature="e#435#454#0#HTML" expanded="true" /> </folding> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/warpauthWeb/models.py"> + <entry file="file://$PROJECT_DIR$/warpauthWeb/templates/base.html"> <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="25" column="10" selection-start-line="25" selection-start-column="4" selection-end-line="25" selection-end-column="10" /> - <folding> - <element signature="e#0#28#0" expanded="true" /> - </folding> + <state vertical-scroll-proportion="2.1174378"> + <caret line="73" column="5" selection-start-line="73" selection-start-column="5" selection-end-line="73" selection-end-column="5" /> + <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/warpauthWeb/templates/warp_food/main.html"> + <entry file="file://$PROJECT_DIR$/warpauthWeb/views/reset_password.py"> <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.6672598"> - <caret line="25" column="38" selection-start-line="25" selection-start-column="38" selection-end-line="25" selection-end-column="38" /> - <folding> - <element signature="e#435#454#0#HTML" expanded="true" /> - </folding> + <state vertical-scroll-proportion="0.0"> + <caret line="17" column="20" selection-start-line="17" selection-start-column="20" selection-end-line="17" selection-end-column="20" /> + <folding /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/warpauthWeb/templates/warp_food/view.html"> <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.21174377"> - <caret line="7" column="4" selection-start-line="7" selection-start-column="4" selection-end-line="7" selection-end-column="4" /> + <state vertical-scroll-proportion="-12.423077"> + <caret line="22" column="67" selection-start-line="22" selection-start-column="67" selection-end-line="22" selection-end-column="67" /> <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/warpauthWeb/views/warp_food.py"> + <entry file="file://$PROJECT_DIR$/warpauthWeb/models.py"> <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.15646258"> - <caret line="19" column="6" selection-start-line="19" selection-start-column="6" selection-end-line="19" selection-end-column="6" /> + <state vertical-scroll-proportion="0.0"> + <caret line="21" column="6" selection-start-line="21" selection-start-column="6" selection-end-line="21" selection-end-column="6" /> <folding> - <element signature="e#0#35#0" expanded="true" /> + <element signature="e#0#28#0" expanded="true" /> </folding> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/warpauthWeb/templates/base.html"> + <entry file="file://$PROJECT_DIR$/warpauthWeb/urls.py"> <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.75622773"> - <caret line="73" column="5" selection-start-line="73" selection-start-column="5" selection-end-line="73" selection-end-column="5" /> - <folding /> + <state vertical-scroll-proportion="0.0"> + <caret line="16" column="30" selection-start-line="16" selection-start-column="11" selection-end-line="16" selection-end-column="30" /> + <folding> + <element signature="e#0#32#0" expanded="true" /> + </folding> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/warpauthWeb/views/warp_food.py"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.36394557"> + <caret line="79" column="7" selection-start-line="79" selection-start-column="7" selection-end-line="79" selection-end-column="7" /> + <folding> + <element signature="e#0#35#0" expanded="true" /> + </folding> </state> </provider> </entry> diff --git a/web/warpauthWeb/templates/warp_food/view.html b/web/warpauthWeb/templates/warp_food/view.html index db9ee6b8c64bed013435bace22cbff1ab2fc17cb..a706d2bbb43699428735ab1a3bd029d4cd5c0078 100644 --- a/web/warpauthWeb/templates/warp_food/view.html +++ b/web/warpauthWeb/templates/warp_food/view.html @@ -20,7 +20,7 @@ <a href="/pizza/toggle_sheet/{{ sheet.id }}" class="btn btn-success">Open Sheet</a> {% endif %} {% if sheet.closed %} - <a href="" class="btn btn-info">Print order</a> + <a href="/pizza/export_sheet/{{ sheet.id }}" class="btn btn-info">Print order</a> {% endif %} </div> <div class="col-md-4"> diff --git a/web/warpauthWeb/urls.py b/web/warpauthWeb/urls.py index a2c1d928c790fd4883e2199bf525458b3b33d32d..f4b8a953f91efd135f4ef843b9b7d4698455fa6b 100644 --- a/web/warpauthWeb/urls.py +++ b/web/warpauthWeb/urls.py @@ -14,6 +14,7 @@ urlpatterns = [ url(r'^pizza/view/(?P<sheet_id>\w+)/$', warp_food.view, name='warp_foot_view'), url(r'^pizza/toggle_sheet/(?P<sheet_id>\w+)/$', warp_food.toggle_closed, name='warp_foot_toggle_closed'), url(r'^pizza/toggle_paid/(?P<order_id>\w+)/$', warp_food.toggle_paid, name='warp_foot_toggle_paid'), + url(r'^pizza/export_sheet/(?P<sheet_id>\w+)/$', warp_food.export_sheet, name='warp_foot_export_sheet'), url(r'^$', main.index, name='index'), diff --git a/web/warpauthWeb/views/warp_food.py b/web/warpauthWeb/views/warp_food.py index d25ee117452a56f0a1106cfbf34327a4b0e4c595..a91dc446e17fe59f164b6e3fea53f81a84e89e47 100644 --- a/web/warpauthWeb/views/warp_food.py +++ b/web/warpauthWeb/views/warp_food.py @@ -4,6 +4,10 @@ from django.shortcuts import redirect from django.contrib.auth.decorators import login_required from warpauthWeb.util import * from warpauthWeb.models import * +from reportlab.pdfgen import canvas +from django.http import HttpResponse +from reportlab.platypus import SimpleDocTemplate +from reportlab.platypus.tables import Table, TableStyle,colors def index(request): if request.method == 'POST': @@ -55,4 +59,44 @@ def toggle_paid(request, order_id=0): order = FoodOrder.objects.get(id=order_id) order.paid = not order.paid order.save() - return redirect("/pizza/view/%s" % (order.sheet.id)) \ No newline at end of file + return redirect("/pizza/view/%s" % (order.sheet.id)) + + +@login_required(login_url='/login/', redirect_field_name=None) +def export_sheet(request, sheet_id=0): + response = HttpResponse(content_type='application/pdf') + sheet = FoodSheet.objects.get(id=sheet_id) + response['Content-Disposition'] = 'attachment; filename="abbc.pdf"' + cm = 2.54 + elements = [] + + doc = SimpleDocTemplate(response, showBoundary=1) + + """ + info_table = Table((sheet.pizza_service.name,sheet.pizza_service.phone), + [70,70], + [24] + ) + """ + data = [ + ('User', 'Article', 'Size', 'Price', 'Comment', 'Paid'), + ] + + for order in FoodOrder.objects.filter(sheet=sheet): + data.append(('', order.article, order.size, order.price, '', order.paid)) + + pizza_table = Table(data, + [70,70,70,70,70,70], + [24, 16,16] + ) + """ + t.setStyle( + TableStyle([ + ('GRID', (1,1), (-2,-2), 0.25, colors.red), + ('BOX', (0,0), (-1,-1), 0.25, colors.blue, None, (2,2,1)), + ]) + ) + """ + story = [info_table,pizza_table] + doc.build(story) + return response