Skip to content

Commit

Permalink
add is_deleted field to Program and FSM models
Browse files Browse the repository at this point in the history
  • Loading branch information
AmooHashem committed May 27, 2024
1 parent c8b3a46 commit 1c023d0
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 2 deletions.
23 changes: 23 additions & 0 deletions apps/fsm/migrations/0133_fsm_is_deleted_program_is_deleted.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Generated by Django 4.1.3 on 2024-05-26 12:37

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('fsm', '0132_delete_playerworkshop'),
]

operations = [
migrations.AddField(
model_name='fsm',
name='is_deleted',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='program',
name='is_deleted',
field=models.BooleanField(default=False),
),
]
2 changes: 2 additions & 0 deletions apps/fsm/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ class ProgramType(models.TextChoices):
program_contact_info = models.OneToOneField(
'ProgramContactInfo', on_delete=models.SET_NULL, related_name='program', blank=True, null=True)
is_visible = models.BooleanField(default=True)
is_deleted = models.BooleanField(default=False)

def __str__(self):
return self.name
Expand Down Expand Up @@ -242,6 +243,7 @@ class FSMPType(models.TextChoices):
lock = models.CharField(max_length=10, null=True, blank=True)
team_size = models.IntegerField(default=3)
order_in_program = models.IntegerField(default=0)
is_deleted = models.BooleanField(default=False)

objects = FSMManager()

Expand Down
9 changes: 8 additions & 1 deletion apps/fsm/views/fsm_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

class FSMViewSet(viewsets.ModelViewSet):
permission_classes = [IsAuthenticated]
queryset = FSM.objects.all()
queryset = FSM.objects.filter(is_deleted=False)
serializer_class = FSMSerializer
my_tags = ['fsm']
filterset_fields = ['website', 'program']
Expand Down Expand Up @@ -211,3 +211,10 @@ def activate(self, request, pk=None):
# @method_decorator(cache_page(60 * 1, key_prefix="fsm"))
def list(self, request, *args, **kwargs):
return super().list(self, request, *args, **kwargs)

@action(detail=True, methods=['get'])
def soft_remove_fsm(self, request, pk=None):
fsm = self.get_object()
fsm.is_deleted = True
fsm.save()
return Response()
9 changes: 8 additions & 1 deletion apps/fsm/views/program_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

class ProgramViewSet(ModelViewSet):
serializer_class = ProgramSerializer
queryset = Program.objects.all()
queryset = Program.objects.filter(is_deleted=False)
my_tags = ['program']
filterset_fields = ['website', 'is_private']

Expand Down Expand Up @@ -64,3 +64,10 @@ def remove_admin(self, request, pk=None):
if removed_admin in program.admins.all():
program.admins.remove(removed_admin)
return Response()

@action(detail=True, methods=['get'])
def soft_remove_program(self, request, pk=None):
program = self.get_object()
program.is_deleted = True
program.save()
return Response()

0 comments on commit 1c023d0

Please sign in to comment.