40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
from rest_framework import serializers
|
|
|
|
from apps.reports.models import ReportExportJob
|
|
from apps.reports.services.aggregation import ALLOWED_PERIODS
|
|
|
|
|
|
class ReportExportCreateSerializer(serializers.Serializer):
|
|
workspace = serializers.UUIDField()
|
|
period = serializers.ChoiceField(choices=sorted(ALLOWED_PERIODS))
|
|
from_date = serializers.DateField(required=False, allow_null=True)
|
|
to_date = serializers.DateField(required=False, allow_null=True)
|
|
user = serializers.UUIDField(required=False, allow_null=True)
|
|
client = serializers.UUIDField(required=False, allow_null=True)
|
|
project = serializers.UUIDField(required=False, allow_null=True)
|
|
tags = serializers.ListField(
|
|
child=serializers.UUIDField(),
|
|
required=False,
|
|
allow_empty=True,
|
|
)
|
|
language = serializers.ChoiceField(choices=("en", "fa"), required=False, default="en")
|
|
export_type = serializers.ChoiceField(choices=ReportExportJob.ExportType.choices)
|
|
|
|
|
|
class ReportExportJobSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = ReportExportJob
|
|
fields = (
|
|
"id",
|
|
"workspace",
|
|
"export_type",
|
|
"status",
|
|
"filters",
|
|
"file_name",
|
|
"error_message",
|
|
"expires_at",
|
|
"completed_at",
|
|
"created_at",
|
|
)
|
|
read_only_fields = fields
|