email.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. from django.conf import settings
  2. from glitchtip.email import DetailEmail
  3. from .models import Organization, OrganizationUser
  4. class MetQuotaEmail(DetailEmail):
  5. html_template_name = "organizations/met-quota-drip.html"
  6. text_template_name = "organizations/met-quota-drip.txt"
  7. subject_template_name = "organizations/met-quota-drip-subject.txt"
  8. model = Organization
  9. def get_email(self):
  10. return self.object.email
  11. def get_context_data(self, **kwargs):
  12. from djstripe.models import Product
  13. context = super().get_context_data(**kwargs)
  14. base_url = settings.GLITCHTIP_URL.geturl()
  15. organization = self.object
  16. subscription_link = f"{base_url}/{organization.slug}/settings/subscription"
  17. product = Product.objects.filter(
  18. plan__subscriptions__customer__subscriber=organization,
  19. plan__subscriptions__status="active",
  20. ).first()
  21. context.update(
  22. {
  23. "organization": organization,
  24. "product": product,
  25. "event_limit": product.metadata.get("events") if product else None,
  26. "subscription_link": subscription_link,
  27. }
  28. )
  29. return context
  30. class InvitationEmail(DetailEmail):
  31. html_template_name = "organizations/invite-user-drip.html"
  32. text_template_name = "organizations/invite-user-drip.txt"
  33. subject_template_name = "organizations/invite-user-drip-subject.txt"
  34. model = OrganizationUser
  35. def get_email(self):
  36. return self.object.email
  37. def get_context_data(self, **kwargs):
  38. context = super().get_context_data(**kwargs)
  39. org_user = context["object"]
  40. context["token"] = self.kwargs["token"]
  41. context["user"] = org_user
  42. context["organization"] = org_user.organization
  43. return context