24 lines
839 B
Python
24 lines
839 B
Python
from django.conf import settings
|
|
from django.contrib.auth.models import Group
|
|
from django.db import models
|
|
|
|
|
|
class CoursePurchase(models.Model):
|
|
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
|
|
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)
|