From 7184bb602972090a67d04e732bd6517a3d5f575f Mon Sep 17 00:00:00 2001 From: rosiemaguire Date: Fri, 1 Sep 2023 20:39:02 +1000 Subject: [PATCH 1/2] Issue 1: Project owner only able to update open/closed and deleted field if project has been set to closed --- crowdfunding/projects/serializers.py | 29 ++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/crowdfunding/projects/serializers.py b/crowdfunding/projects/serializers.py index a8b35db..3e56284 100644 --- a/crowdfunding/projects/serializers.py +++ b/crowdfunding/projects/serializers.py @@ -17,18 +17,23 @@ class ProjectDetailSerializer(ProjectSerializer): pledges = PledgeSerializer(many=True) def update(self,instance,validated_data): - instance.title = validated_data.get('title', instance.title) - instance.description = validated_data.get('description', instance.description) - instance.goal = validated_data.get('goal', instance.goal) - instance.image = validated_data.get('image', instance.image) - instance.is_open = validated_data.get('is_open', instance.is_open) - instance.is_deleted = validated_data.get('is_deleted', instance.is_deleted) - if instance.is_deleted == True: - instance.is_open = False - for pledge in instance.pledges.all(): - pledge.is_deleted = True - pledge.save() - instance.save() + if instance.is_open: + instance.title = validated_data.get('title', instance.title) + instance.description = validated_data.get('description', instance.description) + instance.goal = validated_data.get('goal', instance.goal) + instance.image = validated_data.get('image', instance.image) + instance.is_open = validated_data.get('is_open', instance.is_open) + instance.is_deleted = validated_data.get('is_deleted', instance.is_deleted) + if instance.is_deleted == True: + instance.is_open = False + for pledge in instance.pledges.all(): + pledge.is_deleted = True + pledge.save() + instance.save() + else: + instance.is_open = validated_data.get('is_open',instance.is_open) + instance.is_deleted = validated_data.get('is_deleted', instance.is_deleted) + instance.save() return instance class PledgeDetailSerializer(PledgeSerializer): From f237e8c01d3d92cf516543e422956e756605ac71 Mon Sep 17 00:00:00 2001 From: rosiemaguire Date: Fri, 1 Sep 2023 20:43:48 +1000 Subject: [PATCH 2/2] Issue 1: Project owner only able to update open/closed and deleted field if project has been set to closed --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 72605c5..251f1da 100644 --- a/README.md +++ b/README.md @@ -107,7 +107,7 @@ This project is the back end of a crowdfunding website which has been created to - [X] Pledge put request does not allow any modification of which project it is attached to - [X] Pledges cannot be created or modified for projects that are set to closed -- [ ] Project owner only able to update open/closed field if project has been set to closed +- [X] Project owner only able to update open/closed and deleted field if project has been set to closed - [ ] Validation to ensure at least one field is modified in PUT Request (rather than just updating the last_modified date because PUT request fields are identical to data in table) - [X] Users able to "soft delete" projects and pledges they own (e.g. set deleted field to 1 which hides in front end) own pledges/projects - [ ] Put restrictions around user creation