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.conf import settings
|
||||||
|
from django.contrib.auth.models import Group
|
||||||
|
from django.db import models
|
||||||
|
|
||||||
|
|
||||||
class CoursePurchase(models.Model):
|
class CoursePurchase(models.Model):
|
||||||
@@ -7,3 +8,16 @@ class CoursePurchase(models.Model):
|
|||||||
course = models.ForeignKey("home.CoursePage", on_delete=models.CASCADE)
|
course = models.ForeignKey("home.CoursePage", on_delete=models.CASCADE)
|
||||||
purchased_at = models.DateTimeField(auto_now_add=True)
|
purchased_at = models.DateTimeField(auto_now_add=True)
|
||||||
refunded = models.BooleanField(default=False)
|
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