diff --git a/hosting/static/hosting/css/order.css b/hosting/static/hosting/css/order.css index e8bc0328..f2f7993b 100644 --- a/hosting/static/hosting/css/order.css +++ b/hosting/static/hosting/css/order.css @@ -1,4 +1,4 @@ -.order-detail-container {padding-top: 70px; padding-bottom: 70px; margin-bottom: 70px;} +.order-detail-container {padding-top: 70px;padding-bottom: 70px;/* margin-bottom: 70px; */max-width: 720px;margin: 0 auto;} .order-detail-container .invoice-title h2, .invoice-title h3 { display: inline-block; diff --git a/hosting/static/hosting/img/icon-pdf.svg b/hosting/static/hosting/img/icon-pdf.svg new file mode 100644 index 00000000..20fc9c48 --- /dev/null +++ b/hosting/static/hosting/img/icon-pdf.svg @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg width="492px" height="649px" viewBox="0 0 492 649" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <!-- Generator: Sketch 46.2 (44496) - http://www.bohemiancoding.com/sketch --> + <title>icon-pdf</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> + <g id="icon-pdf" fill-rule="nonzero" fill="#000000"> + <g id="Group" transform="translate(93.000000, 269.000000)"> + <path d="M98,47.8 C98,54.8 97,61.7 95.1,66.6 C93.1,72.5 90.1,76.5 86.2,80.5 C82.2,84.5 76.3,87.4 70.4,89.4 C64.5,91.4 55.6,92.3 46.6,92.3 L34.7,92.3 L34.7,134 L0,134 L0,0.3 L45.5,0.3 C54.4,0.3 62.4,1.3 69.3,3.2 C76.2,5.2 81.2,8.2 85.1,12.1 C89.1,16.1 92.1,21 94,27 C96.9,32 98,38.9 98,47.8 Z M61.3,46.8 C61.3,42.8 61.3,39.9 60.3,37.9 C60.3,35.9 59.3,33.9 57.4,32 C56.4,31 54.5,30 52.4,29.1 C50.4,29.1 47.4,28.1 44.5,28.1 L34.6,28.1 L34.6,63.7 L45.5,63.7 C48.4,63.7 50.4,63.7 52.5,62.7 C54.5,61.7 56.5,61.7 57.5,59.8 C58.5,57.8 59.5,56.9 60.4,54.8 C61.3,53.8 61.3,50.8 61.3,46.8 Z" id="Shape"></path> + <path d="M214.8,66.6 C214.8,78.5 213.8,89.3 210.8,97.3 C208.8,106.2 204.9,113.1 199.9,118.1 C195,123.1 189,127 182.1,130 C175.2,132 167.3,134 157.3,134 L108.8,134 L108.8,0.3 L156.3,0.3 C166.2,0.3 175.1,1.3 182,4.3 C188.9,7.2 194.9,10.2 199.8,16.2 C204.8,21.2 207.7,28.1 209.7,37 C213.8,44.8 214.8,54.7 214.8,66.6 Z M178.1,65.6 C178.1,58.7 178.1,52.7 177.1,47.8 C176.1,42.8 175.1,39.9 174.2,36.9 C172.2,34 170.2,32.9 168.3,31.9 C165.4,30.9 162.4,30.9 158.4,30.9 L145.6,30.9 L145.6,103.2 L158.4,103.2 C162.4,103.2 165.4,103.2 168.3,102.2 C171.2,101.2 173.3,99.3 174.2,97.2 C176.2,94.3 177.1,91.3 178.2,86.3 C178.1,80.5 178.1,74.5 178.1,65.6 Z" id="Shape"></path> + <polygon id="Shape" points="264.3 32 264.3 55.8 304.9 55.8 304.9 85.5 264.3 85.5 264.3 135 229.7 135 229.7 0.3 312.9 0.3 313.9 31 264.4 31 264.4 32"></polygon> + </g> + <path d="M491.3,649 L0.7,649 L0.7,0 L346.1,0 L491.3,145.2 L491.3,649 L491.3,649 Z M44.7,605 L448.4,605 L448.4,162.8 L327.4,42.9 L44.7,42.9 L44.7,605 Z" id="Shape"></path> + <polygon id="Shape" points="469.3 176 315.3 176 315.3 20.9 359.3 20.9 359.3 132 469.3 132"></polygon> + </g> + </g> +</svg> \ No newline at end of file diff --git a/hosting/static/hosting/img/icon-print.svg b/hosting/static/hosting/img/icon-print.svg new file mode 100644 index 00000000..e440f326 --- /dev/null +++ b/hosting/static/hosting/img/icon-print.svg @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg width="612px" height="612px" viewBox="0 0 612 612" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <!-- Generator: Sketch 46.2 (44496) - http://www.bohemiancoding.com/sketch --> + <title>54471</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> + <g id="54471" fill-rule="nonzero" fill="#000000"> + <path d="M0,225.633 L0,386.367 C0,417.272 30.6,417.272 30.6,417.272 L83.454,417.272 L83.454,389.454 L27.818,389.454 L27.818,222.545 L584.181,222.545 L584.181,389.454 L528.545,389.454 L528.545,417.272 L581.4,417.272 C581.4,417.272 612,417.272 612,386.367 L612,225.633 C612,225.633 612,194.727 581.4,194.727 L30.6,194.727 C0,194.728 0,225.633 0,225.633 Z" id="Shape"></path> + <polygon id="Shape" points="500.728 166.909 500.728 0 111.273 0 111.273 166.909 139.091 166.909 139.091 27.818 472.909 27.818 472.909 166.909"></polygon> + <path d="M528.546,292.091 C528.546,278.182 514.358,278.182 514.358,278.182 L97.642,278.182 C97.642,278.182 83.455,278.182 83.455,292.091 C83.455,306 97.642,306 97.642,306 L514.359,306 C514.358,306 528.546,306 528.546,292.091 Z" id="Shape"></path> + <rect id="Rectangle-path" x="166.909" y="500.728" width="278.182" height="27.818"></rect> + <path d="M500.728,612 L500.728,389.454 L111.273,389.454 L111.273,612 L500.728,612 Z M139.091,417.272 L472.909,417.272 L472.909,584.181 L139.091,584.181 L139.091,417.272 Z" id="Shape"></path> + <rect id="Rectangle-path" x="166.909" y="445.091" width="278.182" height="27.818"></rect> + </g> + </g> +</svg> \ No newline at end of file diff --git a/hosting/templates/hosting/includes/_navbar_user.html b/hosting/templates/hosting/includes/_navbar_user.html index d06477ca..126dd1e6 100644 --- a/hosting/templates/hosting/includes/_navbar_user.html +++ b/hosting/templates/hosting/includes/_navbar_user.html @@ -37,11 +37,7 @@ </li> <li> {% get_current_language as LANGUAGE_CODE %} - {% if LANGUAGE_CODE == 'en-us'%} - <a href="{% change_lang 'de' %}"><i class="fa fa-fw fa-globe" aria-hidden="true"></i> Deutsch</a> - {% else %} - <a href="{% change_lang 'en-us' %}"><i class="fa fa-fw fa-globe" aria-hidden="true"></i> English</a> - {% endif %} + </li> </ul> </div> diff --git a/hosting/templates/hosting/order_detail.html b/hosting/templates/hosting/order_detail.html index 39c59808..f07aa998 100644 --- a/hosting/templates/hosting/order_detail.html +++ b/hosting/templates/hosting/order_detail.html @@ -7,168 +7,163 @@ <div class="order-detail-container"> {% if messages %} - <div class="row"> - <div class="col-xs-12 col-md-8 col-md-offset-2"> - <br/> - <div class="alert alert-warning"> - {% for message in messages %} - <span>{{ message }}</span> - {% endfor %} - </div> + <div class="alert alert-warning"> + {% for message in messages %} + <span>{{ message }}</span> + {% endfor %} </div> - </div> {% endif %} {% if not error %} - <div class="row"> - <div class="col-xs-12 col-md-8 col-md-offset-2"> - <div class="invoice-title"> - <h2>{{page_header_text}}</h2> - <h3 class="pull-right"> - {% if order %} - {% trans "Order #"%} {{order.id}} - {% endif %} - </h3> - </div> - <hr> - <div class="row"> - <div class="col-xs-12 col-md-6 pull-right order-confirm-date"> - <address> - <strong>{% trans "Date"%}:</strong><br> - <span id="order-created_at"> - {% if order %} - {{order.created_at|date:'Y-m-d H:i'}} - {% else %} - {% now "Y-m-d H:i" %} - {% endif %} - </span><br><br> + <div class="row"> + <div class="col-xs-12 col-md-8 col-md-offset-2"> + <div class="invoice-title"> + <h2>{{page_header_text}}</h2> + <h3 class="pull-right"> {% if order %} - <strong>{% trans "Status:"%}</strong><br> - {% if order.status == 'Approved' %} - <strong class="text-success"> - {% trans "Approved" %} - </strong> - {% else %} - <strong class="text-danger"> - {% trans "Declined" %} - </strong> + {% trans "Order #"%} {{order.id}} {% endif %} - <br><br> - {% endif %} - </address> + </h3> + </div> + <hr> + <div class="row"> + <div class="col-xs-12 col-md-6 pull-right order-confirm-date"> + <address> + <strong>{% trans "Date"%}:</strong><br> + <span id="order-created_at"> + {% if order %} + {{order.created_at|date:'Y-m-d H:i'}} + {% else %} + {% now "Y-m-d H:i" %} + {% endif %} + </span><br><br> + {% if order %} + <strong>{% trans "Status:"%}</strong><br> + {% if order.status == 'Approved' %} + <strong class="text-success"> + {% trans "Approved" %} + </strong> + {% else %} + <strong class="text-danger"> + {% trans "Declined" %} + </strong> + {% endif %} + <br><br> + {% endif %} + </address> + + </div> + <div class="col-xs-12 col-md-6"> + <address> + <h3><b>{% trans "Billed To:"%}</b></h3> + {% if order %} + {{user.name}}<br> + {{order.billing_address.street_address}},{{order.billing_address.postal_code}}<br> + {{order.billing_address.city}}, + {{order.billing_address.country}}. + {% else %} + {% with request.session.billing_address_data as billing_address %} + {{billing_address.cardholder_name}}<br> + {{billing_address.street_address}}, + {{billing_address.postal_code}}<br> + {{billing_address.city}}, + {{billing_address.country}}. + {% endwith %} + {% endif %} + </address> + </div> </div> - <div class="col-xs-12 col-md-6"> - <address> - <h3><b>{% trans "Billed To:"%}</b></h3> - {% if order %} - {{user.name}}<br> - {{order.billing_address.street_address}},{{order.billing_address.postal_code}}<br> - {{order.billing_address.city}}, - {{order.billing_address.country}}. - {% else %} - {% with request.session.billing_address_data as billing_address %} - {{billing_address|get_value_from_dict:'cardholder_name'}}<br> - {{billing_address|get_value_from_dict:'street_address'}}, - {{billing_address|get_value_from_dict:'postal_code'}}<br> - {{billing_address|get_value_from_dict:'city'}}, - {{billing_address|get_value_from_dict:'country'}}. - {% endwith %} - {% endif %} - </address> - </div> - - </div> - <div class="row"> - <div class="col-xs-6"> - <address> - <strong>{% trans "Payment Method:"%}</strong><br> - {% if order %} - {{order.cc_brand}} {% trans "ending in" %} **** - {{order.last4}}<br> - {{user.email}} - {% else %} - {{cc_brand}} {% trans "ending in" %} **** - {{cc_last4}}<br> - {{request.session.user.email}} - {% endif %} - </address> + <div class="row"> + <div class="col-xs-6"> + <address> + <strong>{% trans "Payment Method:"%}</strong><br> + {% if order %} + {{order.cc_brand}} {% trans "ending in" %} **** + {{order.last4}}<br> + {{user.email}} + {% else %} + {{cc_brand}} {% trans "ending in" %} **** + {{cc_last4}}<br> + {{request.session.user.email}} + {% endif %} + </address> + </div> </div> </div> </div> - </div> - <div class="row"> - <div class="col-md-8 col-md-offset-2"> - <h3><b>{% trans "Order summary"%}</b></h3> - <hr> - <div class="content"> - {% if request.session.specs %} - {% with request.session.specs as vm %} - <p><b>{% trans "Cores"%}</b> - <span class="pull-right">{{vm.cpu}}</span> - </p> + <div class="row"> + <div class="col-md-8 col-md-offset-2"> + <h3><b>{% trans "Order summary"%}</b></h3> <hr> - <p><b>{% trans "Memory"%}</b> - <span class="pull-right">{{vm.memory}} GB</span> - </p> - <hr> - <p><b>{% trans "Disk space"%}</b> - <span class="pull-right">{{vm.disk_size}} GB</span> - </p> - <hr> - <p><b>{% trans "Configuration"%}</b> - <span class="pull-right">{{request.session.template.name}}</span> - </p> - <hr> - <h4>{% trans "Total"%} - <p class="pull-right"> - <b>{{vm.price}} CHF</b> - <span class="dcl-price-month"> /{% trans "Month" %} - </span> + <div class="content"> + {% if request.session.specs %} + {% with request.session.specs as vm %} + <p><b>{% trans "Cores"%}</b> + <span class="pull-right">{{vm.cpu}}</span> </p> - </h4> - {% endwith %} - {% else %} - <p><b>{% trans "Cores"%}</b> - <span class="pull-right">{{vm.cores}}</span> - </p> - <hr> - <p><b>{% trans "Memory"%}</b> - <span class="pull-right">{{vm.memory}} GB</span> - </p> - <hr> - <p><b>{% trans "Disk space"%}</b> - <span class="pull-right">{{vm.disk_size}} GB</span> - </p> - <hr> - <h4>{% trans "Total"%}<p class="pull-right"><b>{{vm.price}} - CHF</b><span - class="dcl-price-month"> /{% trans "Month" %}</span> - </p></h4> + <hr> + <p><b>{% trans "Memory"%}</b> + <span class="pull-right">{{vm.memory}} GB</span> + </p> + <hr> + <p><b>{% trans "Disk space"%}</b> + <span class="pull-right">{{vm.disk_size}} GB</span> + </p> + <hr> + <p><b>{% trans "Configuration"%}</b> + <span class="pull-right">{{request.session.template.name}}</span> + </p> + <hr> + <h4>{% trans "Total"%} + <p class="pull-right"> + <b>{{vm.price}} CHF</b> + <span class="dcl-price-month"> /{% trans "Month" %} + </span> + </p> + </h4> + {% endwith %} + {% else %} + <p><b>{% trans "Cores"%}</b> + <span class="pull-right">{{vm.cores}}</span> + </p> + <hr> + <p><b>{% trans "Memory"%}</b> + <span class="pull-right">{{vm.memory}} GB</span> + </p> + <hr> + <p><b>{% trans "Disk space"%}</b> + <span class="pull-right">{{vm.disk_size}} GB</span> + </p> + <hr> + <h4>{% trans "Total"%}<p class="pull-right"><b>{{vm.price}} + CHF</b><span + class="dcl-price-month"> /{% trans "Month" %}</span> + </p></h4> + {% endif %} + </div> + <br/> + {% if not order %} + <form method="post" id="virtual_machine_create_form"> + {% csrf_token %} + <div class="row"> + <div class="col-sm-8"> + <p class="dcl-place-order-text">{% blocktrans with vm_price=request.session.specs.price %}By clicking "Place order" this plan will charge your credit card account with the fee of {{ vm_price }}CHF/month{% endblocktrans %}.</p> + </div> + <div class="col-sm-4 content"> + <button class="btn btn-info pull-right" + id="btn-create-vm" + data-href="{% url 'hosting:order-confirmation' %}" + data-toggle="modal" + data-target="#createvm-modal"> + {% trans "Place order"%} + </button> + </div> + </div> + </form> {% endif %} </div> - <br/> - {% if not order %} - <form method="post" id="virtual_machine_create_form"> - {% csrf_token %} - <div class="row"> - <div class="col-sm-8"> - <p class="dcl-place-order-text">{% blocktrans with vm_price=request.session.specs.price %}By clicking "Place order" this plan will charge your credit card account with the fee of {{ vm_price }}CHF/month{% endblocktrans %}.</p> - </div> - <div class="col-sm-4 content"> - <button class="btn btn-info pull-right" - id="btn-create-vm" - data-href="{% url 'hosting:order-confirmation' %}" - data-toggle="modal" - data-target="#createvm-modal"> - {% trans "Place order"%} - </button> - </div> - </div> - </form> - {% endif %} </div> - </div> {% endif %} </div> <!-- Create VM Modal --> diff --git a/hosting/urls.py b/hosting/urls.py index 2868c717..bc14c3a6 100644 --- a/hosting/urls.py +++ b/hosting/urls.py @@ -9,9 +9,10 @@ from .views import ( HostingPricingView, CreateVirtualMachinesView, HostingBillListView, HostingBillDetailView, SSHKeyDeleteView, SSHKeyCreateView, SSHKeyListView, SSHKeyChoiceView, DashboardView, SettingsView) - +from django.views.generic import TemplateView urlpatterns = [ + url(r'test/?$', TemplateView.as_view(template_name='hosting/order_detail.html')), url(r'index/?$', IndexView.as_view(), name='index'), url(r'django/?$', DjangoHostingView.as_view(), name='djangohosting'), url(r'dashboard/?$', DashboardView.as_view(), name='dashboard'),