|
27 | 27 | from apps.organizations.models import Organization |
28 | 28 | from apps.projects.models import Project |
29 | 29 | from apps.skills.models import Skill |
30 | | -from apps.skills.serializers import SkillLightSerializer, TagSerializer |
| 30 | +from apps.skills.serializers import SkillLightSerializer, TagRelatedField, TagSerializer |
31 | 31 | from services.crisalid.serializers import ResearcherSerializerLight |
32 | 32 | from services.translator.serializers import AutoTranslatedModelSerializer |
33 | 33 |
|
@@ -472,7 +472,12 @@ class PeopleGroupSerializer( |
472 | 472 | featured_projects = serializers.PrimaryKeyRelatedField( |
473 | 473 | many=True, write_only=True, required=False, queryset=Project.objects.all() |
474 | 474 | ) |
475 | | - tags = TagSerializer(many=True) |
| 475 | + tags = TagRelatedField(many=True, required=False) |
| 476 | + |
| 477 | + sdgs = serializers.ListField( |
| 478 | + child=serializers.IntegerField(min_value=1, max_value=17), |
| 479 | + required=False, |
| 480 | + ) |
476 | 481 | location = PeopleGroupLocationSerializer() |
477 | 482 |
|
478 | 483 | def get_hierarchy(self, obj: PeopleGroup) -> list[dict[str, str | int]]: |
@@ -535,19 +540,28 @@ def validate_parent(self, value): |
535 | 540 | def create(self, validated_data): |
536 | 541 | team = validated_data.pop("team", {}) |
537 | 542 | featured_projects = validated_data.pop("featured_projects", []) |
| 543 | + tags = validated_data.pop("tags", []) |
| 544 | + |
538 | 545 | people_group = super(PeopleGroupSerializer, self).create(validated_data) |
539 | 546 | PeopleGroupAddTeamMembersSerializer().create( |
540 | 547 | {"people_group": people_group, **team} |
541 | 548 | ) |
542 | 549 | PeopleGroupAddFeaturedProjectsSerializer().create( |
543 | 550 | {"people_group": people_group, "featured_projects": featured_projects} |
544 | 551 | ) |
| 552 | + |
| 553 | + people_group.tags.set(tags) |
545 | 554 | return people_group |
546 | 555 |
|
547 | 556 | def update(self, instance, validated_data): |
548 | 557 | validated_data.pop("team", {}) |
549 | 558 | validated_data.pop("featured_projects", []) |
550 | | - return super(PeopleGroupSerializer, self).update(instance, validated_data) |
| 559 | + tags = validated_data.pop("tags", []) |
| 560 | + people_group = super(PeopleGroupSerializer, self).update( |
| 561 | + instance, validated_data |
| 562 | + ) |
| 563 | + people_group.tags.set(tags) |
| 564 | + return people_group |
551 | 565 |
|
552 | 566 | def save(self, **kwargs): |
553 | 567 | return super().save(**kwargs) |
|
0 commit comments