On 06/14/2016 11:44 AM, Aníbal Limón wrote: > > > On 06/14/2016 08:30 AM, Michael Wood wrote: >> On 14/06/16 00:32, Aníbal Limón wrote: >>> In order to support other errors not only Recipe ones adds >>> a ERROR_TYPE field to the Build model defaults to "Recipe". >>> >>> Add a class for store BuildErrorType currently supported >>> Recipe, Core, Bitbake selftest and OE selftest. >>> >>> [YOCTO #7583] >>> >>> Signed-off-by: Aníbal Limón >>> --- >>> Post/migrations/0005_build_error_type.py | 19 +++++++++++++++++++ >>> Post/models.py | 7 +++++++ >>> 2 files changed, 26 insertions(+) >>> create mode 100644 Post/migrations/0005_build_error_type.py >>> >>> diff --git a/Post/migrations/0005_build_error_type.py >>> b/Post/migrations/0005_build_error_type.py >>> new file mode 100644 >>> index 0000000..96cdf8c >>> --- /dev/null >>> +++ b/Post/migrations/0005_build_error_type.py >>> @@ -0,0 +1,19 @@ >>> +# -*- coding: utf-8 -*- >>> +from __future__ import unicode_literals >>> + >>> +from django.db import migrations, models >>> + >>> + >>> +class Migration(migrations.Migration): >>> + >>> + dependencies = [ >>> + ('Post', '0004_auto_20160530_1126'), >>> + ] >>> + >>> + operations = [ >>> + migrations.AddField( >>> + model_name='build', >>> + name='ERROR_TYPE', >>> + field=models.CharField(default=b'Recipe', max_length=64), >>> + ), >>> + ] >>> diff --git a/Post/models.py b/Post/models.py >>> index 84f8abf..f8d9916 100644 >>> --- a/Post/models.py >>> +++ b/Post/models.py >>> @@ -11,6 +11,12 @@ from datetime import datetime >>> import Levenshtein >>> +class BuildErrorType(object): >>> + RECIPE = "Recipe" >>> + BITBAKE_CORE = "Core" >>> + BITBAKE_SELFTEST = "Bitbake selftest" >>> + OE_SELFTEST = "OE selftest" >>> + >>> # Create your models here. >>> class Build(models.Model): >>> DATE = models.DateTimeField('Submit date', blank=True, null=True) >>> @@ -25,6 +31,7 @@ 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=64, >>> default=BuildErrorType.RECIPE) >>> class BuildFailure(models.Model): >>> TASK = models.CharField(max_length=1024) >> >> Thanks for the patches. >> >> Ideally we wouldn't use a char field here as if the type string ever >> changed the database could end up with multiple versions of the type >> strings depending on when the type was saved, it would be possible to >> handle that with migrations but it would be pretty messy. It also allows >> any arbitrary chars which we probably don't want if it's something we're >> going to be filtering on. Here is an example from Toaster on how it can >> be done with the choices option and an enum style. >> >> |OUTCOME_NA = -1 OUTCOME_SUCCESS = 0 OUTCOME_COVERED = 1 OUTCOME_CACHED >> = 2 OUTCOME_PREBUILT = 3 OUTCOME_FAILED = 4 OUTCOME_EMPTY = 5 >> TASK_OUTCOME = ( (OUTCOME_NA, 'Not Available'), (OUTCOME_SUCCESS, >> 'Succeeded'), (OUTCOME_COVERED, 'Covered'), (OUTCOME_CACHED, 'Cached'), >> (OUTCOME_PREBUILT, 'Prebuilt'), (OUTCOME_FAILED, 'Failed'), >> (OUTCOME_EMPTY, 'Empty'), ) ||outcome = >> models.IntegerField(choices=TASK_OUTCOME, default=OUTCOME_NA)| >> > > Thanks for the feedback, i'll change to use choices instead of char values. > > alimon I made the change now is at contrib branch, http://git.yoctoproject.org/cgit/cgit.cgi/error-report-web/log/?h=alimon/devel alimon > >> >> >> Michael >> > > >