feat(purchase/models.py): handle mock refunds
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
from django.db import models
|
||||
from django.conf import settings
|
||||
from django.contrib.auth.models import Group
|
||||
from django.db import models
|
||||
|
||||
|
||||
class CoursePurchase(models.Model):
|
||||
@@ -7,3 +8,16 @@ class CoursePurchase(models.Model):
|
||||
course = models.ForeignKey("home.CoursePage", on_delete=models.CASCADE)
|
||||
purchased_at = models.DateTimeField(auto_now_add=True)
|
||||
refunded = models.BooleanField(default=False)
|
||||
|
||||
def mock_refund(self):
|
||||
self.refunded = True
|
||||
self.save()
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
super().save(*args, **kwargs)
|
||||
group_name = f"course_{self.course.id}_access"
|
||||
|
||||
group, _ = Group.objects.get_or_create(name=group_name)
|
||||
if self.refunded:
|
||||
print(f"Removing user {self.user} from group {group_name} due to refund")
|
||||
self.user.groups.remove(group)
|
||||
|
||||
Reference in New Issue
Block a user