Jan Dittberner
6cebd80c89
This commit is a rough port to Django 2.1, Python 3 and a Docker based local development setup. Tests fail/error but migrations and the web frontend are already runnable. Task queue functionality is untested and translations seem to have trouble.
151 lines
4.9 KiB
Python
151 lines
4.9 KiB
Python
"""
|
|
This module contains the form classes related to hosting packages.
|
|
|
|
"""
|
|
from __future__ import absolute_import, unicode_literals
|
|
|
|
from django import forms
|
|
from django.urls import reverse
|
|
from django.utils.translation import ugettext as _
|
|
|
|
from crispy_forms.helper import FormHelper
|
|
from crispy_forms.layout import (
|
|
Layout,
|
|
Submit,
|
|
)
|
|
|
|
from .models import (
|
|
CustomerDiskSpaceOption,
|
|
CustomerHostingPackage,
|
|
CustomerMailboxOption,
|
|
CustomerUserDatabaseOption,
|
|
)
|
|
|
|
|
|
class CreateCustomerHostingPackageForm(forms.ModelForm):
|
|
"""
|
|
This form class is used for creating new customer hosting packages with
|
|
a preselected customer.
|
|
|
|
"""
|
|
class Meta:
|
|
model = CustomerHostingPackage
|
|
fields = ['template', 'name', 'description']
|
|
|
|
def __init__(self, instance, *args, **kwargs):
|
|
username = kwargs.pop('user')
|
|
super(CreateCustomerHostingPackageForm, self).__init__(
|
|
*args, **kwargs
|
|
)
|
|
self.fields['description'].widget.attrs['rows'] = 2
|
|
self.helper = FormHelper()
|
|
self.helper.form_action = reverse(
|
|
'create_customer_hosting_package', kwargs={'user': username}
|
|
)
|
|
self.helper.layout = Layout(
|
|
'template',
|
|
'name',
|
|
'description',
|
|
Submit('submit', _('Add Hosting Package')),
|
|
)
|
|
|
|
|
|
class CreateHostingPackageForm(forms.ModelForm):
|
|
"""
|
|
This form class is used for creating new customer hosting packages.
|
|
|
|
"""
|
|
class Meta:
|
|
model = CustomerHostingPackage
|
|
fields = ['customer', 'template', 'name', 'description']
|
|
|
|
def __init__(self, instance, *args, **kwargs):
|
|
super(CreateHostingPackageForm, self).__init__(
|
|
*args, **kwargs
|
|
)
|
|
self.fields['description'].widget.attrs['rows'] = 2
|
|
self.helper = FormHelper()
|
|
self.helper.form_action = reverse('create_hosting_package')
|
|
self.helper.layout = Layout(
|
|
'customer',
|
|
'template',
|
|
'name',
|
|
'description',
|
|
Submit('submit', _('Add Hosting Package')),
|
|
)
|
|
|
|
|
|
class AddDiskspaceOptionForm(forms.ModelForm):
|
|
class Meta:
|
|
model = CustomerDiskSpaceOption
|
|
fields = ['diskspace', 'diskspace_unit']
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
self.hostingpackage = kwargs.pop('hostingpackage')
|
|
self.option_template = kwargs.pop('option_template')
|
|
super(AddDiskspaceOptionForm, self).__init__(*args, **kwargs)
|
|
self.helper = FormHelper()
|
|
self.helper.form_action = reverse(
|
|
'add_hosting_option',
|
|
kwargs={
|
|
'package': self.hostingpackage.id,
|
|
'type': 'diskspace',
|
|
'optionid': self.option_template.id,
|
|
})
|
|
self.helper.add_input(Submit('submit', _('Add disk space option')))
|
|
|
|
def save(self, commit=True):
|
|
self.instance.hosting_package = self.hostingpackage
|
|
self.instance.template = self.option_template
|
|
return super(AddDiskspaceOptionForm, self).save(commit=True)
|
|
|
|
|
|
class AddMailboxOptionForm(forms.ModelForm):
|
|
class Meta:
|
|
model = CustomerMailboxOption
|
|
fields = ['number']
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
self.hostingpackage = kwargs.pop('hostingpackage')
|
|
self.option_template = kwargs.pop('option_template')
|
|
super(AddMailboxOptionForm, self).__init__(*args, **kwargs)
|
|
self.helper = FormHelper()
|
|
self.helper.form_action = reverse(
|
|
'add_hosting_option',
|
|
kwargs={
|
|
'package': self.hostingpackage.id,
|
|
'type': 'mailboxes',
|
|
'optionid': self.option_template.id,
|
|
})
|
|
self.helper.add_input(Submit('submit', _('Add mailbox option')))
|
|
|
|
def save(self, commit=True):
|
|
self.instance.hosting_package = self.hostingpackage
|
|
self.instance.template = self.option_template
|
|
return super(AddMailboxOptionForm, self).save(commit=True)
|
|
|
|
|
|
class AddUserDatabaseOptionForm(forms.ModelForm):
|
|
class Meta:
|
|
model = CustomerUserDatabaseOption
|
|
fields = ['number']
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
self.hostingpackage = kwargs.pop('hostingpackage')
|
|
self.option_template = kwargs.pop('option_template')
|
|
super(AddUserDatabaseOptionForm, self).__init__(*args, **kwargs)
|
|
self.helper = FormHelper()
|
|
self.helper.form_action = reverse(
|
|
'add_hosting_option',
|
|
kwargs={
|
|
'package': self.hostingpackage.id,
|
|
'type': 'databases',
|
|
'optionid': self.option_template.id,
|
|
})
|
|
self.helper.add_input(Submit('submit', _('Add database option')))
|
|
|
|
def save(self, commit=True):
|
|
self.instance.hosting_package = self.hostingpackage
|
|
self.instance.template = self.option_template
|
|
self.instance.db_type = self.option_template.db_type
|
|
return super(AddUserDatabaseOptionForm, self).save(commit=True)
|