implement CustomerHostingPackageDetails view

This commit is contained in:
Jan Dittberner 2015-01-24 16:23:17 +01:00
parent 0baee51d19
commit 0d08d9876b
3 changed files with 54 additions and 6 deletions

View file

@ -22,3 +22,17 @@
.. automodule:: hostingpackages.models
:members:
:py:mod:`views <hostingpackages.views>`
---------------------------------------
.. automodule:: hostingpackages.views
:members:
:py:mod:`urls <hostingpackages.urls>`
-------------------------------------
.. automodule:: hostingpackages.urls
:members:

View file

@ -1,12 +1,22 @@
"""
This module defines the URL patterns for hosting package related views.
"""
from __future__ import absolute_import, unicode_literals
from django.conf.urls import patterns, url
from .views import CreateHostingPackage
from .views import (
CreateHostingPackage,
CustomerHostingPackageDetails,
)
urlpatterns = patterns(
'',
url(r'^(?P<user>[\w0-9@.+-_]+)/create$', CreateHostingPackage.as_view(),
name='create_hosting_package'),
url(r'^(?P<user>[\w0-9@.+-_]+)/hostingpackage/(?P<pk>\d+)/$',
CustomerHostingPackageDetails.as_view(),
name='hosting_package_details'),
)

View file

@ -4,18 +4,22 @@ This module defines views related to hosting packages.
"""
from __future__ import absolute_import, unicode_literals
from django.conf import settings
from django.core.urlresolvers import reverse
from django.shortcuts import redirect
from django.utils.translation import ugettext as _
from django.views.generic import DetailView
from django.views.generic.edit import CreateView
from django.contrib.auth import get_user_model
from django.contrib import messages
from django.contrib.auth import get_user_model
from braces.views import (
LoginRequiredMixin,
StaffuserRequiredMixin,
)
from gvacommon.viewmixins import StaffOrSelfLoginRequiredMixin
from .forms import CreateHostingPackageForm
from .models import CustomerHostingPackage
@ -37,13 +41,12 @@ class CreateHostingPackage(
kwargs.update(self.kwargs)
return kwargs
def _get_customer(self):
def get_customer_object(self):
return get_user_model().objects.get(username=self.kwargs['user'])
def get_context_data(self, **kwargs):
context = super(CreateHostingPackage, self).get_context_data(**kwargs)
context['customer'] = self._get_customer()
context['customer'] = self.get_customer_object()
return context
def get_success_url(self):
@ -52,7 +55,7 @@ class CreateHostingPackage(
def form_valid(self, form):
hostingpackage = form.save(commit=False)
hostingpackage.customer = self._get_customer()
hostingpackage.customer = self.get_customer_object()
hostingpackage.save()
messages.success(
self.request,
@ -60,3 +63,24 @@ class CreateHostingPackage(
name=hostingpackage.name)
)
return redirect(self.get_success_url())
class CustomerHostingPackageDetails(StaffOrSelfLoginRequiredMixin, DetailView):
"""
This view is for showing details of a customer hosting package.
"""
model = CustomerHostingPackage
context_object_name = 'hostingpackage'
def get_customer_object(self):
return get_user_model().objects.get(username=self.kwargs['user'])
def get_context_data(self, **kwargs):
context = super(CustomerHostingPackageDetails, self).get_context_data(
**kwargs)
context.update({
'customer': self.get_customer_object(),
'uploadserver': settings.OSUSER_UPLOAD_SERVER,
})
return context