diff options
author | Elliot Smith <elliot.smith@intel.com> | 2015-12-09 19:56:29 -0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-12-14 23:13:06 +0000 |
commit | 7a0c45e478fac9de2bae63544f7e98187ceb59a7 (patch) | |
tree | 0552588396da878af3f3a0487e3f267fd5ca6268 /bitbake/lib/toaster | |
parent | 9de8dfa11a9d0008fd43bd38f81ab3d65b998033 (diff) | |
download | openembedded-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.py | 23 | ||||
-rwxr-xr-x | bitbake/lib/toaster/toastergui/views.py | 2 |
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 |