models.py 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. from django.db import models
  2. from misago.utils import get_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('ranks.Rank')
  12. def generate_token(self):
  13. self.token = get_random_string(32)
  14. def parse_name(self, tokens):
  15. name = self.name
  16. for key in tokens:
  17. name = name.replace(key, tokens[key])
  18. return name
  19. def parse_html(self, tokens):
  20. content_html = self.content_html
  21. for key in tokens:
  22. content_html = content_html.replace(key, tokens[key])
  23. return content_html
  24. def parse_plain(self, tokens):
  25. content_plain = self.content_plain
  26. for key in tokens:
  27. content_plain = content_plain.replace(key, tokens[key])
  28. return content_plain