aboutsummaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster
diff options
context:
space:
mode:
authorElliot Smith <elliot.smith@intel.com>2015-12-09 19:56:29 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-12-14 23:13:06 +0000
commit7a0c45e478fac9de2bae63544f7e98187ceb59a7 (patch)
tree0552588396da878af3f3a0487e3f267fd5ca6268 /bitbake/lib/toaster
parent9de8dfa11a9d0008fd43bd38f81ab3d65b998033 (diff)
downloadopenembedded-core-contrib-7a0c45e478fac9de2bae63544f7e98187ceb59a7.tar.gz
bitbake: toaster: Create default project with get_or_create* method
Rather than maintain data as part of the migrations (as was done for the default project previously), create the default (cli builds) project on demand as a by-product of getting it from the database. [YOCTO #8364] (Bitbake rev: 5fd8e90ab9b81d1bd0d301bc1c91228ecbbea74b) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: brian avery <avery.brian@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/toaster')
-rw-r--r--bitbake/lib/toaster/orm/models.py23
-rwxr-xr-xbitbake/lib/toaster/toastergui/views.py2
2 files changed, 16 insertions, 9 deletions
diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py
index 0174233498..4a868e7ded 100644
--- a/bitbake/lib/toaster/orm/models.py
+++ b/bitbake/lib/toaster/orm/models.py
@@ -91,18 +91,25 @@ class ProjectManager(models.Manager):
return prj
- def create(self, *args, **kwargs):
- raise Exception("Invalid call to Project.objects.create. Use Project.objects.create_project() to create a project")
-
# return single object with is_default = True
- def get_default_project(self):
+ def get_or_create_default_project(self):
projects = super(ProjectManager, self).filter(is_default = True)
+
if len(projects) > 1:
- raise Exception("Inconsistent project data: multiple " +
- "default projects (i.e. with is_default=True)")
+ raise Exception('Inconsistent project data: multiple ' +
+ 'default projects (i.e. with is_default=True)')
elif len(projects) < 1:
- raise Exception("Inconsistent project data: no default project found")
- return projects[0]
+ options = {
+ 'name': 'Command line builds',
+ 'short_description': 'Project for builds started outside Toaster',
+ 'is_default': True
+ }
+ project = Project.objects.create(**options)
+ project.save()
+
+ return project
+ else:
+ return projects[0]
class Project(models.Model):
search_allowed_fields = ['name', 'short_description', 'release__name', 'release__branch_name']
diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py
index 243bb09d62..16f27b8022 100755
--- a/bitbake/lib/toaster/toastergui/views.py
+++ b/bitbake/lib/toaster/toastergui/views.py
@@ -73,7 +73,7 @@ class MimeTypeFinder(object):
def landing(request):
# in build mode, we redirect to the command-line builds page
# if there are any builds for the default (cli builds) project
- default_project = Project.objects.get_default_project()
+ default_project = Project.objects.get_or_create_default_project()
default_project_builds = Build.objects.filter(project = default_project)
# we only redirect to projects page if there is a user-generated project