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("//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("//delete", methods=["POST"]) def delete(gid: int): mock_mail.delete_group(gid) return redirect(url_for("groups.index"))