diff options
Diffstat (limited to 'bitbake/lib/toaster/toastergui/views.py')
-rwxr-xr-x | bitbake/lib/toaster/toastergui/views.py | 60 |
1 files changed, 23 insertions, 37 deletions
diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py index b7bfb9a69d..6a219ede0c 100755 --- a/bitbake/lib/toaster/toastergui/views.py +++ b/bitbake/lib/toaster/toastergui/views.py | |||
@@ -2257,51 +2257,37 @@ if True: | |||
2257 | 2257 | ||
2258 | from django.views.decorators.csrf import csrf_exempt | 2258 | from django.views.decorators.csrf import csrf_exempt |
2259 | @csrf_exempt | 2259 | @csrf_exempt |
2260 | def xhr_datatypeahead(request, pid): | 2260 | def xhr_testreleasechange(request, pid): |
2261 | def response(data): | ||
2262 | return HttpResponse(jsonfilter(data), | ||
2263 | content_type="application/json") | ||
2264 | |||
2265 | """ returns layer versions that would be deleted on the new | ||
2266 | release__pk """ | ||
2261 | try: | 2267 | try: |
2262 | prj = Project.objects.get(pk = pid) | 2268 | prj = Project.objects.get(pk = pid) |
2269 | new_release_id = request.GET['new_release_id'] | ||
2263 | 2270 | ||
2271 | # If we're already on this project do nothing | ||
2272 | if prj.release.pk == int(new_release_id): | ||
2273 | return reponse({"error": "ok", "rows": []}) | ||
2264 | 2274 | ||
2265 | # returns layer versions that would be deleted on the new release__pk | 2275 | retval = [] |
2266 | if request.GET.get('type', None) == "versionlayers": | ||
2267 | # If we're already on this project do nothing | ||
2268 | if prj.release.pk == int(request.GET.get('search', -1)): | ||
2269 | return HttpResponse(jsonfilter({"error": "ok", "rows": []}), content_type="application/json") | ||
2270 | |||
2271 | retval = [] | ||
2272 | |||
2273 | for i in prj.projectlayer_set.all(): | ||
2274 | lv = prj.compatible_layerversions(release = Release.objects.get(pk=request.GET.get('search', None))).filter(layer__name = i.layercommit.layer.name) | ||
2275 | # there is no layer_version with the new release id, and the same name | ||
2276 | if lv.count() < 1: | ||
2277 | retval.append(i) | ||
2278 | |||
2279 | return HttpResponse(jsonfilter( {"error":"ok", | ||
2280 | "rows" : map( _lv_to_dict(prj), map(lambda x: x.layercommit, retval )) | ||
2281 | }), content_type = "application/json") | ||
2282 | 2276 | ||
2277 | for i in prj.projectlayer_set.all(): | ||
2278 | lv = prj.compatible_layerversions(release = Release.objects.get(pk=new_release_id)).filter(layer__name = i.layercommit.layer.name) | ||
2279 | # there is no layer_version with the new release id, | ||
2280 | # and the same name | ||
2281 | if lv.count() < 1: | ||
2282 | retval.append(i) | ||
2283 | 2283 | ||
2284 | # returns layer versions that provide the named targets | 2284 | return response({"error":"ok", |
2285 | if request.GET.get('type', None) == "layers4target": | 2285 | "rows" : map( _lv_to_dict(prj), |
2286 | # we return data only if the recipe can't be provided by the current project layer set | 2286 | map(lambda x: x.layercommit, retval )) |
2287 | if reduce(lambda x, y: x + y, [x.recipe_layer_version.filter(name=request.GET.get('search', None)).count() for x in prj.projectlayer_equivalent_set()], 0): | 2287 | }) |
2288 | final_list = [] | ||
2289 | else: | ||
2290 | queryset_all = prj.compatible_layerversions().filter(recipe_layer_version__name = request.GET.get('search', None)) | ||
2291 | 2288 | ||
2292 | # exclude layers in the project | ||
2293 | queryset_all = queryset_all.exclude(pk__in = [x.id for x in prj.projectlayer_equivalent_set()]) | ||
2294 | |||
2295 | # and show only the selected layers for this project | ||
2296 | final_list = set([x.get_equivalents_wpriority(prj)[0] for x in queryset_all]) | ||
2297 | |||
2298 | return HttpResponse(jsonfilter( { "error":"ok", "rows" : map( _lv_to_dict(prj), final_list) }), content_type = "application/json") | ||
2299 | |||
2300 | |||
2301 | raise Exception("Unknown request! " + request.GET.get('type', "No parameter supplied")) | ||
2302 | except Exception as e: | 2289 | except Exception as e: |
2303 | return HttpResponse(jsonfilter({"error":str(e) + "\n" + traceback.format_exc()}), content_type = "application/json") | 2290 | return response({"error": str(e) }) |
2304 | |||
2305 | 2291 | ||
2306 | def xhr_configvaredit(request, pid): | 2292 | def xhr_configvaredit(request, pid): |
2307 | try: | 2293 | try: |