mirror of
git://git.yoctoproject.org/layerindex-web.git
synced 2025-07-19 20:59:01 +02:00
API: add sources, patches, dependencies to recipes
We're tracking these items for each recipe, so they should be accessible via the API as well. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
This commit is contained in:
parent
9ce9f7d2d1
commit
684a06a383
|
@ -1,4 +1,4 @@
|
||||||
from layerindex.models import Branch, LayerItem, LayerMaintainer, YPCompatibleVersion, LayerNote, LayerBranch, LayerDependency, Recipe, Machine, Distro, BBClass
|
from layerindex.models import Branch, LayerItem, LayerMaintainer, YPCompatibleVersion, LayerNote, LayerBranch, LayerDependency, Recipe, Machine, Distro, BBClass, Source, Patch, PackageConfig, StaticBuildDep, DynamicBuildDep, RecipeFileDependency
|
||||||
from rest_framework import viewsets, serializers
|
from rest_framework import viewsets, serializers
|
||||||
from layerindex.querysethelper import params_to_queryset, get_search_tuple
|
from layerindex.querysethelper import params_to_queryset, get_search_tuple
|
||||||
|
|
||||||
|
@ -84,11 +84,65 @@ class LayerNoteViewSet(ParametricSearchableModelViewSet):
|
||||||
queryset = LayerNote.objects.filter(layer__status__in=['P', 'X'])
|
queryset = LayerNote.objects.filter(layer__status__in=['P', 'X'])
|
||||||
serializer_class = LayerNoteSerializer
|
serializer_class = LayerNoteSerializer
|
||||||
|
|
||||||
|
class SourceSerializer(DynamicFieldsModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = Source
|
||||||
|
fields = '__all__'
|
||||||
|
|
||||||
|
class PatchSerializer(DynamicFieldsModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = Patch
|
||||||
|
fields = '__all__'
|
||||||
|
|
||||||
|
class PackageConfigSerializer(DynamicFieldsModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = PackageConfig
|
||||||
|
fields = '__all__'
|
||||||
|
|
||||||
|
builddeps = serializers.SerializerMethodField()
|
||||||
|
|
||||||
|
def get_builddeps(self, package_config):
|
||||||
|
return package_config.dynamicbuilddep_set.values_list('name', flat=True)
|
||||||
|
|
||||||
|
class RecipeFileDependencySerializer(DynamicFieldsModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = RecipeFileDependency
|
||||||
|
fields = '__all__'
|
||||||
|
|
||||||
class RecipeSerializer(serializers.ModelSerializer):
|
class RecipeSerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Recipe
|
model = Recipe
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
|
||||||
|
sources = serializers.SerializerMethodField()
|
||||||
|
patches = serializers.SerializerMethodField()
|
||||||
|
package_configs = serializers.SerializerMethodField()
|
||||||
|
staticbuilddeps = serializers.SerializerMethodField()
|
||||||
|
filedeps = serializers.SerializerMethodField()
|
||||||
|
|
||||||
|
def get_sources(self, recipe):
|
||||||
|
qs = recipe.source_set.all()
|
||||||
|
serializer = SourceSerializer(instance=qs, many=True, read_only=True, fields=('url', 'sha256sum'))
|
||||||
|
return serializer.data
|
||||||
|
|
||||||
|
def get_patches(self, recipe):
|
||||||
|
qs = recipe.patch_set.all()
|
||||||
|
serializer = PatchSerializer(instance=qs, many=True, read_only=True, fields=('path', 'src_path', 'status', 'status_extra', 'apply_order', 'applied', 'striplevel'))
|
||||||
|
return serializer.data
|
||||||
|
|
||||||
|
def get_package_configs(self, recipe):
|
||||||
|
qs = recipe.packageconfig_set.all()
|
||||||
|
serializer = PackageConfigSerializer(instance=qs, many=True, read_only=True, fields=('feature', 'with_option', 'without_option', 'builddeps'))
|
||||||
|
return serializer.data
|
||||||
|
|
||||||
|
def get_staticbuilddeps(self, recipe):
|
||||||
|
return recipe.staticbuilddep_set.values_list('name', flat=True)
|
||||||
|
|
||||||
|
def get_filedeps(self, recipe):
|
||||||
|
qs = recipe.recipefiledependency_set.all()
|
||||||
|
serializer = RecipeFileDependencySerializer(instance=qs, many=True, read_only=True, fields=('layerbranch', 'path'))
|
||||||
|
return serializer.data
|
||||||
|
|
||||||
class RecipeViewSet(ParametricSearchableModelViewSet):
|
class RecipeViewSet(ParametricSearchableModelViewSet):
|
||||||
queryset = Recipe.objects.all()
|
queryset = Recipe.objects.all()
|
||||||
serializer_class = RecipeSerializer
|
serializer_class = RecipeSerializer
|
||||||
|
|
Loading…
Reference in New Issue
Block a user