42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
from flask import Blueprint, abort, redirect, render_template, request, url_for
|
|
|
|
from ...services import mock_mail
|
|
|
|
bp = Blueprint("groups", __name__, template_folder="../../templates")
|
|
|
|
|
|
@bp.route("/")
|
|
def index():
|
|
return render_template("groups/index.html", groups=mock_mail.list_groups())
|
|
|
|
|
|
@bp.route("/new", methods=["GET", "POST"])
|
|
def create():
|
|
if request.method == "POST":
|
|
name = request.form.get("name", "").strip()
|
|
members = request.form.get("members", "").splitlines()
|
|
if not name:
|
|
return render_template("groups/edit.html", group=None, error="Введите название")
|
|
mock_mail.add_group(name, members)
|
|
return redirect(url_for("groups.index"))
|
|
return render_template("groups/edit.html", group=None)
|
|
|
|
|
|
@bp.route("/<int:gid>/edit", methods=["GET", "POST"])
|
|
def edit(gid: int):
|
|
g = mock_mail.get_group(gid)
|
|
if not g:
|
|
abort(404)
|
|
if request.method == "POST":
|
|
name = request.form.get("name", "").strip()
|
|
members = request.form.get("members", "").splitlines()
|
|
mock_mail.update_group(gid, name, members)
|
|
return redirect(url_for("groups.index"))
|
|
return render_template("groups/edit.html", group=g)
|
|
|
|
|
|
@bp.route("/<int:gid>/delete", methods=["POST"])
|
|
def delete(gid: int):
|
|
mock_mail.delete_group(gid)
|
|
return redirect(url_for("groups.index"))
|