index.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. """List of clients"""
  2. from flask import render_template, request, flash, redirect, url_for
  3. from flask_login import current_user, login_required
  4. from app.developer.base import developer_bp
  5. from app.extensions import db
  6. from app.log import LOG
  7. from app.models import Client
  8. @developer_bp.route("/", methods=["GET", "POST"])
  9. @login_required
  10. def index():
  11. # delete client
  12. if request.method == "POST":
  13. if request.form.get("form-name") == "delete-client":
  14. client_id = int(request.form.get("client-id"))
  15. client = Client.get(client_id)
  16. if client.user_id != current_user.id:
  17. flash("You cannot remove this client", "warning")
  18. else:
  19. client_name = client.name
  20. client.delete()
  21. db.session.commit()
  22. LOG.d("Remove client %s", client)
  23. flash(f"Client {client_name} has been deleted successfully", "success")
  24. elif request.form.get("form-name") == "switch-client-publish":
  25. client_id = int(request.form.get("client-id"))
  26. client = Client.get(client_id)
  27. if client.user_id != current_user.id:
  28. flash("You cannot modify this client", "warning")
  29. else:
  30. client.published = not client.published
  31. db.session.commit()
  32. LOG.d("Switch client.published %s", client)
  33. if client.published:
  34. flash(
  35. f"Client {client.name} has been published on Discover",
  36. "success",
  37. )
  38. else:
  39. flash(f"Client {client.name} has been un-published", "success")
  40. return redirect(url_for("developer.index"))
  41. clients = Client.filter_by(user_id=current_user.id).all()
  42. return render_template("developer/index.html", clients=clients)