app-MAIL-temp/app/developer/views/index.py

53 lines
1.9 KiB
Python

"""List of clients"""
from flask import render_template, request, flash, redirect, url_for
from flask_login import current_user, login_required
from app.developer.base import developer_bp
from app.extensions import db
from app.log import LOG
from app.models import Client
@developer_bp.route("/", methods=["GET", "POST"])
@login_required
def index():
# delete client
if request.method == "POST":
if request.form.get("form-name") == "delete-client":
client_id = int(request.form.get("client-id"))
client = Client.get(client_id)
if client.user_id != current_user.id:
flash("You cannot remove this client", "warning")
else:
client_name = client.name
client.delete()
db.session.commit()
LOG.d("Remove client %s", client)
flash(f"Client {client_name} has been deleted successfully", "success")
elif request.form.get("form-name") == "switch-client-publish":
client_id = int(request.form.get("client-id"))
client = Client.get(client_id)
if client.user_id != current_user.id:
flash("You cannot modify this client", "warning")
else:
client.published = not client.published
db.session.commit()
LOG.d("Switch client.published %s", client)
if client.published:
flash(
f"Client {client.name} has been published on Discover",
"success",
)
else:
flash(f"Client {client.name} has been un-published", "success")
return redirect(url_for("developer.index"))
clients = Client.filter_by(user_id=current_user.id).all()
return render_template("developer/index.html", clients=clients)