Assign duplicate projects to user that duplicated them

pull/1308/head
Piero Toffanin 2023-03-22 11:43:14 -04:00
rodzic 7125876d45
commit 2ceb6159d9
2 zmienionych plików z 4 dodań i 2 usunięć

Wyświetl plik

@ -118,7 +118,7 @@ class ProjectViewSet(viewsets.ModelViewSet):
"""
project = get_and_check_project(request, pk, ('change_project', ))
new_project = project.duplicate()
new_project = project.duplicate(new_owner=request.user)
if new_project:
return Response({'success': True, 'project': ProjectSerializer(new_project).data}, status=status.HTTP_200_OK)
else:

Wyświetl plik

@ -54,13 +54,15 @@ class Project(models.Model):
).filter(Q(orthophoto_extent__isnull=False) | Q(dsm_extent__isnull=False) | Q(dtm_extent__isnull=False))
.only('id', 'project_id')]
def duplicate(self):
def duplicate(self, new_owner=None):
try:
with transaction.atomic():
project = Project.objects.get(pk=self.pk)
project.pk = None
project.name = gettext('Copy of %(task)s') % {'task': self.name}
project.created_at = timezone.now()
if new_owner is not None:
project.owner = new_owner
project.save()
project.refresh_from_db()