11from django .contrib .auth .models import User
2- from django .db .models import Sum
32from rest_framework import serializers
4- from rest_framework .exceptions import APIException
53
6- from config .job_manager import spiderdata_db_client
7- from core .models import Permission , Project , SpiderJob , UsageRecord
4+ from core .models import DataStatus , Permission , Project , UsageRecord
85
96
107class UserDetailSerializer (serializers .ModelSerializer ):
@@ -39,7 +36,15 @@ class ProjectSerializer(serializers.ModelSerializer):
3936
4037 class Meta :
4138 model = Project
42- fields = ("pid" , "name" , "category" , "container_image" , "users" )
39+ fields = (
40+ "pid" ,
41+ "name" ,
42+ "category" ,
43+ "container_image" ,
44+ "users" ,
45+ "data_status" ,
46+ "data_expiry_days" ,
47+ )
4348
4449
4550class UsageRecordSerializer (serializers .ModelSerializer ):
@@ -97,7 +102,6 @@ class ProjectUpdateSerializer(serializers.ModelSerializer):
97102 ("DEVELOPER" , "Developer" ),
98103 ("VIEWER" , "Viewer" ),
99104 ]
100-
101105 pid = serializers .UUIDField (
102106 read_only = True , help_text = "A UUID identifying this project."
103107 )
@@ -117,7 +121,27 @@ class ProjectUpdateSerializer(serializers.ModelSerializer):
117121 required = False ,
118122 help_text = "New permission." ,
119123 )
124+ data_status = serializers .ChoiceField (
125+ write_only = True ,
126+ choices = DataStatus .HIGH_LEVEL_OPTIONS ,
127+ required = False ,
128+ help_text = "New data status." ,
129+ )
130+ data_expiry_days = serializers .IntegerField (
131+ write_only = True ,
132+ required = False ,
133+ help_text = "New data expiry days." ,
134+ )
120135
121136 class Meta :
122137 model = Project
123- fields = ("pid" , "name" , "users" , "email" , "action" , "permission" )
138+ fields = (
139+ "pid" ,
140+ "name" ,
141+ "users" ,
142+ "email" ,
143+ "action" ,
144+ "permission" ,
145+ "data_status" ,
146+ "data_expiry_days" ,
147+ )
0 commit comments