Replace references to the now deprecated layersource models across Toaster with the new enums for layer source types.
Signed-off-by: Michael Wood <[email protected]> --- .../toaster/toastergui/templates/layerdetails.html | 4 +- bitbake/lib/toaster/toastergui/views.py | 66 ++++++++++++++++------ 2 files changed, 50 insertions(+), 20 deletions(-) diff --git a/bitbake/lib/toaster/toastergui/templates/layerdetails.html b/bitbake/lib/toaster/toastergui/templates/layerdetails.html index 0f0b2b4..f4215fc 100644 --- a/bitbake/lib/toaster/toastergui/templates/layerdetails.html +++ b/bitbake/lib/toaster/toastergui/templates/layerdetails.html @@ -22,7 +22,7 @@ </ul> {# If this is not an imported layer then hide the edit ui #} - {% if not layerversion.layer_source_id or layerversion.layer_source.sourcetype != layerversion.layer_source.TYPE_IMPORTED %} + {% if layerversion.layer_source != layer_source.TYPE_IMPORTED %} <style scoped> .glyphicon-edit { display:none; @@ -55,7 +55,7 @@ inCurrentPrj : false, {% endif %} layerdetailurl : "{% url 'layerdetails' project.id layerversion.id %}", - sourceId: {{layerversion.layer_source_id|json}}, + sourceId: {{layerversion.layer_source|json}}, } }; diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py index 2db68bd..fd55d16 100755 --- a/bitbake/lib/toaster/toastergui/views.py +++ b/bitbake/lib/toaster/toastergui/views.py @@ -1439,9 +1439,8 @@ if True: layers = [{"id": x.layercommit.pk, "orderid": x.pk, "name" : x.layercommit.layer.name, "vcs_url": x.layercommit.layer.vcs_url, "vcs_reference" : x.layercommit.get_vcs_reference(), "url": x.layercommit.layer.layer_index_url, "layerdetailurl": x.layercommit.get_detailspage_url(prj.pk), - # This branch name is actually the release "branch" : {"name" : x.layercommit.get_vcs_reference(), - "layersource" : x.layercommit.up_branch.layer_source.name if x.layercommit.up_branch != None else None} + "layersource" : x.layercommit.layer_source } } for x in prj.projectlayer_set.all().order_by("id")] context = { @@ -1657,10 +1656,7 @@ if True: # We need to know what release the current project is so that we # can set the imported layer's up_branch_id - prj_branch_name = Release.objects.get(pk=prj.release_id).branch_name - up_branch, branch_created = Branch.objects.get_or_create(name=prj_branch_name, layer_source_id=LayerSource.TYPE_IMPORTED) - layer_source = LayerSource.objects.get(sourcetype=LayerSource.TYPE_IMPORTED) try: layer, layer_created = Layer.objects.get_or_create(name=post_data['name']) except MultipleObjectsReturned: @@ -1668,7 +1664,6 @@ if True: if layer: if layer_created: - layer.layer_source = layer_source layer.vcs_url = post_data['vcs_url'] layer.up_date = timezone.now() layer.save() @@ -1679,12 +1674,24 @@ if True: if layer.vcs_url != post_data['vcs_url']: return HttpResponse(jsonfilter({"error": "hint-layer-exists-with-different-url" , "current_url" : layer.vcs_url, "current_id": layer.id }), content_type = "application/json") - - layer_version, version_created = Layer_Version.objects.get_or_create(layer_source=layer_source, layer=layer, project=prj, up_branch_id=up_branch.id,branch=post_data['git_ref'], commit=post_data['git_ref'], dirpath=post_data['dir_path']) + layer_version, version_created = \ + Layer_Version.objects.get_or_create( + layer_source=LayerSource.TYPE_IMPORTED, + layer=layer, project=prj, + release=prj.release, + branch=post_data['git_ref'], + commit=post_data['git_ref'], + dirpath=post_data['dir_path']) if layer_version: if not version_created: - return HttpResponse(jsonfilter({"error": "hint-layer-version-exists", "existing_layer_version": layer_version.id }), content_type = "application/json") + return HttpResponse(jsonfilter({"error": + "hint-layer-version-exists", + "existing_layer_version": + layer_version.id }), + content_type = "application/json") + + layer_version.layer_source = LayerSource.TYPE_IMPORTED layer_version.up_date = timezone.now() layer_version.save() @@ -2209,20 +2216,43 @@ if True: } return render(request, template, context) + # TODO merge with api pseudo api here is used for deps modal @_template_renderer('layerdetails.html') def layerdetails(request, pid, layerid): project = Project.objects.get(pk=pid) layer_version = Layer_Version.objects.get(pk=layerid) - context = {'project' : project, - 'layerversion' : layer_version, - 'layerdeps' : {"list": [{"id": dep.id, - "name": dep.layer.name, - "layerdetailurl": reverse('layerdetails', args=(pid, dep.pk)), - "vcs_url": dep.layer.vcs_url, - "vcs_reference": dep.get_vcs_reference()} \ - for dep in layer_version.get_alldeps(project.id)]}, - 'projectlayers': [player.layercommit.id for player in ProjectLayer.objects.filter(project=project)] + project_layers = ProjectLayer.objects.filter( + project=project).values_list("layercommit_id", + flat=True) + + # Temp hack - this is exactly why we don't want context = json api + # LayerSource is not serialisable by the objtojson serailiser so skip + # it from the response if it's being requested as any other format + # YOCTO #9519 + if "format" in request.GET: + layer_sources = 0 + else: + layer_sources = LayerSource + # end hack + + context = { + 'project': project, + 'layer_source': layer_sources, + 'layerversion': layer_version, + 'layerdeps': { + "list": [ + { + "id": dep.id, + "name": dep.layer.name, + "layerdetailurl": reverse('layerdetails', + args=(pid, dep.pk)), + "vcs_url": dep.layer.vcs_url, + "vcs_reference": dep.get_vcs_reference() + } + for dep in layer_version.get_alldeps(project.id)] + }, + 'projectlayers': list(project_layers) } return context -- 2.7.4 -- _______________________________________________ toaster mailing list [email protected] https://lists.yoctoproject.org/listinfo/toaster
