123456789101112131415161718192021222324252627282930313233343536373839 |
- from django.core.validators import RegexValidator
- from django.utils.translation import ugettext_lazy as _
- import floppyforms as forms
- from misago.forms import Form, YesNoSwitch
- from misago.models import Rank
- from misago.validators import validate_sluggable
- class NewsletterForm(Form):
- name = forms.CharField(label=_("Newsletter Name"),
- help_text=_("Newsletter name will be used as message subject in e-mails sent to members."),
- max_length=255, validators=[validate_sluggable(
- _("Newsletter name must contain alphanumeric characters."),
- _("Newsletter name is too long.")
- )])
- step_size = forms.IntegerField(label=_("Step Size"),
- help_text=_("Number of users that message will be sent to before forum refreshes page displaying sending progress."),
- initial=300, min_value=1)
- content_html = forms.CharField(label=_("HTML Message"),
- help_text=_("HTML message visible to members who can read HTML e-mails."),
- widget=forms.Textarea)
- content_plain = forms.CharField(label=_("Plain Text Message"),
- help_text=_("Alternative plain text message that will be visible to members that can't or dont want to read HTML e-mails."),
- widget=forms.Textarea)
- ignore_subscriptions = forms.BooleanField(label=_("Ignore members preferences"),
- help_text=_("Change this option to yes if you want to send this newsletter to members that don't want to receive newsletters. This is good for emergencies."),
- widget=YesNoSwitch, required=False)
- ranks = forms.ModelMultipleChoiceField(label=_("Limit to roles"),
- help_text=_("You can limit this newsletter only to members who have specific ranks. If you dont set any ranks, this newsletter will be sent to every user."),
- widget=forms.CheckboxSelectMultiple, queryset=Rank.objects.order_by('name').all(), required=False)
- class SearchNewslettersForm(Form):
- name = forms.CharField(label=_("Newsletter Name"),
- max_length=255, required=False)
- contains = forms.CharField(label=_("Message Contents"),
- max_length=255, required=False)
- type = forms.TypedMultipleChoiceField(label=_("Newsletter Type"),
- widget=forms.CheckboxSelectMultiple, choices=((0, _("Only to subscribers")), (1, _("To every member"))), coerce=int, required=False)
- rank = forms.ModelMultipleChoiceField(label=_("Recipient Rank"), widget=forms.CheckboxSelectMultiple, queryset=Rank.objects.order_by('order').all(), required=False)
|