add new view CustomerHostingPackageList
- create view hostingpackages.views.CustomerHostingPackageList to display a specific customer's hosting packages - add docstring to view AllCustomerHostingPackageList - add URL pattern 'hosting_packages' to hostingpackages.urls - restructure hostingpackages URL patterns to remove useless parts - add template hostingpackages/customerhostingpackage_list.html - change links in template base.html to link to 'hosting_packages'
This commit is contained in:
parent
3f07ddb062
commit
2d4282194f
4 changed files with 92 additions and 7 deletions
|
@ -12,6 +12,7 @@ from .views import (
|
||||||
CreateCustomerHostingPackage,
|
CreateCustomerHostingPackage,
|
||||||
CreateHostingPackage,
|
CreateHostingPackage,
|
||||||
CustomerHostingPackageDetails,
|
CustomerHostingPackageDetails,
|
||||||
|
CustomerHostingPackageList,
|
||||||
HostingOptionChoices,
|
HostingOptionChoices,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -20,10 +21,12 @@ urlpatterns = patterns(
|
||||||
'',
|
'',
|
||||||
url(r'^create$', CreateHostingPackage.as_view(),
|
url(r'^create$', CreateHostingPackage.as_view(),
|
||||||
name='create_hosting_package'),
|
name='create_hosting_package'),
|
||||||
url(r'^(?P<user>[\w0-9@.+-_]+)/create$',
|
url(r'^(?P<user>[\w0-9@.+-]+)/$',
|
||||||
|
CustomerHostingPackageList.as_view(), name='hosting_packages'),
|
||||||
|
url(r'^(?P<user>[\w0-9@.+-]+)/create$',
|
||||||
CreateCustomerHostingPackage.as_view(),
|
CreateCustomerHostingPackage.as_view(),
|
||||||
name='create_customer_hosting_package'),
|
name='create_customer_hosting_package'),
|
||||||
url(r'^(?P<user>[\w0-9@.+-_]+)/hostingpackage/(?P<pk>\d+)/$',
|
url(r'^(?P<user>[\w0-9@.+-]+)/(?P<pk>\d+)/$',
|
||||||
CustomerHostingPackageDetails.as_view(),
|
CustomerHostingPackageDetails.as_view(),
|
||||||
name='hosting_package_details'),
|
name='hosting_package_details'),
|
||||||
url(r'^allpackages/',
|
url(r'^allpackages/',
|
||||||
|
|
|
@ -103,10 +103,13 @@ class CustomerHostingPackageDetails(StaffOrSelfLoginRequiredMixin, DetailView):
|
||||||
"""
|
"""
|
||||||
model = CustomerHostingPackage
|
model = CustomerHostingPackage
|
||||||
context_object_name = 'hostingpackage'
|
context_object_name = 'hostingpackage'
|
||||||
|
customer = None
|
||||||
|
|
||||||
def get_customer_object(self):
|
def get_customer_object(self):
|
||||||
return get_object_or_404(
|
if self.customer is None:
|
||||||
|
self.customer = get_object_or_404(
|
||||||
get_user_model(), username=self.kwargs['user'])
|
get_user_model(), username=self.kwargs['user'])
|
||||||
|
return self.customer
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
context = super(CustomerHostingPackageDetails, self).get_context_data(
|
context = super(CustomerHostingPackageDetails, self).get_context_data(
|
||||||
|
@ -128,10 +131,39 @@ class CustomerHostingPackageDetails(StaffOrSelfLoginRequiredMixin, DetailView):
|
||||||
class AllCustomerHostingPackageList(
|
class AllCustomerHostingPackageList(
|
||||||
LoginRequiredMixin, StaffuserRequiredMixin, ListView
|
LoginRequiredMixin, StaffuserRequiredMixin, ListView
|
||||||
):
|
):
|
||||||
|
"""
|
||||||
|
This view is used for showing a list of all hosting packages.
|
||||||
|
|
||||||
|
"""
|
||||||
model = CustomerHostingPackage
|
model = CustomerHostingPackage
|
||||||
template_name_suffix = '_admin_list'
|
template_name_suffix = '_admin_list'
|
||||||
|
|
||||||
|
|
||||||
|
class CustomerHostingPackageList(StaffOrSelfLoginRequiredMixin, ListView):
|
||||||
|
"""
|
||||||
|
This view is used for showing a list of a customer's hosting packages.
|
||||||
|
|
||||||
|
"""
|
||||||
|
model = CustomerHostingPackage
|
||||||
|
customer = None
|
||||||
|
|
||||||
|
def get_customer_object(self):
|
||||||
|
if self.customer is None:
|
||||||
|
self.customer = get_object_or_404(
|
||||||
|
get_user_model(), username=self.kwargs['user'])
|
||||||
|
return self.customer
|
||||||
|
|
||||||
|
def get_context_data(self, **kwargs):
|
||||||
|
context = super(CustomerHostingPackageList, self).get_context_data(
|
||||||
|
**kwargs)
|
||||||
|
context['customer'] = self.get_customer_object()
|
||||||
|
return context
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
return super(CustomerHostingPackageList, self).get_queryset().filter(
|
||||||
|
customer__username=self.kwargs['user'])
|
||||||
|
|
||||||
|
|
||||||
class HostingOptionChoices(
|
class HostingOptionChoices(
|
||||||
LoginRequiredMixin, StaffuserRequiredMixin, DetailView
|
LoginRequiredMixin, StaffuserRequiredMixin, DetailView
|
||||||
):
|
):
|
||||||
|
|
|
@ -41,13 +41,20 @@
|
||||||
<span class="icon-bar"></span>
|
<span class="icon-bar"></span>
|
||||||
<span class="icon-bar"></span>
|
<span class="icon-bar"></span>
|
||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="{% url "dashboard" %}">gnuviechadmin</a>
|
<a class="navbar-brand" href="{% if user.is_authenticated %}{% url 'customer_dashboard' slug=user.username %}{% else %}{% url 'dashboard' %}{% endif %}" title="{% trans "Dashboard" %}">gnuviechadmin</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="collapse navbar-collapse">
|
<div class="collapse navbar-collapse">
|
||||||
<ul class="nav navbar-nav">
|
<ul class="nav navbar-nav">
|
||||||
<li class="active"><a href="{% if user.is_authenticated %}{% url 'customer_dashboard' slug=user.username %}{% else %}{% url 'dashboard' %}{% endif %}">{% trans "Dashboard" %}</a></li>
|
|
||||||
{% if user.is_staff %}
|
{% if user.is_staff %}
|
||||||
|
<li class="dropdown{% if active_item == 'hostingpackage' %} active{% endif %}">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">{% trans "Hosting" %} <span class="caret"></span></a>
|
||||||
|
<ul class="dropdown-menu" role="menu">
|
||||||
|
<li><a href="{% url 'hosting_packages' user=user.username %}">{% trans "Your hosting packages" %}</a></li>
|
||||||
<li><a href="{% url 'all_hosting_packages' %}">{% trans "All hosting packages" %}</a></li>
|
<li><a href="{% url 'all_hosting_packages' %}">{% trans "All hosting packages" %}</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
{% else %}
|
||||||
|
<li{% if active_item == 'hostingpackage' %} class="active"{% endif %}><a href="{% url 'hosting_packages' user=user.username %}">{% trans "Hosting" %}</a></li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><i class="glyphicon glyphicon-link"></i> {% trans "Links" %} <span class="caret"></span></a>
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><i class="glyphicon glyphicon-link"></i> {% trans "Links" %} <span class="caret"></span></a>
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
{% extends "hostingpackages/base.html" %}
|
||||||
|
{% load i18n %}
|
||||||
|
{% block title %}{{ block.super }} - {% spaceless %}
|
||||||
|
{% if user == customer %}
|
||||||
|
{% trans "Your hosting packages" %}
|
||||||
|
{% else %}
|
||||||
|
{% blocktrans with customer=customer.get_full_name %}Hosting Packages of {{ customer }}{% endblocktrans %}
|
||||||
|
{% endif %}
|
||||||
|
{% endspaceless %}{% endblock title %}
|
||||||
|
|
||||||
|
{% block page_title %}{% spaceless %}
|
||||||
|
{% if user == customer %}
|
||||||
|
{% trans "Your hosting packages" %}
|
||||||
|
{% else %}
|
||||||
|
{% blocktrans with customer=customer.get_full_name %}Hosting Packages <small>of {{ customer }}</small>{% endblocktrans %}
|
||||||
|
{% endif %}
|
||||||
|
{% endspaceless %}{% endblock page_title %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
{% if customerhostingpackage_list %}
|
||||||
|
<table class="table table-condensed">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>{% trans "Name" %}</th>
|
||||||
|
<th>{% trans "Setup date" %}</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for package in customerhostingpackage_list %}
|
||||||
|
<tr>
|
||||||
|
<td><a href="{{ package.get_absolute_url }}">{{ package.name }}</a></td>
|
||||||
|
<td>{{ package.created }}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
{% else %}
|
||||||
|
<p class="text-info">{% if user == customer %}{% trans "You have no hosting packages setup yet." %}{% else %}{% trans "There are no hosting packages setup for this customer yet." %}{% endif %}</p>
|
||||||
|
{% endif %}
|
||||||
|
{% if user.is_staff %}
|
||||||
|
<p><a href="{% url 'create_customer_hosting_package' user=customer.username %}" class="btn btn-primary">{% trans "Add hosting package" %}</a></p>
|
||||||
|
{% endif %}
|
||||||
|
{% endblock content %}
|
Loading…
Reference in a new issue