From 8035538b746a15811eb88781c3d439c9e7aefa29 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 9 Aug 2016 17:19:23 -0400 Subject: [PATCH] Fixes #445: Limit rack height to between 1U and 100U (inclusive) --- .../0015_rack_add_u_height_validator.py | 21 +++++++++++++++++++ netbox/dcim/models.py | 5 +++-- 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 netbox/dcim/migrations/0015_rack_add_u_height_validator.py diff --git a/netbox/dcim/migrations/0015_rack_add_u_height_validator.py b/netbox/dcim/migrations/0015_rack_add_u_height_validator.py new file mode 100644 index 000000000..8e555204b --- /dev/null +++ b/netbox/dcim/migrations/0015_rack_add_u_height_validator.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.8 on 2016-08-09 21:18 +from __future__ import unicode_literals + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('dcim', '0014_rack_add_type_width'), + ] + + operations = [ + migrations.AlterField( + model_name='rack', + name='u_height', + field=models.PositiveSmallIntegerField(default=42, validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(100)], verbose_name=b'Height (U)'), + ), + ] diff --git a/netbox/dcim/models.py b/netbox/dcim/models.py index 6d9d0e290..f15af2b19 100644 --- a/netbox/dcim/models.py +++ b/netbox/dcim/models.py @@ -3,7 +3,7 @@ from collections import OrderedDict from django.conf import settings from django.core.exceptions import MultipleObjectsReturned, ValidationError from django.core.urlresolvers import reverse -from django.core.validators import MinValueValidator +from django.core.validators import MaxValueValidator, MinValueValidator from django.db import models from django.db.models import Count, Q, ObjectDoesNotExist @@ -307,7 +307,8 @@ class Rack(CreatedUpdatedModel): type = models.PositiveSmallIntegerField(choices=RACK_TYPE_CHOICES, blank=True, null=True, verbose_name='Type') width = models.PositiveSmallIntegerField(choices=RACK_WIDTH_CHOICES, default=RACK_WIDTH_19IN, verbose_name='Width', help_text='Rail-to-rail width') - u_height = models.PositiveSmallIntegerField(default=42, verbose_name='Height (U)') + u_height = models.PositiveSmallIntegerField(default=42, verbose_name='Height (U)', + validators=[MinValueValidator(1), MaxValueValidator(100)]) comments = models.TextField(blank=True) objects = RackManager()