64 lines
2.0 KiB
Python
64 lines
2.0 KiB
Python
from rest_framework import serializers
|
|
from django.contrib.auth.models import User
|
|
from .models import Brief, TextVariant, Test, Segment, Assignment, ResultEntry, MetricsSnapshot, OptimizationPolicy
|
|
|
|
class RegisterSerializer(serializers.ModelSerializer):
|
|
password = serializers.CharField(write_only=True, min_length=6)
|
|
class Meta:
|
|
model = User
|
|
fields = ("username","password","email")
|
|
def create(self, validated):
|
|
user = User(username=validated["username"], email=validated.get("email",""))
|
|
user.set_password(validated["password"])
|
|
user.save()
|
|
return user
|
|
|
|
class BriefSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Brief
|
|
fields = "__all__"
|
|
read_only_fields = ("id","owner","created_at")
|
|
|
|
class TextVariantSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = TextVariant
|
|
fields = "__all__"
|
|
read_only_fields = ("id","created_at")
|
|
|
|
class TestSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Test
|
|
fields = "__all__"
|
|
read_only_fields = ("id","owner","created_at")
|
|
|
|
class SegmentSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Segment
|
|
fields = "__all__"
|
|
read_only_fields = ("id",)
|
|
|
|
class AssignmentSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Assignment
|
|
fields = "__all__"
|
|
read_only_fields = ("id",)
|
|
|
|
class ResultEntrySerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = ResultEntry
|
|
fields = "__all__"
|
|
read_only_fields = ("id","created_at")
|
|
|
|
class MetricsSnapshotSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = MetricsSnapshot
|
|
fields = "__all__"
|
|
read_only_fields = ("id","created_at")
|
|
|
|
|
|
class OptimizationPolicySerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = OptimizationPolicy
|
|
fields = "__all__"
|
|
read_only_fields = ("id","test","updated_at")
|