Created generic view for vm pricing widget, Added VM configuration info on VM detail view, Fixed template bugs. Fixed Blog urls bugs
This commit is contained in:
parent
258728e6e9
commit
4dc6ab1d84
7 changed files with 99 additions and 14 deletions
|
@ -7,9 +7,10 @@ from django.conf.urls.static import static
|
|||
from django.conf import settings
|
||||
from hosting.views import RailsHostingView, DjangoHostingView, NodeJSHostingView
|
||||
from membership import urls as membership_urls
|
||||
from ungleich_page.views import LandingView
|
||||
import debug_toolbar
|
||||
|
||||
urlpatterns = [
|
||||
urlpatterns = [ url(r'^index.html$', LandingView.as_view()),
|
||||
url(r'^hosting/', include('hosting.urls', namespace="hosting")),
|
||||
url(r'^railshosting/', RailsHostingView.as_view(), name="rails.hosting"),
|
||||
url(r'^nodehosting/', NodeJSHostingView.as_view(), name="node.hosting"),
|
||||
|
@ -21,12 +22,13 @@ urlpatterns = [
|
|||
|
||||
# note the django CMS URLs included via i18n_patterns
|
||||
urlpatterns += i18n_patterns('',
|
||||
url(r'^/?$', LandingView.as_view()),
|
||||
url(r'^admin/', include(admin.site.urls)),
|
||||
url(r'^digitalglarus/login/', include(membership_urls)),
|
||||
url(r'^digitalglarus/', include('digitalglarus.urls',
|
||||
namespace="digitalglarus")),
|
||||
# url(r'^blog/', include('ungleich.urls', namespace='ungleich')),
|
||||
url(r'^ungleich_page/',
|
||||
#url(r'^blog/', include('ungleich.urls', namespace='ungleich')),
|
||||
url(r'^',
|
||||
include('ungleich_page.urls', namespace='ungleich_page'),
|
||||
name='ungleich_page'),
|
||||
url(r'^blog/', include('ungleich.urls', namespace='ungleich')),
|
||||
|
|
|
@ -1,18 +1,21 @@
|
|||
from django.shortcuts import redirect
|
||||
from django.core.urlresolvers import reverse
|
||||
from .models import VirtualMachinePlan
|
||||
|
||||
|
||||
class ProcessVMSelectionMixin(object):
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
hosting = request.POST.get('configuration')
|
||||
configuration_detail = dict(VirtualMachinePlan.VM_CONFIGURATION).get(hosting)
|
||||
vm_specs = {
|
||||
'cores': request.POST.get('cores'),
|
||||
'memory': request.POST.get('memory'),
|
||||
'disk_size': request.POST.get('disk_space'),
|
||||
'hosting_company': request.POST.get('hosting_company'),
|
||||
'location_code': request.POST.get('location_code'),
|
||||
'configuration': request.POST.get('configuration'),
|
||||
'configuration_detail': request.POST.get('configuration_detail'),
|
||||
'configuration': hosting,
|
||||
'configuration_detail': configuration_detail,
|
||||
'final_price': request.POST.get('final_price')
|
||||
}
|
||||
request.session['vm_specs'] = vm_specs
|
||||
|
|
44
hosting/templates/hosting/hosting_pricing.html
Normal file
44
hosting/templates/hosting/hosting_pricing.html
Normal file
|
@ -0,0 +1,44 @@
|
|||
{% load staticfiles %}
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<link href="{% static 'hosting/css/pricing.css' %}" rel="stylesheet" />
|
||||
<title>Hosting</title>
|
||||
<!-- Bootstrap Core CSS -->
|
||||
<link href="{% static 'hosting/css/bootstrap.min.css' %}" rel="stylesheet">
|
||||
|
||||
<link href="{% static 'hosting/css/pricing.css' %}" rel="stylesheet">
|
||||
|
||||
|
||||
<!-- Custom CSS -->
|
||||
<link href="{% static 'hosting/css/landing-page.css' %}" rel="stylesheet">
|
||||
|
||||
<!-- Custom Fonts -->
|
||||
<link href='//fonts.googleapis.com/css?family=Raleway' rel='stylesheet' type='text/css'>
|
||||
<link href="{% static 'hosting/font-awesome/css/font-awesome.min.css' %}" rel="stylesheet" type="text/css">
|
||||
<link href="//fonts.googleapis.com/css?family=Lato:300,400,700,300italic,400italic,700italic" rel="stylesheet" type="text/css">
|
||||
<link rel="shortcut icon" href="{% static 'hosting/img/favicon.ico' %}" type="image/x-icon" />
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
{% include "hosting/includes/_pricing.html" with select_configuration=True%}
|
||||
|
||||
|
||||
<!-- Pricing data -->
|
||||
{% if vm_types %}
|
||||
<script type="text/javascript">
|
||||
(function () {window.VMTypesData = "{{vm_types|safe}}";})();
|
||||
</script>
|
||||
{%endif%}
|
||||
|
||||
<!-- Lodash -->
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/4.11.1/lodash.min.js"></script>
|
||||
|
||||
<!-- jQuery -->
|
||||
<script src="{% static 'hosting/js/jquery.js' %}"></script>
|
||||
|
||||
<!-- Pricing -->
|
||||
<script src="{% static 'hosting/js/pricing.js' %}"></script>
|
||||
</body>
|
||||
</html>
|
|
@ -24,8 +24,7 @@
|
|||
{% csrf_token %}
|
||||
<input type="hidden" name="hosting_company" value="{{vm.hosting_company}}">
|
||||
<input type="hidden" name="location_code" value="{{vm.location_code}}">
|
||||
<input type="hidden" name="configuration_detail" value="{{configuration_detail}}">
|
||||
<input type="hidden" name="configuration" value="{{hosting}}">
|
||||
|
||||
|
||||
|
||||
<ul class="pricing {% cycle 'p-red' 'p-black' 'p-red' 'p-yel' %}">
|
||||
|
@ -46,13 +45,24 @@
|
|||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<!-- Single button -->
|
||||
<div class="btn-group">
|
||||
<div class="form-group">
|
||||
<label for="cores">Configuration: </label>
|
||||
{{configuration_detail}}
|
||||
<label for="configuration">Configuration: </label>
|
||||
{% if select_configuration %}
|
||||
<select class="form-control" name="configuration" id="{{vm.hosting_company}}-configuration" data-vm-type="{{vm.hosting_company}}">
|
||||
{% for key,value in configuration_options.items %}
|
||||
<option value="{{key}}">{{ value }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
{% else %}
|
||||
<input type="hidden" name="configuration_detail" value="{{configuration_detail}}">
|
||||
<input type="hidden" name="configuration" value="{{hosting}}">
|
||||
<!-- Single button -->
|
||||
<div class="btn-group">
|
||||
<div class="form-group">
|
||||
<label>Configuration: </label>
|
||||
{{configuration_detail}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</li>
|
||||
<li>
|
||||
<!-- Single button -->
|
||||
|
|
|
@ -89,6 +89,11 @@
|
|||
</div><!--/row-->
|
||||
</div><!--/col-12-->
|
||||
</div><!--/row-->
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
Configuration: {{virtual_machine.get_configuration_display}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
|
|
@ -4,13 +4,14 @@ from .views import DjangoHostingView, RailsHostingView, PaymentVMView,\
|
|||
NodeJSHostingView, LoginView, SignupView, IndexView, \
|
||||
OrdersHostingListView, OrdersHostingDetailView, VirtualMachinesPlanListView,\
|
||||
VirtualMachineView, GenerateVMSSHKeysView, OrdersHostingDeleteView, NotificationsView, \
|
||||
MarkAsReadNotificationView, PasswordResetView, PasswordResetConfirmView
|
||||
MarkAsReadNotificationView, PasswordResetView, PasswordResetConfirmView, HostingPricingView
|
||||
|
||||
urlpatterns = [
|
||||
url(r'index/?$', IndexView.as_view(), name='index'),
|
||||
url(r'django/?$', DjangoHostingView.as_view(), name='djangohosting'),
|
||||
url(r'nodejs/?$', NodeJSHostingView.as_view(), name='nodejshosting'),
|
||||
url(r'rails/?$', RailsHostingView.as_view(), name='railshosting'),
|
||||
url(r'pricing/?$', HostingPricingView.as_view(), name='pricing'),
|
||||
url(r'payment/?$', PaymentVMView.as_view(), name='payment'),
|
||||
url(r'orders/?$', OrdersHostingListView.as_view(), name='orders'),
|
||||
url(r'orders/(?P<pk>\d+)/?$', OrdersHostingDetailView.as_view(), name='orders'),
|
||||
|
|
|
@ -99,6 +99,26 @@ class NodeJSHostingView(ProcessVMSelectionMixin, View):
|
|||
return render(request, self.template_name, context)
|
||||
|
||||
|
||||
class HostingPricingView(ProcessVMSelectionMixin, View):
|
||||
template_name = "hosting/hosting_pricing.html"
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
configuration_options = dict(VirtualMachinePlan.VM_CONFIGURATION)
|
||||
context = {
|
||||
'configuration_options': configuration_options,
|
||||
'email': "info@django-hosting.ch",
|
||||
'vm_types': VirtualMachineType.get_serialized_vm_types(),
|
||||
}
|
||||
|
||||
return context
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
request.session['hosting_url'] = reverse('hosting:djangohosting')
|
||||
context = self.get_context_data()
|
||||
|
||||
return render(request, self.template_name, context)
|
||||
|
||||
|
||||
class IndexView(View):
|
||||
template_name = "hosting/index.html"
|
||||
|
||||
|
|
Loading…
Reference in a new issue