from django.db import models
from misago.utils import get_random_string

class Newsletter(models.Model):
    name = models.CharField(max_length=255)
    token = models.CharField(max_length=32)
    step_size = models.PositiveIntegerField(default=0)
    progress = models.PositiveIntegerField(default=0)
    content_html = models.TextField(null=True,blank=True)
    content_plain = models.TextField(null=True,blank=True)
    ignore_subscriptions = models.BooleanField(default=False)
    ranks = models.ManyToManyField('ranks.Rank')
    
    def generate_token(self):
        self.token = get_random_string(32)
    
    def parse_name(self, tokens):
        name = self.name
        for key in tokens:
            name = name.replace(key, tokens[key])
        return name
    
    def parse_html(self, tokens):
        content_html = self.content_html
        for key in tokens:
            content_html = content_html.replace(key, tokens[key])
        return content_html
    
    def parse_plain(self, tokens):
        content_plain = self.content_plain
        for key in tokens:
            content_plain = content_plain.replace(key, tokens[key])
        return content_plain