1
0
mirror of https://github.com/Mailu/Mailu.git synced 2025-01-06 00:26:08 +02:00

Announcement to all users, fixes #16

This commit is contained in:
Pierre Jaury 2016-11-10 10:48:37 +01:00
parent 8c32971ec4
commit c3b9756000
7 changed files with 158 additions and 20 deletions

View File

@ -119,3 +119,11 @@ class FetchForm(flask_wtf.FlaskForm):
username = fields.StringField(_('Username')) username = fields.StringField(_('Username'))
password = fields.StringField(_('Password')) password = fields.StringField(_('Password'))
submit = fields.SubmitField(_('Submit')) submit = fields.SubmitField(_('Submit'))
class AnnouncementForm(flask_wtf.FlaskForm):
announcement_subject = fields.StringField(_('Announcement subject'),
[validators.DataRequired()])
announcement_body = fields.StringField(_('Announcement body'),
[validators.DataRequired()], widget=widgets.TextArea())
submit = fields.SubmitField(_('Send'))

View File

@ -0,0 +1,18 @@
{% extends "base.html" %}
{% block title %}
{% trans %}Public announcement{% endtrans %}
{% endblock %}
{% block subtitle %}
{% trans %}from{% endtrans %} {{ from_address }}
{% endblock %}
{% block box_content %}
<form class="form" method="post" role="form">
{{ form.hidden_tag() }}
{{ macros.form_field(form.announcement_subject) }}
{{ macros.form_field(form.announcement_body, rows=10) }}
{{ macros.form_field(form.submit) }}
</form>
{% endblock %}

View File

@ -40,6 +40,11 @@
<i class="fa fa-dashboard"></i> <span>{% trans %}Services status{% endtrans %}</span> <i class="fa fa-dashboard"></i> <span>{% trans %}Services status{% endtrans %}</span>
</a> </a>
</li> </li>
<li>
<a href="{{ url_for('.announcement') }}">
<i class="fa fa-bullhorn"></i> <span>{% trans %}Announcement{% endtrans %}</span>
</a>
</li>
<li> <li>
<a href="{{ url_for('.admin_list') }}"> <a href="{{ url_for('.admin_list') }}">
<i class="fa fa-user"></i> <span>{% trans %}Administrators{% endtrans %}</span> <i class="fa fa-user"></i> <span>{% trans %}Administrators{% endtrans %}</span>

View File

@ -1,8 +1,11 @@
from mailu import dockercli from mailu import dockercli, app as flask_app
from mailu.admin import app, db, models, forms, access from mailu.admin import app, db, models, forms, access
import flask import flask
import flask_login import flask_login
import smtplib
from email.mime import text
@app.route('/', methods=["GET"]) @app.route('/', methods=["GET"])
@ -39,3 +42,25 @@ def services():
except Exception as error: except Exception as error:
return flask.render_template('docker-error.html', error=error) return flask.render_template('docker-error.html', error=error)
return flask.render_template('services.html', containers=containers) return flask.render_template('services.html', containers=containers)
@app.route('/announcement', methods=['GET', 'POST'])
@access.global_admin
def announcement():
from_address = '{}@{}'.format(
flask_app.config['POSTMASTER'], flask_app.config['DOMAIN'])
form = forms.AnnouncementForm()
if form.validate_on_submit():
with smtplib.SMTP('smtp') as smtp:
for recipient in [user.email for user in models.User.query.all()]:
msg = text.MIMEText(form.announcement_body.data)
msg['Subject'] = form.announcement_subject.data
msg['From'] = from_address
msg['To'] = recipient
smtp.sendmail(from_address, [recipient], msg.as_string())
# Force-empty the form
form.announcement_subject.data = ''
form.announcement_body.data = ''
flask.flash('Your announcement was sent', 'success')
return flask.render_template('announcement.html', form=form,
from_address=from_address)

View File

@ -7,17 +7,16 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: stefan.auditor@erdfisch.de\n" "Report-Msgid-Bugs-To: stefan.auditor@erdfisch.de\n"
"POT-Creation-Date: 2016-11-09 19:59+0100\n" "POT-Creation-Date: 2016-11-10 10:47+0100\n"
"PO-Revision-Date: 2016-11-09 21:43+0100\n" "PO-Revision-Date: 2016-11-09 21:43+0100\n"
"Last-Translator: Stefan Auditor <stefan.auditor@erdfisch.de>\n"
"Language: de\n"
"Language-Team: Mailu German Team <stefan.auditor@erdfisch.de>\n" "Language-Team: Mailu German Team <stefan.auditor@erdfisch.de>\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.3.4\n" "Generated-By: Babel 2.3.4\n"
"X-Generator: Poedit 1.8.11\n"
"Last-Translator: Stefan Auditor <stefan.auditor@erdfisch.de>\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: de\n"
#: mailu/admin/forms.py:32 #: mailu/admin/forms.py:32
msgid "Invalid email address." msgid "Invalid email address."
@ -173,6 +172,26 @@ msgstr "TLS aktivieren"
msgid "Username" msgid "Username"
msgstr "Benutzername" msgstr "Benutzername"
#: mailu/admin/forms.py:125
msgid "Announcement subject"
msgstr ""
#: mailu/admin/forms.py:127
msgid "Announcement body"
msgstr ""
#: mailu/admin/forms.py:129
msgid "Send"
msgstr ""
#: mailu/admin/templates/announcement.html:4
msgid "Public announcement"
msgstr ""
#: mailu/admin/templates/announcement.html:8
msgid "from"
msgstr ""
#: mailu/admin/templates/confirm.html:4 #: mailu/admin/templates/confirm.html:4
msgid "Confirm action" msgid "Confirm action"
msgstr "Aktion bestätigen" msgstr "Aktion bestätigen"
@ -188,7 +207,9 @@ msgstr "Docker Fehler"
#: mailu/admin/templates/docker-error.html:12 #: mailu/admin/templates/docker-error.html:12
msgid "An error occurred while talking to the Docker server." msgid "An error occurred while talking to the Docker server."
msgstr "Während der Kommunikation mit dem Docker Server ist ein Fehler ist aufgetreten." msgstr ""
"Während der Kommunikation mit dem Docker Server ist ein Fehler ist "
"aufgetreten."
#: mailu/admin/templates/login.html:6 #: mailu/admin/templates/login.html:6
msgid "Your account" msgid "Your account"
@ -257,14 +278,18 @@ msgid "Administration"
msgstr "Administration" msgstr "Administration"
#: mailu/admin/templates/sidebar.html:45 #: mailu/admin/templates/sidebar.html:45
msgid "Announcement"
msgstr ""
#: mailu/admin/templates/sidebar.html:50
msgid "Administrators" msgid "Administrators"
msgstr "Administratoren" msgstr "Administratoren"
#: mailu/admin/templates/sidebar.html:52 #: mailu/admin/templates/sidebar.html:57
msgid "Mail domains" msgid "Mail domains"
msgstr "E-Mail-Domains" msgstr "E-Mail-Domains"
#: mailu/admin/templates/sidebar.html:59 #: mailu/admin/templates/sidebar.html:64
msgid "Help" msgid "Help"
msgstr "Hilfe" msgstr "Hilfe"
@ -440,3 +465,4 @@ msgstr "Manager Liste"
#: mailu/admin/templates/manager/list.html:12 #: mailu/admin/templates/manager/list.html:12
msgid "Add manager" msgid "Add manager"
msgstr "Manager hinzufügen" msgstr "Manager hinzufügen"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2016-10-29 13:37+0200\n" "POT-Creation-Date: 2016-11-10 10:47+0100\n"
"PO-Revision-Date: 2016-10-02 15:02+0200\n" "PO-Revision-Date: 2016-10-02 15:02+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@ -172,6 +172,26 @@ msgstr ""
msgid "Username" msgid "Username"
msgstr "" msgstr ""
#: mailu/admin/forms.py:125
msgid "Announcement subject"
msgstr ""
#: mailu/admin/forms.py:127
msgid "Announcement body"
msgstr ""
#: mailu/admin/forms.py:129
msgid "Send"
msgstr ""
#: mailu/admin/templates/announcement.html:4
msgid "Public announcement"
msgstr ""
#: mailu/admin/templates/announcement.html:8
msgid "from"
msgstr ""
#: mailu/admin/templates/confirm.html:4 #: mailu/admin/templates/confirm.html:4
msgid "Confirm action" msgid "Confirm action"
msgstr "" msgstr ""
@ -256,14 +276,18 @@ msgid "Administration"
msgstr "" msgstr ""
#: mailu/admin/templates/sidebar.html:45 #: mailu/admin/templates/sidebar.html:45
msgid "Announcement"
msgstr ""
#: mailu/admin/templates/sidebar.html:50
msgid "Administrators" msgid "Administrators"
msgstr "" msgstr ""
#: mailu/admin/templates/sidebar.html:52 #: mailu/admin/templates/sidebar.html:57
msgid "Mail domains" msgid "Mail domains"
msgstr "" msgstr ""
#: mailu/admin/templates/sidebar.html:59 #: mailu/admin/templates/sidebar.html:64
msgid "Help" msgid "Help"
msgstr "" msgstr ""

View File

@ -1,11 +1,18 @@
msgid "" msgid ""
msgstr "" msgstr ""
"MIME-Version: 1.0\n" "Project-Id-Version: Mailu\n"
"Content-Type: text/plain; charset=UTF-8\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"Content-Transfer-Encoding: 8bit\n" "POT-Creation-Date: 2016-11-10 10:47+0100\n"
"X-Generator: POEditor.com\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Project-Id-Version: Mailu\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fr\n" "Language: fr\n"
"Language-Team: fr <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.3.4\n"
#: mailu/admin/forms.py:32 #: mailu/admin/forms.py:32
msgid "Invalid email address." msgid "Invalid email address."
@ -161,11 +168,32 @@ msgstr "Activer TLS"
msgid "Username" msgid "Username"
msgstr "Nom d'utilisateur" msgstr "Nom d'utilisateur"
#: mailu/admin/forms.py:125
msgid "Announcement subject"
msgstr ""
#: mailu/admin/forms.py:127
msgid "Announcement body"
msgstr ""
#: mailu/admin/forms.py:129
msgid "Send"
msgstr ""
#: mailu/admin/templates/announcement.html:4
msgid "Public announcement"
msgstr ""
#: mailu/admin/templates/announcement.html:8
msgid "from"
msgstr ""
#: mailu/admin/templates/confirm.html:4 #: mailu/admin/templates/confirm.html:4
msgid "Confirm action" msgid "Confirm action"
msgstr "Confirmer" msgstr "Confirmer"
#: mailu/admin/templates/confirm.html:12 #: mailu/admin/templates/confirm.html:12
#, python-format
msgid "You are about to %(action)s. Please confirm your action." msgid "You are about to %(action)s. Please confirm your action."
msgstr "Vous allez %(action)s. Merci de confirmer votre action." msgstr "Vous allez %(action)s. Merci de confirmer votre action."
@ -244,14 +272,18 @@ msgid "Administration"
msgstr "Administration" msgstr "Administration"
#: mailu/admin/templates/sidebar.html:45 #: mailu/admin/templates/sidebar.html:45
msgid "Announcement"
msgstr ""
#: mailu/admin/templates/sidebar.html:50
msgid "Administrators" msgid "Administrators"
msgstr "Administrateurs" msgstr "Administrateurs"
#: mailu/admin/templates/sidebar.html:52 #: mailu/admin/templates/sidebar.html:57
msgid "Mail domains" msgid "Mail domains"
msgstr "Domaines" msgstr "Domaines"
#: mailu/admin/templates/sidebar.html:59 #: mailu/admin/templates/sidebar.html:64
msgid "Help" msgid "Help"
msgstr "Aide" msgstr "Aide"