mirror of
git://git.yoctoproject.org/layerindex-web.git
synced 2025-07-19 12:29:02 +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 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'])
|
||||
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 Meta:
|
||||
model = Recipe
|
||||
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):
|
||||
queryset = Recipe.objects.all()
|
||||
serializer_class = RecipeSerializer
|
||||
|
|
Loading…
Reference in New Issue
Block a user