blog posts can be edited from the main feed or individual member pages
This commit is contained in:
@@ -6,6 +6,8 @@ logged in users are presumed to all be admins with distinction only between bein
|
|||||||
|
|
||||||
in the blog view, member privacy outweighs individual post privacy. if a private member makes a public post, it will not show up in the public feed. however, if that member switches to public, their public posts will all become publicly viewable (but private posts will remain private).
|
in the blog view, member privacy outweighs individual post privacy. if a private member makes a public post, it will not show up in the public feed. however, if that member switches to public, their public posts will all become publicly viewable (but private posts will remain private).
|
||||||
|
|
||||||
|
some html files (notably full.html and index.html) will show lots of errors in vscode, because of the use of jinja variables in the inline style. this is fine just ignore it. it doesn't do that in the page.html because simply using quotation marks around the colours is enough to make everything correct, but the use of member specific identifiers as jinja variables renders the entire css 'invalid' in the other html files.
|
||||||
|
|
||||||
# assorted todo
|
# assorted todo
|
||||||
|
|
||||||
- edit blog posts
|
- edit blog posts
|
||||||
|
|||||||
@@ -72,4 +72,27 @@ def toggle(pid, location):
|
|||||||
if location == "blog":
|
if location == "blog":
|
||||||
return redirect(url_for("blog.blog"))
|
return redirect(url_for("blog.blog"))
|
||||||
else:
|
else:
|
||||||
return redirect(url_for("home.page", mid=location))
|
return redirect(url_for("home.page", mid=location))
|
||||||
|
|
||||||
|
@bp.route("/edit/<pid>/<location>", methods=('GET', 'POST'))
|
||||||
|
@login_required
|
||||||
|
def edit(pid,location):
|
||||||
|
db = get_db()
|
||||||
|
post = db.execute("SELECT * FROM blog WHERE id=(?)",(pid,)).fetchone()
|
||||||
|
members = db.execute("SELECT id,member_name FROM member").fetchall()
|
||||||
|
|
||||||
|
if request.method == 'POST':
|
||||||
|
title = request.form['title']
|
||||||
|
content = request.form['content']
|
||||||
|
mid = request.form["mid"]
|
||||||
|
privacy = request.form["privacy"]
|
||||||
|
|
||||||
|
db.execute("UPDATE blog SET title=(?), content=(?), member_id=(?), public=(?) WHERE id=(?)",(title, content, mid, privacy, pid))
|
||||||
|
db.commit()
|
||||||
|
|
||||||
|
if location == "blog":
|
||||||
|
return redirect(url_for("blog.blog"))
|
||||||
|
else:
|
||||||
|
return redirect(url_for("home.page", mid=location))
|
||||||
|
|
||||||
|
return render_template('blog/edit.html', post=post, members=members)
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<br class="clear" />
|
<br class="clear" />
|
||||||
{% if g.user %}
|
{% if g.user %}
|
||||||
{% if post[5]==0 %}<b style="color:red;">Private</b>{% else %}<b style="color:green;">Public</b>{% endif %} | <a href="{{url_for('blog.toggle',pid=post[0], location='blog')}}">Toggle privacy</a> | <a href="{{url_for('blog.delete', pid=post[0], location='blog')}}" class="danger">Delete post</a>
|
{% if post[5]==0 %}<b style="color:red;">Private</b>{% else %}<b style="color:green;">Public</b>{% endif %} | <a href="{{url_for('blog.toggle',pid=post[0], location='blog')}}">Toggle privacy</a> | <a href="{{url_for('blog.edit',pid=post[0],location='blog')}}">Edit Post</a> | <a href="{{url_for('blog.delete', pid=post[0], location='blog')}}" class="danger">Delete post</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
27
myriad/templates/blog/edit.html
Normal file
27
myriad/templates/blog/edit.html
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{% extends 'base.html' %}
|
||||||
|
|
||||||
|
{% block header %}
|
||||||
|
<div class="title">{% block title %}Edit Blog Post{% endblock %}</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<form method="post">
|
||||||
|
<label for="title">Title</label>
|
||||||
|
<input name="title" id="title" value="{{post[3]}}"><br>
|
||||||
|
<label for="content">Content</label>
|
||||||
|
<textarea name="content" id="content">{{post[4]}}</textarea><br>
|
||||||
|
<label for="mid">Choose a member:</label>
|
||||||
|
<select name="mid" id="mid">
|
||||||
|
{% for member in members %}
|
||||||
|
<option value="{{member[0]}}" {% if member[0]==post[1] %}selected{% endif %}>{{member[1]}}</option>
|
||||||
|
{% endfor %}
|
||||||
|
</select>
|
||||||
|
<br>
|
||||||
|
<input type="radio" id="public" name="privacy" value=1 {% if post[5]==1 %}checked{% endif %}>
|
||||||
|
<label for="public">Public</label><br>
|
||||||
|
<input type="radio" id="private" name="privacy" value=0 {% if post[5]==0 %}checked{% endif %}>
|
||||||
|
<label for="private">Private</label><br>
|
||||||
|
<input type="submit" value="Submit">
|
||||||
|
</form>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
@@ -7,46 +7,42 @@
|
|||||||
|
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
body{
|
body{
|
||||||
background: {{member[17]}};
|
background: '{{member[17]}}';
|
||||||
background: linear-gradient(90deg, {{member[17]}} 0%, {{member[18]}} 50%, {{member[19]}} 100%);
|
background: linear-gradient(90deg, '{{member[17]}}' 0%, '{{member[18]}}' 50%, '{{member[19]}}' 100%);
|
||||||
scrollbar-color:{{member[12]}} {{member[11]}};
|
scrollbar-color:"{{member[12]}}" "{{member[11]}}";
|
||||||
}
|
}
|
||||||
.container{
|
.container{
|
||||||
background-color:{{member[10]}};
|
background-color:"{{member[10]}}";
|
||||||
border-color:{{member[9]}};
|
border-color:"{{member[9]}}";
|
||||||
}
|
}
|
||||||
.heading{
|
.heading{
|
||||||
background-color:{{member[11]}};
|
background-color:"{{member[11]}}";
|
||||||
border-color:{{member[12]}};
|
border-color:"{{member[12]}}";
|
||||||
color:{{member[14]}};
|
color:"{{member[14]}}";
|
||||||
}
|
}
|
||||||
.icon{
|
.icon{
|
||||||
border-color:{{member[16]}};
|
border-color:"{{member[16]}}";
|
||||||
}
|
}
|
||||||
.bio{
|
.bio{
|
||||||
color:{{member[15]}};
|
color:"{{member[15]}}";
|
||||||
}
|
}
|
||||||
.heading b
|
.heading b
|
||||||
{
|
{
|
||||||
color:{{member[13]}};
|
color:"{{member[13]}}";
|
||||||
}
|
}
|
||||||
a{
|
a{
|
||||||
color: {{member[21]}};
|
color: "{{member[21]}}";
|
||||||
}
|
}
|
||||||
a:hover{
|
a:hover{
|
||||||
color: {{member[22]}};
|
color: "{{member[22]}}";
|
||||||
}
|
}
|
||||||
::selection {
|
::selection {
|
||||||
background: {{member[12]}};
|
background: "{{member[12]}}";
|
||||||
color: white;
|
}
|
||||||
text-shadow: none;
|
::-moz-selection {
|
||||||
}
|
background: "{{member[12]}}";
|
||||||
::-moz-selection {
|
}
|
||||||
background: {{member[12]}};
|
|
||||||
color: #EEE;
|
|
||||||
text-shadow: none;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
@@ -82,7 +78,7 @@ a:hover{
|
|||||||
<div class="content">
|
<div class="content">
|
||||||
{{post[4]|safe}}
|
{{post[4]|safe}}
|
||||||
</div>
|
</div>
|
||||||
{% if g.user %}<a href="{{url_for('blog.toggle',pid=post[0], location=member[0])}}">Toggle privacy</a> | <a href="{{url_for('blog.delete', pid=post[0], location=member[0])}}" class="danger">Delete post</a>{% endif %}
|
{% if g.user %}<a href="{{url_for('blog.toggle',pid=post[0], location=member[0])}}">Toggle privacy</a> | <a href="{{url_for('blog.edit',pid=post[0],location=member[0])}}">Edit Post</a> | <a href="{{url_for('blog.delete', pid=post[0], location=member[0])}}" class="danger">Delete post</a>{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|||||||
Reference in New Issue
Block a user