newslettermodel.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. from django.db import models
  2. from misago.utils.strings import random_string
  3. class Newsletter(models.Model):
  4. name = models.CharField(max_length=255)
  5. token = models.CharField(max_length=32)
  6. step_size = models.PositiveIntegerField(default=0)
  7. progress = models.PositiveIntegerField(default=0)
  8. content_html = models.TextField(null=True, blank=True)
  9. content_plain = models.TextField(null=True, blank=True)
  10. ignore_subscriptions = models.BooleanField(default=False)
  11. ranks = models.ManyToManyField('Rank')
  12. class Meta:
  13. app_label = 'misago'
  14. def generate_token(self):
  15. self.token = random_string(32)
  16. def parse_name(self, tokens):
  17. name = self.name
  18. for key in tokens:
  19. name = name.replace(key, tokens[key])
  20. return name
  21. def parse_html(self, tokens):
  22. content_html = self.content_html
  23. for key in tokens:
  24. content_html = content_html.replace(key, tokens[key])
  25. return content_html
  26. def parse_plain(self, tokens):
  27. content_plain = self.content_plain
  28. for key in tokens:
  29. content_plain = content_plain.replace(key, tokens[key])
  30. return content_plain