diff options
Diffstat (limited to 'bitbake/lib/toaster/toastergui/views.py')
-rwxr-xr-x | bitbake/lib/toaster/toastergui/views.py | 94 |
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") | ||