def make_ctform(user): user_org = user.get_profile().org parent_org = user_org.parentOrg template_choices = [(t.id, t.name) for t in permissions.get_allowed_templates(user)] ipblock_choices = [(t.id, str(t)) for t in permissions.get_allowed_ipblocks(user)] class CTForm(forms.Form): template = forms.ChoiceField(label='Template', choices=template_choices) ipblock = forms.ChoiceField(label='IP Block to Allocate From', choices=ipblock_choices) num_to_create = forms.IntegerField(label='# to Create', initial='1') return CTForm
def make_ctform(user): user_org = user.get_profile().org parent_org = user_org.parentOrg template_choices = [(t.id, t.name) for t in permissions.get_allowed_templates(user)] ipblock_choices = [(t.id, str(t)) for t in permissions.get_allowed_ipblocks(user)] class CTForm(forms.Form): template = forms.ChoiceField(label='Template', choices=template_choices) ipblock = forms.ChoiceField(label='IP Block to Allocate From', choices=ipblock_choices) num_to_create = forms.IntegerField(label='# to Create per User', initial='1') ip_subnet = forms.IPAddressField(label='IP address subnet to allow', required=False) ip_subnet_mask = forms.IntegerField(label='Significant bits in subnet', required=False, min_value=0, max_value=32) def clean_ip_subnet_mask(self): # Test if the user provided a subnet mask has_subnet_mask = True try: ip_subnet_mask = self.cleaned_data['ip_subnet_mask'] except KeyError: has_subnet_mask = False if ip_subnet_mask == None: has_subnet_mask = False # Test if they provided a subnet has_subnet = True try: ip_subnet = self.cleaned_data['ip_subnet'] except KeyError: has_subnet = False if ip_subnet == '': has_subnet = False # Check that either subnet and mask or provded, or neither if has_subnet != has_subnet_mask: raise forms.ValidationError("You must provide both a subnet " "and a mask, or neither.") # If we have a mask, make sure it has a correct value if has_subnet_mask: if ip_subnet_mask < 0 or ip_subnet_mask > 32: raise forms.ValidationError("The subnet mask must be between 0 and " "32 inclusive") return ip_subnet_mask if has_subnet_mask else None return CTForm