dev #6
34
app/main.py
34
app/main.py
@@ -2,6 +2,7 @@ import asyncio
|
|||||||
import logging
|
import logging
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
from urllib.parse import urlencode
|
||||||
|
|
||||||
from pydantic import ValidationError
|
from pydantic import ValidationError
|
||||||
|
|
||||||
@@ -337,6 +338,10 @@ async def _generate_newsletter(
|
|||||||
@app.get("/dashboard", response_class=HTMLResponse)
|
@app.get("/dashboard", response_class=HTMLResponse)
|
||||||
async def dashboard(request: Request, db: Session = Depends(get_db), current_user: User = Depends(get_current_user)):
|
async def dashboard(request: Request, db: Session = Depends(get_db), current_user: User = Depends(get_current_user)):
|
||||||
context = _base_context(request, current_user, db)
|
context = _base_context(request, current_user, db)
|
||||||
|
send_status = request.query_params.get("send_status")
|
||||||
|
send_result = None
|
||||||
|
if send_status:
|
||||||
|
send_result = {"status": send_status, "message": request.query_params.get("send_msg", "")}
|
||||||
context.update({
|
context.update({
|
||||||
"articles": [],
|
"articles": [],
|
||||||
"articles_new": [],
|
"articles_new": [],
|
||||||
@@ -347,7 +352,7 @@ async def dashboard(request: Request, db: Session = Depends(get_db), current_use
|
|||||||
"subject": "",
|
"subject": "",
|
||||||
"filters": _empty_filters(),
|
"filters": _empty_filters(),
|
||||||
"wiki_error": None,
|
"wiki_error": None,
|
||||||
"send_result": None,
|
"send_result": send_result,
|
||||||
})
|
})
|
||||||
logs = db.query(SendLog).order_by(SendLog.created_at.desc()).limit(20).all()
|
logs = db.query(SendLog).order_by(SendLog.created_at.desc()).limit(20).all()
|
||||||
context["send_logs"] = logs
|
context["send_logs"] = logs
|
||||||
@@ -463,31 +468,8 @@ async def send_now(
|
|||||||
status_code, detail = send_newsletter(db, gen["subject"], gen["raw_html"], gen["plain_text"], recipients, scheduled=False)
|
status_code, detail = send_newsletter(db, gen["subject"], gen["raw_html"], gen["plain_text"], recipients, scheduled=False)
|
||||||
send_result = {"status": status_code, "message": detail}
|
send_result = {"status": status_code, "message": detail}
|
||||||
|
|
||||||
context = _base_context(request, current_user, db)
|
query = urlencode({"send_status": send_result["status"], "send_msg": send_result["message"]})
|
||||||
context.update(
|
return RedirectResponse(url=f"/dashboard?{query}", status_code=status.HTTP_303_SEE_OTHER)
|
||||||
{
|
|
||||||
"articles": gen["articles"],
|
|
||||||
"articles_new": gen["articles_new"],
|
|
||||||
"articles_edited": gen["articles_edited"],
|
|
||||||
"raw_html": gen["raw_html"],
|
|
||||||
"outlook_html": gen["outlook_html"],
|
|
||||||
"plain_text": gen["plain_text"],
|
|
||||||
"subject": gen["subject"],
|
|
||||||
"filters": {
|
|
||||||
"days": days,
|
|
||||||
"period": period,
|
|
||||||
"article_type": article_type,
|
|
||||||
"category": category,
|
|
||||||
"display": display,
|
|
||||||
"editor_tip": editor_tip,
|
|
||||||
"highlights": highlights,
|
|
||||||
},
|
|
||||||
"send_logs": db.query(SendLog).order_by(SendLog.created_at.desc()).limit(20).all(),
|
|
||||||
"wiki_error": gen["wiki_error"],
|
|
||||||
"send_result": send_result,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
return _render(request, "dashboard.html", context)
|
|
||||||
|
|
||||||
|
|
||||||
@app.post("/admin/smtp")
|
@app.post("/admin/smtp")
|
||||||
|
|||||||
Reference in New Issue
Block a user