|
9 | 9 | from core.permissions import IsStaffOrReadOnly |
10 | 10 | from projects.filters import ProjectFilter |
11 | 11 | from projects.constants import VERBOSE_STEPS |
12 | | -from projects.helpers import get_recommended_users |
| 12 | +from projects.helpers import get_recommended_users, check_related_fields_update |
13 | 13 | from projects.models import Project, Achievement |
14 | 14 | from projects.permissions import ( |
15 | 15 | IsProjectLeaderOrReadOnlyForNonDrafts, |
@@ -91,23 +91,11 @@ def retrieve(self, request, *args, **kwargs): |
91 | 91 | return Response(serializer.data) |
92 | 92 |
|
93 | 93 | def put(self, request, pk, **kwargs): |
94 | | - # bootleg version of updating achievements via project |
95 | | - if request.data.get("achievements") is not None: |
96 | | - achievements = request.data.get("achievements") |
97 | | - # delete all old achievements |
98 | | - Achievement.objects.filter(project_id=pk).delete() |
99 | | - # create new achievements |
100 | | - Achievement.objects.bulk_create( |
101 | | - [ |
102 | | - Achievement( |
103 | | - project_id=pk, |
104 | | - title=achievement.get("title"), |
105 | | - status=achievement.get("status"), |
106 | | - ) |
107 | | - for achievement in achievements |
108 | | - ] |
109 | | - ) |
| 94 | + check_related_fields_update(request.data, pk) |
| 95 | + return super(ProjectDetail, self).put(request, pk) |
110 | 96 |
|
| 97 | + def patch(self, request, pk, **kwargs): |
| 98 | + check_related_fields_update(request.data, pk) |
111 | 99 | return super(ProjectDetail, self).put(request, pk) |
112 | 100 |
|
113 | 101 |
|
|
0 commit comments