Skip to content
Snippets Groups Projects
Commit 95552430 authored by Martin Mareš's avatar Martin Mareš
Browse files

Web umožňuje adminovi připsat do DB logu poznámku

Hodí se po ručním zásahu do DB.
parent 66cdbbde
No related branches found
No related tags found
No related merge requests found
from flask import render_template, g from flask import render_template, g, redirect, url_for, flash
from flask_wtf import FlaskForm
from sqlalchemy.orm import joinedload from sqlalchemy.orm import joinedload
import werkzeug.exceptions import werkzeug.exceptions
import wtforms
import mo.db as db import mo.db as db
import mo.util
from mo.web import app from mo.web import app
@app.route('/org/log/<typ>/<int:id>/') class LogNoteForm(FlaskForm):
note = wtforms.TextAreaField("Poznámka")
submit = wtforms.SubmitField("Přidat")
@app.route('/org/log/<typ>/<int:id>/', methods=('GET', 'POST'))
def org_log(typ: str, id: int): def org_log(typ: str, id: int):
if not g.user.is_admin: if not g.user.is_admin:
raise werkzeug.exceptions.Forbidden() raise werkzeug.exceptions.Forbidden()
...@@ -16,10 +24,26 @@ def org_log(typ: str, id: int): ...@@ -16,10 +24,26 @@ def org_log(typ: str, id: int):
log_type = getattr(db.LogType, typ) log_type = getattr(db.LogType, typ)
sess = db.get_session() sess = db.get_session()
note_form = LogNoteForm()
if note_form.validate_on_submit():
text = note_form.note.data.strip().replace("\r", "")
mo.util.log(
type=log_type,
what=id,
details={
'action': 'note',
'note': text,
},
)
sess.commit()
flash('Zpráva přidána.', 'success')
redirect(url_for('org_log', typ=typ, id=id))
logs = (sess.query(db.Log) logs = (sess.query(db.Log)
.filter_by(type=log_type, id=id) .filter_by(type=log_type, id=id)
.options(joinedload(db.Log.user)) .options(joinedload(db.Log.user))
.order_by(db.Log.changed_at.desc()) .order_by(db.Log.changed_at.desc())
.all()) .all())
return render_template('org_log.html', type=log_type, id=id, logs=logs) return render_template('org_log.html', type=log_type, id=id, logs=logs, note_form=note_form)
{% extends "base.html" %} {% extends "base.html" %}
{% import "bootstrap/wtf.html" as wtf %}
{% block title %}Log: {{ type.name }} #{{ id }}{% endblock %} {% block title %}Log: {{ type.name }} #{{ id }}{% endblock %}
{% block body %} {% block body %}
{% if type == 'user' %}
<p><a class='btn btn-default' href='{{ url_for('org_log', typ='participant', id=id) }}'>Participation log</a>
{% endif %}
<table class='data'> <table class='data'>
{% for log in logs %} {% for log in logs %}
<tr> <tr>
...@@ -11,8 +16,6 @@ ...@@ -11,8 +16,6 @@
{% endfor %} {% endfor %}
</table> </table>
{% if type == 'user' %} {{ wtf.quick_form(note_form, form_type='simple', button_map={'submit': 'primary'}) }}
<p><a class='btn btn-default' href='{{ url_for('org_log', typ='participant', id=id) }}'>Participation log</a>
{% endif %}
{% endblock %} {% endblock %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment