Skip to content

Commit 5496535

Browse files
committed
Добавлены поля is_done в сериализатор UserTrajectorySerializer при отображении skills
1 parent fa94ae4 commit 5496535

2 files changed

Lines changed: 22 additions & 5 deletions

File tree

apps/courses/serializers.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@ class TaskSerializer(serializers.Serializer):
1919
skill_name = serializers.CharField(allow_null=True)
2020
skill_preview = serializers.CharField(allow_null=True)
2121
skill_point_logo = serializers.CharField(allow_null=True)
22-
count = serializers.IntegerField(help_text="количество вопросов и информационных слайдов у задания")
22+
count = serializers.IntegerField(
23+
help_text="количество вопросов и информационных слайдов у задания"
24+
)
2325
free_access = serializers.BooleanField(allow_null=True)
2426
step_data = StepSerializer(many=True)
2527

@@ -99,7 +101,9 @@ class Meta:
99101
dataclass = PopupSerializerData
100102

101103

102-
IntegerListSerializer = serializers.ListSerializer(child=serializers.IntegerField(), allow_empty=False)
104+
IntegerListSerializer = serializers.ListSerializer(
105+
child=serializers.IntegerField(), allow_empty=False
106+
)
103107

104108

105109
class SkillDetailsSerializer(serializers.ModelSerializer):

apps/trajectories/serializers.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,17 +177,30 @@ def get_skills_breakdown(self, obj):
177177
def get_available_skills(self, obj):
178178
breakdown = self.get_skills_breakdown(obj)
179179
return [
180-
{**SkillDetailsSerializer(item["skill"]).data, "overdue": item["overdue"]}
180+
{
181+
**SkillDetailsSerializer(item["skill"]).data,
182+
"overdue": item["overdue"],
183+
"is_done": False,
184+
}
181185
for item in breakdown["available_skills"]
182186
]
183187

184188
def get_unavailable_skills(self, obj):
185189
breakdown = self.get_skills_breakdown(obj)
186-
return SkillDetailsSerializer(breakdown["unavailable_skills"], many=True).data
190+
return [
191+
{
192+
**SkillDetailsSerializer(skill).data,
193+
"is_done": False,
194+
}
195+
for skill in breakdown["unavailable_skills"]
196+
]
187197

188198
def get_completed_skills(self, obj):
189199
breakdown = self.get_skills_breakdown(obj)
190-
return SkillDetailsSerializer(breakdown["completed_skills"], many=True).data
200+
return [
201+
{**SkillDetailsSerializer(skill).data, "is_done": True}
202+
for skill in breakdown["completed_skills"]
203+
]
191204

192205
def get_end_date(self, obj):
193206
months_count = obj.trajectory.months.count()

0 commit comments

Comments
 (0)