summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/toastergui/views.py
diff options
context:
space:
mode:
authorDavid Reyna <David.Reyna@windriver.com>2018-08-26 15:33:32 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-08-28 10:32:08 +0100
commit4c41fc3f6eca667a6b09ff1b7701cec9b8b37e3f (patch)
treea9a15e440a8898f4cd290f07338a2522affa3775 /bitbake/lib/toaster/toastergui/views.py
parent1035d9decb8e9cfed44e70795d54c1aa6241c070 (diff)
downloadpoky-4c41fc3f6eca667a6b09ff1b7701cec9b8b37e3f.tar.gz
bitbake: toaster: enable project import and merged Toaster settings
Enable the ability to select an existing build directory into Toaster. This opens to the user the backend features of 12823, for command line user compatibility. Enable the ability to select saving Toaster settings in the regular "bblayers.conf" and "local.conf" instead of the default "toaster_bblayers.conf" and "toaster.conf". This opens to the user the backend features of 12821, for command line user compatibility. [YOCTO #12902] (Bitbake rev: 8ce51fbd92ab42365a38e0c1c260bb4979377a89) Signed-off-by: David Reyna <David.Reyna@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/toaster/toastergui/views.py')
-rw-r--r--bitbake/lib/toaster/toastergui/views.py22
1 files changed, 16 insertions, 6 deletions
diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py
index 4939b6b1f4..c712b06a6e 100644
--- a/bitbake/lib/toaster/toastergui/views.py
+++ b/bitbake/lib/toaster/toastergui/views.py
@@ -1398,7 +1398,9 @@ if True:
1398 mandatory_fields = ['projectname', 'ptype'] 1398 mandatory_fields = ['projectname', 'ptype']
1399 try: 1399 try:
1400 ptype = request.POST.get('ptype') 1400 ptype = request.POST.get('ptype')
1401 if ptype == "build": 1401 if ptype == "import":
1402 mandatory_fields.append('importdir')
1403 else:
1402 mandatory_fields.append('projectversion') 1404 mandatory_fields.append('projectversion')
1403 # make sure we have values for all mandatory_fields 1405 # make sure we have values for all mandatory_fields
1404 missing = [field for field in mandatory_fields if len(request.POST.get(field, '')) == 0] 1406 missing = [field for field in mandatory_fields if len(request.POST.get(field, '')) == 0]
@@ -1415,14 +1417,22 @@ if True:
1415 login(request, user) 1417 login(request, user)
1416 1418
1417 # save the project 1419 # save the project
1418 if ptype == "analysis": 1420 if ptype == "import":
1419 release = None 1421 if not os.path.isdir('%s/conf' % request.POST['importdir']):
1422 raise BadParameterException("Bad path or missing 'conf' directory (%s)" % request.POST['importdir'])
1423 from django.core import management
1424 management.call_command('buildimport', '--command=import', '--name=%s' % request.POST['projectname'], '--path=%s' % request.POST['importdir'], interactive=False)
1425 prj = Project.objects.get(name = request.POST['projectname'])
1426 prj.merged_attr = True
1427 prj.save()
1420 else: 1428 else:
1421 release = Release.objects.get(pk = request.POST.get('projectversion', None )) 1429 release = Release.objects.get(pk = request.POST.get('projectversion', None ))
1430 prj = Project.objects.create_project(name = request.POST['projectname'], release = release)
1431 prj.user_id = request.user.pk
1432 if 'mergeattr' == request.POST.get('mergeattr', ''):
1433 prj.merged_attr = True
1434 prj.save()
1422 1435
1423 prj = Project.objects.create_project(name = request.POST['projectname'], release = release)
1424 prj.user_id = request.user.pk
1425 prj.save()
1426 return redirect(reverse(project, args=(prj.pk,)) + "?notify=new-project") 1436 return redirect(reverse(project, args=(prj.pk,)) + "?notify=new-project")
1427 1437
1428 except (IntegrityError, BadParameterException) as e: 1438 except (IntegrityError, BadParameterException) as e: