Re-style cross conference email form
authorMagnus Hagander <magnus@hagander.net>
Sat, 17 Nov 2018 16:43:01 +0000 (17:43 +0100)
committerMagnus Hagander <magnus@hagander.net>
Sat, 17 Nov 2018 16:49:28 +0000 (17:49 +0100)
Use the new standard for forms, and in passing assign verbose names to
all fields so things look nicer.

docs/confreg/emails.md
postgresqleu/confreg/forms.py
template/confreg/admin_cross_conference_mail.html

index 405f95d009b41e268928a8a16c8da68fd1cbdfd9..c7517780a432a09f35d6b70bcaa75b0ba39709aa 100644 (file)
@@ -51,14 +51,14 @@ button. To remove an existing filter, click the *-* button.
 
 Then fill out the actual email fields:
 
-Senderaddr
+Sender address
 :  Email-address used to send the email. Be careful about what is used
 here, should always be one where the sending server sets proper
 DKIM. For non-superusers only addresses registered as either contact
 or sponsor address for an existing conference can be used. For
 superusers, any address at all can be used, so be careful!
 
-Sendername
+Sender name
 :  Name of the sender (typically the conference series name, if sent
 to a complete conference series).
 
index 5e5b4eea9de0bad90901dc7cd35a477ca79541a9..b62155f16a3fe1a97d8654e0229d97263f9bf7c7 100644 (file)
@@ -701,8 +701,8 @@ class TransferRegForm(forms.Form):
 
 
 class CrossConferenceMailForm(forms.Form):
-       senderaddr = forms.EmailField(min_length=5, required=True)
-       sendername = forms.CharField(min_length=5, required=True)
+       senderaddr = forms.EmailField(min_length=5, required=True, label="Sender address")
+       sendername = forms.CharField(min_length=5, required=True, label="Sender name")
        include = forms.CharField(widget=forms.widgets.HiddenInput(), required=False)
        exclude = forms.CharField(widget=forms.widgets.HiddenInput(), required=False)
        subject = forms.CharField(min_length=10, max_length=80, required=True)
@@ -716,7 +716,7 @@ class CrossConferenceMailForm(forms.Form):
 
                if not self.user.is_superuser:
                        conferences = list(Conference.objects.filter(series__administrators=self.user))
-                       self.fields['senderaddr'] = forms.ChoiceField(choices=set(
+                       self.fields['senderaddr'] = forms.ChoiceField(label="Sender address", choices=set(
                                                                                                                  [(c.contactaddr, c.contactaddr) for c in conferences] +
                                                                                                                  [(c.sponsoraddr, c.sponsoraddr) for c in conferences]))
 
index 762691daedc096ec30f8300234ed7688f43378f9..deeb49fbbf41fa5408bd2b344f98d007f549f085 100644 (file)
@@ -5,11 +5,9 @@
 <link rel="stylesheet" href="/media/css/selectize.css" />
 <link rel="stylesheet" href="/media/css/selectize.default.css" />
 <style>
-table.mailform tr {
-   vertical-align: top;
-}
-table.mailform input[type=text],textarea,select {
-   width: 500px;
+div.inclexclwrapper div.selectize-control {
+   margin-right: 10px;
+   margin-bottom: 3px;
 }
 .selectize-control { display: inline-block; }
 </style>
@@ -24,7 +22,7 @@ function add_conference_picker(type, default_conf, default_filt) {
 
    var sel = $('<select style="width: 200px" class="noexpand" id="' + type + '_' + num + '">');
    var sel2 = $('<select class="noexpand" style="width: 300px" id="' + type + 't_' + num +'">');
-   var el = $('<div id="' + type + 'wrap_' + num + '">').append(
+   var el = $('<div id="' + type + 'wrap_' + num + '" class="inclexclwrapper">').append(
       sel,
       sel2,
       $('<button class="btn btn-xs" style="float:right" onclick="return removeFilter(\'' + type + '\',' + num + ')"><span class="glyphicon glyphicon-remove-sign"></span></button>'),
@@ -120,25 +118,29 @@ $(function() {
 </script>
 {%endblock%}
 {%block layoutblock%}
-<h1>Conference Emails</h1>
-<form method="post" action=".">{%csrf_token%}
-<table class="mailform">
-<tr>
-  <th>Include</th>
-  <td id="include_td">
+<h1>Send conference email</h1>
+<form class="form-horizontal" method="post" action=".">{%csrf_token%}
+<div class="form-group">
+  <label class="control-label col-lg-3">Include:</label>
+  <div class="col-lg-9 controls" id="include_div">
     <button id="include_btn" class="btn btn-xs" style="float:left" onclick="return addNewFilter('include')"><span class="glyphicon glyphicon-plus-sign"></span></button>
-  </td>
-</tr>
-<tr>
-  <th>Exclude</th>
-  <td id="exclude_td">
+  </div>
+</div>
+
+<div class="form-group">
+  <label class="control-label col-lg-3">Exclude:</label>
+  <div class="col-lg-9 controls" id="exclude_div">
     <button id="exclude_btn" class="btn btn-xs" style="float:left" onclick="return addNewFilter('exclude')"><span class="glyphicon glyphicon-plus-sign"></span></button>
-  </td>
-</tr>
-{{form.as_table}}
-</table>
-<input type="submit" value="Send mail" onClick="return submit_form()">
+  </div>
+</div>
+
+{%for field in form%}
+{%include "confreg/admin_backend_form_field.html"%}
+{%endfor%}
+
+<input class="btn btn-default" type="submit" value="Send mail" onClick="return submit_form()">
 </form>
+
 {%if recipients%}
 <p>
 Mail will be sent to the following {{recipients.all.count}} recipients: