mirror of
https://github.com/ansible/awx.git
synced 2026-01-18 05:01:19 -03:30
Merge pull request #199 from chrismeyersfsu/feature-fact_options
add list of modules to fact OPTIONS endpoints
This commit is contained in:
commit
66d097c7fa
@ -9,7 +9,7 @@ import logging
|
||||
from dateutil import rrule
|
||||
from ast import literal_eval
|
||||
|
||||
from rest_framework_mongoengine.serializers import MongoEngineModelSerializer
|
||||
from rest_framework_mongoengine.serializers import MongoEngineModelSerializer, MongoEngineModelSerializerOptions
|
||||
|
||||
# PyYAML
|
||||
import yaml
|
||||
@ -403,6 +403,23 @@ class BaseSerializer(serializers.ModelSerializer):
|
||||
return fields
|
||||
|
||||
|
||||
class BaseFactSerializerOptions(MongoEngineModelSerializerOptions):
|
||||
def __init__(self, meta):
|
||||
super(BaseFactSerializerOptions, self).__init__(meta)
|
||||
|
||||
|
||||
class BaseFactSerializer(MongoEngineModelSerializer):
|
||||
_options_class = BaseFactSerializerOptions
|
||||
__metaclass__ = BaseSerializerMetaclass
|
||||
|
||||
def get_fields(self):
|
||||
ret = super(BaseFactSerializer, self).get_fields()
|
||||
if 'module' in ret:
|
||||
choices = [(o, o) for o in FactVersion.objects.all().only('module').distinct('module')]
|
||||
ret['module'] = ChoiceField(source='module', choices=choices, read_only=True, required=False)
|
||||
return ret
|
||||
|
||||
|
||||
class UnifiedJobTemplateSerializer(BaseSerializer):
|
||||
|
||||
class Meta:
|
||||
@ -2052,7 +2069,7 @@ class AuthTokenSerializer(serializers.Serializer):
|
||||
raise serializers.ValidationError('Must include "username" and "password"')
|
||||
|
||||
|
||||
class FactVersionSerializer(MongoEngineModelSerializer):
|
||||
class FactVersionSerializer(BaseFactSerializer):
|
||||
related = serializers.SerializerMethodField('get_related')
|
||||
|
||||
class Meta:
|
||||
@ -2071,7 +2088,8 @@ class FactVersionSerializer(MongoEngineModelSerializer):
|
||||
))
|
||||
return res
|
||||
|
||||
class FactSerializer(MongoEngineModelSerializer):
|
||||
|
||||
class FactSerializer(BaseFactSerializer):
|
||||
|
||||
class Meta:
|
||||
model = Fact
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user