Skip to content

Commit

Permalink
Use extra_kwargs instead of overriding serializer fields to add requi…
Browse files Browse the repository at this point in the history
…red=True (#1244)
  • Loading branch information
jochenklar committed Feb 22, 2025
1 parent 85e99c0 commit d85a8a0
Show file tree
Hide file tree
Showing 11 changed files with 33 additions and 11 deletions.
4 changes: 3 additions & 1 deletion rdmo/conditions/serializers/v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ class ConditionSerializer(ElementModelSerializerMixin, ReadOnlyObjectPermissionS
serializers.ModelSerializer):

model = serializers.SerializerMethodField()
uri_path = serializers.CharField(required=True)

source = serializers.PrimaryKeyRelatedField(queryset=Attribute.objects.all(), required=True)
optionsets = serializers.PrimaryKeyRelatedField(queryset=OptionSet.objects.all(), required=False, many=True)
Expand Down Expand Up @@ -47,6 +46,9 @@ class Meta:
'tasks',
'read_only'
)
extra_kwargs = {
'key': {'required': True}
}
validators = (
ConditionUniqueURIValidator(),
ConditionLockedValidator()
Expand Down
4 changes: 3 additions & 1 deletion rdmo/domain/serializers/v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ class Meta:

class AttributeSerializer(BaseAttributeSerializer):

key = serializers.SlugField(required=True)
parent = serializers.PrimaryKeyRelatedField(queryset=Attribute.objects.all(), default=None, allow_null=True)

conditions = serializers.PrimaryKeyRelatedField(queryset=Condition.objects.all(), required=False, many=True)
Expand All @@ -61,6 +60,9 @@ class Meta(BaseAttributeSerializer.Meta):
'values_count',
'projects_count'
)
extra_kwargs = {
'key': {'required': True}
}
validators = (
AttributeUniqueURIValidator(),
AttributeParentValidator(),
Expand Down
4 changes: 3 additions & 1 deletion rdmo/options/serializers/v1/option.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ class OptionSerializer(ThroughModelSerializerMixin, TranslationSerializerMixin,
markdown_fields = ('text', 'help')

model = serializers.SerializerMethodField()
uri_path = serializers.CharField(required=True)

optionsets = serializers.PrimaryKeyRelatedField(queryset=OptionSet.objects.all(), required=False, many=True)
conditions = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
Expand Down Expand Up @@ -63,6 +62,9 @@ class Meta:
parent_fields = (
('optionsets', 'optionset', 'option', 'optionset_options'),
)
extra_kwargs = {
'uri_path': {'required': True}
}
validators = (
OptionUniqueURIValidator(),
OptionLockedValidator()
Expand Down
4 changes: 3 additions & 1 deletion rdmo/options/serializers/v1/optionset.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ class OptionSetSerializer(ThroughModelSerializerMixin, ElementModelSerializerMix
ReadOnlyObjectPermissionSerializerMixin, serializers.ModelSerializer):

model = serializers.SerializerMethodField()
uri_path = serializers.CharField(required=True)

options = OptionSetOptionSerializer(source='optionset_options', read_only=False, required=False, many=True)
questions = serializers.PrimaryKeyRelatedField(queryset=Question.objects.all(), required=False, many=True)
Expand Down Expand Up @@ -58,6 +57,9 @@ class Meta:
through_fields = (
('options', 'optionset', 'option', 'optionset_options'),
)
extra_kwargs = {
'uri_path': {'required': True}
}
validators = (
OptionSetUniqueURIValidator(),
OptionSetLockedValidator()
Expand Down
4 changes: 3 additions & 1 deletion rdmo/questions/serializers/v1/catalog.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ class CatalogSerializer(ThroughModelSerializerMixin, TranslationSerializerMixin,
markdown_fields = ('title', 'help')

model = serializers.SerializerMethodField()
uri_path = serializers.CharField(required=True)

sections = CatalogSectionSerializer(source='catalog_sections', read_only=False, required=False, many=True)

Expand Down Expand Up @@ -70,6 +69,9 @@ class Meta:
through_fields = (
('sections', 'catalog', 'section', 'catalog_sections'),
)
extra_kwargs = {
'uri_path': {'required': True}
}
validators = (
CatalogUniqueURIValidator(),
CatalogLockedValidator(),
Expand Down
4 changes: 3 additions & 1 deletion rdmo/questions/serializers/v1/page.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ class PageSerializer(ThroughModelSerializerMixin, TranslationSerializerMixin,
markdown_fields = ('title', 'help')

model = serializers.SerializerMethodField()
uri_path = serializers.CharField(required=True)

sections = serializers.PrimaryKeyRelatedField(queryset=Section.objects.all(), required=False, many=True)
questionsets = PageQuestionSetSerializer(source='page_questionsets', read_only=False, required=False, many=True)
Expand Down Expand Up @@ -94,6 +93,9 @@ class Meta:
('questionsets', 'page', 'questionset', 'page_questionsets'),
('questions', 'page', 'question', 'page_questions')
)
extra_kwargs = {
'uri_path': {'required': True}
}
validators = (
PageUniqueURIValidator(),
PageLockedValidator()
Expand Down
4 changes: 3 additions & 1 deletion rdmo/questions/serializers/v1/question.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ class QuestionSerializer(ThroughModelSerializerMixin, TranslationSerializerMixin
markdown_fields = ('text', 'help')

model = serializers.SerializerMethodField()
uri_path = serializers.CharField(required=True)

pages = serializers.PrimaryKeyRelatedField(queryset=Page.objects.all(), required=False, many=True)
questionsets = serializers.PrimaryKeyRelatedField(queryset=QuestionSet.objects.all(), required=False, many=True)
Expand Down Expand Up @@ -83,6 +82,9 @@ class Meta:
('pages', 'page', 'question', 'page_questions'),
('questionsets', 'questionset', 'question', 'questionset_questions')
)
extra_kwargs = {
'uri_path': {'required': True}
}
validators = (
QuestionUniqueURIValidator(),
QuestionLockedValidator()
Expand Down
4 changes: 3 additions & 1 deletion rdmo/questions/serializers/v1/questionset.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ class QuestionSetSerializer(ThroughModelSerializerMixin, TranslationSerializerMi
markdown_fields = ('title', 'help')

model = serializers.SerializerMethodField()
uri_path = serializers.CharField(required=True)

pages = serializers.PrimaryKeyRelatedField(queryset=Page.objects.all(), required=False, many=True)
parents = serializers.PrimaryKeyRelatedField(queryset=QuestionSet.objects.all(), required=False, many=True)
Expand Down Expand Up @@ -96,6 +95,9 @@ class Meta:
('questionsets', 'parent', 'questionset', 'questionset_questionsets'),
('questions', 'questionset', 'question', 'questionset_questions')
)
extra_kwargs = {
'uri_path': {'required': True}
}
validators = (
QuestionSetUniqueURIValidator(),
QuestionSetQuestionSetValidator(),
Expand Down
4 changes: 3 additions & 1 deletion rdmo/questions/serializers/v1/section.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ class SectionSerializer(ThroughModelSerializerMixin, TranslationSerializerMixin,
markdown_fields = ('title', 'help')

model = serializers.SerializerMethodField()
uri_path = serializers.CharField(required=True)

catalogs = serializers.PrimaryKeyRelatedField(queryset=Catalog.objects.all(), required=False, many=True)
pages = SectionPageSerializer(source='section_pages', read_only=False, required=False, many=True)
Expand Down Expand Up @@ -68,6 +67,9 @@ class Meta:
through_fields = (
('pages', 'section', 'page', 'section_pages'),
)
extra_kwargs = {
'uri_path': {'required': True}
}
validators = (
SectionUniqueURIValidator(),
SectionLockedValidator()
Expand Down
4 changes: 3 additions & 1 deletion rdmo/tasks/serializers/v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ class TaskSerializer(TranslationSerializerMixin, ElementModelSerializerMixin,
markdown_fields = ('title', 'text')

model = serializers.SerializerMethodField()
uri_path = serializers.CharField(required=True)

warning = serializers.SerializerMethodField()
read_only = serializers.SerializerMethodField()
Expand Down Expand Up @@ -60,6 +59,9 @@ class Meta:
'title',
'text'
)
extra_kwargs = {
'uri_path': {'required': True}
}
validators = (
TaskUniqueURIValidator(),
TaskLockedValidator()
Expand Down
4 changes: 3 additions & 1 deletion rdmo/views/serializers/v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ class ViewSerializer(TranslationSerializerMixin, ElementModelSerializerMixin,
markdown_fields = ('title', 'help')

model = serializers.SerializerMethodField()
uri_path = serializers.CharField(required=True)

warning = serializers.SerializerMethodField()
read_only = serializers.SerializerMethodField()
Expand Down Expand Up @@ -66,6 +65,9 @@ class Meta:
'title',
'help'
)
extra_kwargs = {
'uri_path': {'required': True}
}
validators = (
ViewUniqueURIValidator(),
ViewLockedValidator()
Expand Down

0 comments on commit d85a8a0

Please sign in to comment.