diff --git a/docs/code/hostingpackages.rst b/docs/code/hostingpackages.rst index 2d5d077..ad021dc 100644 --- a/docs/code/hostingpackages.rst +++ b/docs/code/hostingpackages.rst @@ -22,3 +22,17 @@ .. automodule:: hostingpackages.models :members: + + +:py:mod:`views ` +--------------------------------------- + +.. automodule:: hostingpackages.views + :members: + + +:py:mod:`urls ` +------------------------------------- + +.. automodule:: hostingpackages.urls + :members: diff --git a/gnuviechadmin/hostingpackages/urls.py b/gnuviechadmin/hostingpackages/urls.py index 9e7f00d..0280eca 100644 --- a/gnuviechadmin/hostingpackages/urls.py +++ b/gnuviechadmin/hostingpackages/urls.py @@ -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[\w0-9@.+-_]+)/create$', CreateHostingPackage.as_view(), name='create_hosting_package'), + url(r'^(?P[\w0-9@.+-_]+)/hostingpackage/(?P\d+)/$', + CustomerHostingPackageDetails.as_view(), + name='hosting_package_details'), ) diff --git a/gnuviechadmin/hostingpackages/views.py b/gnuviechadmin/hostingpackages/views.py index a29c098..e368088 100644 --- a/gnuviechadmin/hostingpackages/views.py +++ b/gnuviechadmin/hostingpackages/views.py @@ -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