This is a simple comment system for flask-flatpages, appends a datetime stamp and your comment in the static file.
#todo: cleanup, redirect to same template and clean the template up
This is a simple comment system for flask-flatpages, appends a datetime stamp and your comment in the static file.
#todo: cleanup, redirect to same template and clean the template up
| class WritePageForm(Form): | |
| """write content to todays journal file""" | |
| path = TextField('path') | |
| title = TextField('title') | |
| content = TextAreaField('content', | |
| validators=[DataRequired(), | |
| Length(min=3, max=1000), | |
| ]) |
| {% extends "layout.html" %} | |
| {% block content %} | |
| <br><br> | |
| <div class="panel panel-default"> | |
| <div class="panel-heading"> | |
| <h3 class="panel-title">Tags</h3> | |
| </div> | |
| <div class="panel-body"> | |
| {%for t in page.meta.tags%} | |
| <a href="/flatpages/tag/{{t}}"> | |
| {{t}} | |
| </a> | |
| {%endfor%} | |
| </div> | |
| </div> | |
| <p> | |
| {{ page.html | safe }} | |
| </p> | |
| <div class="panel panel-default"> | |
| <div class="panel-body"> | |
| <h4>Comment</h4> | |
| <form id="WritePageForm" class="form" method="POST" action="{{ url_for('flat.writePage') }}" role="form" > | |
| <input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/> | |
| <div class="form-group"> | |
| {{form.content(placeholder="enter comment", class_="form-control", rows='5')}} | |
| </div> | |
| page info | |
| <div class="form-group"> | |
| {{form.title(value=page.title, class_="form-control", readonly=true)}} | |
| </div> | |
| <div class="form-group"> | |
| {{form.path(value=page.path, class_="form-control", readonly=true)}} | |
| </div> | |
| <p><input class="btn btn-default btn-submit" type="submit" value="add"></p> | |
| </form> | |
| </div> | |
| </div> | |
| <br> | |
| <hr> | |
| {% endblock content %} |
| @blueprint.route('/append/', methods=['GET', 'POST']) | |
| @login_required | |
| def writePage(): | |
| form = WritePageForm(request.form, csrf_enabled=False) | |
| now = datetime.datetime.now() | |
| ymd = now.strftime("%Y-%m-%d") | |
| if form.validate_on_submit(): | |
| page = pages.get(form.path.data) | |
| ptext = form.content.data.encode('utf-8',errors='ignore') # bugfix for decode errors | |
| ptext = ptext.decode('utf-8',errors='ignore') | |
| path = form.path.data | |
| print(ptext,path) | |
| write_page(path,ptext) | |
| FlatPages.reload(pages) | |
| print(type(page.meta['title'])) | |
| flash("comment "+form.content.data+" added to "+str(page.meta['title'])) | |
| return render_template('flatpages/writepage.html', form=form, ymd=ymd, page=page) | |
| else: | |
| page = 'fail' | |
| flash_errors(form) | |
| return render_template('flatpages/writepage.html', form=form, ymd=ymd, page=page) |
| {% extends "layout.html" %} | |
| {% block title %} | |
| {{form.title.data}} | |
| {% endblock %} | |
| {% block name %} | |
| {{form.title.data}} | |
| {% endblock %} | |
| {% block content %} | |
| <!-- Start your project here--> | |
| <h4>Comment</h4> | |
| <p><a href="/flatpages/{{page.path}}">{{page.path}}</a></p> | |
| <h4>output</h4> | |
| <pre class="line-numbers language-powershell"> | |
| <code class="line-numbers language-markdown"> | |
| comment: {{form.content.data}} | |
| title: {{form.title.data}} | |
| path: {{form.path.data}} | |
| </code> | |
| </pre> | |
| <!-- /Start your project here--> | |
| {% endblock %} |