Browse Source

Newsletters admin moved to floppyforms. #114

Rafał Pitoń 12 years ago
parent
commit
44fe48e370

+ 25 - 41
misago/apps/admin/newsletters/forms.py

@@ -6,50 +6,34 @@ from misago.models import Rank
 from misago.validators import validate_sluggable
 
 class NewsletterForm(Form):
-    name = forms.CharField(max_length=255, validators=[validate_sluggable(
+    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(initial=300, min_value=1)
-    content_html = forms.CharField(widget=forms.Textarea)
-    content_plain = forms.CharField(widget=forms.Textarea)
-    ignore_subscriptions = forms.BooleanField(widget=YesNoSwitch, required=False)
-    ranks = forms.ModelMultipleChoiceField(widget=forms.CheckboxSelectMultiple, queryset=Rank.objects.order_by('name').all(), required=False)
-
-    layout = (
-              (
-               _("Newsletter Options"),
-               (
-                ('name', {'label': _("Newsletter Name"), 'help_text': _("Newsletter name will be used as message subject in e-mails sent to members.")}),
-                ('step_size', {'label': _("Step Size"), 'help_text': _("Number of users that message will be sent to before forum refreshes page displaying sending progress.")}),
-                ('ranks', {'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.")}),
-                ('ignore_subscriptions', {'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.")}),
-               )
-              ),
-              (
-               _("Message"),
-               (
-                ('content_html', {'label': _("HTML Message"), 'help_text': _("HTML message visible to members who can read HTML e-mails."), 'attrs': {'rows': 10}}),
-                ('content_plain', {'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."), 'attrs': {'rows': 10}}),
-               )
-              ),
-             )
+    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(max_length=255, required=False)
-    contains = forms.CharField(max_length=255, required=False)
-    type = forms.TypedMultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=((0, _("Only to subscribers")), (1, _("To every member"))), coerce=int, required=False)
-    rank = forms.ModelMultipleChoiceField(widget=forms.CheckboxSelectMultiple, queryset=Rank.objects.order_by('order').all(), required=False)
-
-    layout = (
-              (
-               _("Search Newsletters"),
-               (
-                ('name', {'label': _("Newsletter Name"), 'attrs': {'placeholder': _("Name contains...")}}),
-                ('contains', {'label': _("Message Contents"), 'attrs': {'placeholder': _("Message contains...")}}),
-                ('type', {'label': _("Newsletter Type")}),
-                ('rank', {'label': _("Recipient Rank")}),
-               ),
-              ),
-             )
+    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)

+ 17 - 0
templates/admin/newsletters/form.html

@@ -0,0 +1,17 @@
+{% extends "admin/admin/form.html" %}
+{% import "forms.html" as form_theme with context %}
+
+{% block form %}
+<fieldset>
+  <legend>{% trans %}Newsletter Options{% endtrans %}</legend>
+  {{ form_theme.row(form.name, attrs={'class': 'span12'}) }}
+  {{ form_theme.row(form.step_size, attrs={'class': 'span12'}) }}
+  {{ form_theme.row(form.ranks, attrs={'class': 'span12'}) }}
+  {{ form_theme.row(form.ignore_subscriptions) }}
+</fieldset>
+<fieldset>
+  <legend>{% trans %}Message{% endtrans %}</legend>
+  {{ form_theme.row(form.content_html, attrs={'class': 'span12', 'rows': 10}) }}
+  {{ form_theme.row(form.content_plain, attrs={'class': 'span12', 'rows': 10}) }}
+</fieldset>
+{% endblock %}

+ 14 - 1
templates/admin/newsletters/list.html

@@ -1,8 +1,21 @@
 {% extends "admin/admin/list.html" %}
-{% import "_forms.html" as form_theme with context %}
+{% import "forms.html" as form_theme with context %}
 
 {% block table_row scoped %}
   <td class="lead-cell">
   	<strong>{{ item.name }}</strong>{% if item.ignore_subscriptions %} <span class="label label-important">{% trans %}Ignoring Subscriptions{% endtrans %}</span>{% endif %}
   </td>
 {% endblock%}
+
+{% block search_form %}
+{{ form_theme.row(search_form.name, attrs={
+                                           'class': 'span3',
+                                           'placeholder': _("Name contains..."),
+                                          }) }}
+{{ form_theme.row(search_form.contains, attrs={
+                                               'class': 'span3',
+                                               'placeholder': _("Message contains..."),
+                                              }) }}
+{{ form_theme.row(search_form.type, attrs={'class': 'span3'}) }}
+{{ form_theme.row(search_form.rank, attrs={'class': 'span3'}) }}
+{% endblock %}

+ 1 - 1
templates/admin/online/list.html

@@ -23,7 +23,7 @@
   </td>
 {% endblock %}
 
-{% block search_form scoped %}
+{% block search_form %}
 {{ form_theme.row(search_form.ip_address, attrs={
                                                  'class': 'span3',
                                                  'placeholder': _("IP begins with..."),