diff options
Diffstat (limited to 'Post/models.py')
-rw-r--r-- | Post/models.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/Post/models.py b/Post/models.py index 84f8abf..ddf2fc7 100644 --- a/Post/models.py +++ b/Post/models.py @@ -11,8 +11,24 @@ from datetime import datetime import Levenshtein +class ErrorType(object): + RECIPE = 'recipe' + CORE = 'core' + BITBAKE_SELFTEST = 'bitbake-selftest' + OE_SELFTEST = 'oe-selftest' + +class InvalidErrorType(Exception): + pass + # Create your models here. class Build(models.Model): + ERROR_TYPE_CHOICES = ( + (ErrorType.RECIPE, 'Recipe'), + (ErrorType.CORE, 'Core'), + (ErrorType.BITBAKE_SELFTEST, 'Bitbake selftest'), + (ErrorType.OE_SELFTEST, 'OE selftest'), + ) + DATE = models.DateTimeField('Submit date', blank=True, null=True) MACHINE = models.CharField(max_length=50) BRANCH = models.CharField(max_length=200) @@ -25,6 +41,16 @@ class Build(models.Model): NAME = models.CharField(max_length=50) EMAIL = models.CharField(max_length=50) LINK_BACK = models.TextField(max_length=300, blank=True, null=True) + ERROR_TYPE = models.CharField(max_length=20, choices=ERROR_TYPE_CHOICES, + default=ErrorType.RECIPE) + + def save(self, *args, **kwargs): + if self.ERROR_TYPE not in [e_type[0] for e_type in + self.ERROR_TYPE_CHOICES]: + raise InvalidErrorType("Error type %s is not known" % + self.ERROR_TYPE) + + super(Build, self).save(*args, **kwargs) class BuildFailure(models.Model): TASK = models.CharField(max_length=1024) |