from django import forms from django.utils.translation import get_language, ugettext_lazy as _ from django.core.exceptions import ValidationError from .models import VMInstance from uncloud.forms import MainForm, MainModelForm, DomainNameField class InitialRequestForm(MainForm): cores = forms.IntegerField(label='CPU', min_value=1, max_value=48, initial=1) memory = forms.IntegerField(label='RAM', min_value=2, max_value=200, initial=2) storage = forms.IntegerField(label='Storage', min_value=100, max_value=10000, initial=100) pricing_name = forms.CharField(required=True) class RequestDomainsNamesForm(MainForm): homeserver_name = forms.CharField(required=True, widget=forms.TextInput(attrs={'placeholder': 'Homeserver Name *'})) webclient_name = forms.CharField(required=True, widget=forms.TextInput(attrs={'placeholder': 'Webclient Name *'})) is_open_registration = forms.BooleanField(required=False, initial=False) def clean_homeserver_name(self): homeserver_name = self.cleaned_data['homeserver_name'] if VMInstance.objects.filter(homeserver_domain=f"{homeserver_name}.matrix.ungleich.cloud").exists(): raise ValidationError("homeserver name already exists") return homeserver_name def clean_webclient_name(self): webclient_name = self.cleaned_data['webclient_name'] if VMInstance.objects.filter(webclient_domain=f"{webclient_name}.matrix.0co2.cloud").exists(): raise ValidationError("webclient name already exists") return webclient_name