summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/toastergui/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/toaster/toastergui/views.py')
-rwxr-xr-xbitbake/lib/toaster/toastergui/views.py94
1 files changed, 93 insertions, 1 deletions
diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py
index 8c21ca48e0..7a9d662b31 100755
--- a/bitbake/lib/toaster/toastergui/views.py
+++ b/bitbake/lib/toaster/toastergui/views.py
@@ -2336,6 +2336,50 @@ if toastermain.settings.MANAGED:
2336 2336
2337 return HttpResponse(jsonfilter({"error": "ok", "imported_layer" : { "name" : layer.name, "id": layer_version.id }, "deps_added": layers_added }), content_type = "application/json") 2337 return HttpResponse(jsonfilter({"error": "ok", "imported_layer" : { "name" : layer.name, "id": layer_version.id }, "deps_added": layers_added }), content_type = "application/json")
2338 2338
2339 def xhr_updatelayer(request):
2340
2341 def error_response(error):
2342 return HttpResponse(jsonfilter({"error": error}), content_type = "application/json")
2343
2344 if not request.POST.has_key("layer_version_id"):
2345 return error_response("Please specify a layer version id")
2346 try:
2347 layer_version_id = request.POST["layer_version_id"]
2348 layer_version = Layer_Version.objects.get(id=layer_version_id)
2349 except:
2350 return error_response("Cannot find layer to update")
2351
2352
2353 if request.POST.has_key("vcs_url"):
2354 layer_version.layer.vcs_url = request.POST["vcs_url"]
2355 if request.POST.has_key("dirpath"):
2356 layer_version.dirpath = request.POST["dirpath"]
2357 if request.POST.has_key("commit"):
2358 layer_version.commit = request.POST["commit"]
2359 if request.POST.has_key("up_branch"):
2360 layer_version.up_branch_id = int(request.POST["up_branch"])
2361
2362 if request.POST.has_key("add_dep"):
2363 lvd = LayerVersionDependency(layer_version=layer_version, depends_on_id=request.POST["add_dep"])
2364 lvd.save()
2365
2366 if request.POST.has_key("rm_dep"):
2367 rm_dep = LayerVersionDependency.objects.get(layer_version=layer_version, depends_on_id=request.POST["rm_dep"])
2368 rm_dep.delete()
2369
2370 if request.POST.has_key("summary"):
2371 layer_version.layer.summary = request.POST["summary"]
2372 if request.POST.has_key("description"):
2373 layer_version.layer.description = request.POST["description"]
2374
2375 try:
2376 layer_version.layer.save()
2377 layer_version.save()
2378 except:
2379 return error_response("Could not update layer version entry")
2380
2381 return HttpResponse(jsonfilter({"error": "ok",}), content_type = "application/json")
2382
2339 2383
2340 2384
2341 def importlayer(request): 2385 def importlayer(request):
@@ -2439,8 +2483,53 @@ if toastermain.settings.MANAGED:
2439 2483
2440 def layerdetails(request, layerid): 2484 def layerdetails(request, layerid):
2441 template = "layerdetails.html" 2485 template = "layerdetails.html"
2486 limit = 10
2487
2488 if request.GET.has_key("limit"):
2489 request.session['limit'] = request.GET['limit']
2490
2491 if request.session.has_key('limit'):
2492 limit = request.session['limit']
2493
2494 layer_version = Layer_Version.objects.get(pk = layerid)
2495
2496 # Targets tab query functionality
2497 if request.GET.has_key('targets_search'):
2498 targets = Paginator(Recipe.objects.filter(layer_version=layer_version,name__icontains=request.GET['targets_search']).order_by("name"), limit)
2499 else:
2500 targets = Paginator(Recipe.objects.filter(layer_version=layer_version).order_by("name"), limit)
2501
2502 if request.GET.has_key("tpage"):
2503 try:
2504 targets = targets.page(request.GET['tpage'])
2505 except EmptyPage:
2506 targets = targets.page(targets.num_pages)
2507 else:
2508 targets = targets.page(1)
2509
2510 # Machines tab query functionality
2511 if request.GET.has_key('machines_search'):
2512 machines = Paginator(Machine.objects.filter(layer_version=layer_version,name__icontains=request.GET['machines_search']).order_by("name"), limit)
2513 else:
2514 machines = Paginator(Machine.objects.filter(layer_version=layer_version).order_by("name"), limit)
2515
2516 if request.GET.has_key("mpage"):
2517 try:
2518 machines = machines.page(request.GET['mpage'])
2519 except EmptyPage:
2520 machines = machines.page(machines.num_pages)
2521 else:
2522 machines = machines.page(1)
2523
2442 context = { 2524 context = {
2443 'layerversion': Layer_Version.objects.get(pk = layerid), 2525 'layerversion': layer_version,
2526 'layer_in_project' : ProjectLayer.objects.filter(project_id=request.session['project_id'],layercommit=layerid).count(),
2527 'yocto_compat': Branch.objects.filter(layer_source=layer_version.layer_source),
2528 'machines': machines,
2529 'targets': targets,
2530 'total_targets': Recipe.objects.filter(layer_version=layer_version).count(),
2531
2532 'total_machines': Machine.objects.filter(layer_version=layer_version).count(),
2444 } 2533 }
2445 return render(request, template, context) 2534 return render(request, template, context)
2446 2535
@@ -2972,3 +3061,6 @@ else:
2972 3061
2973 def xhr_importlayer(request): 3062 def xhr_importlayer(request):
2974 raise Exception("page not available in interactive mode") 3063 raise Exception("page not available in interactive mode")
3064
3065 def xhr_updatelayer(request):
3066 raise Exception("page not available in interactive mode")