Enable favoriting toots.

The user flow for this is kind of crap right now; it will get better once some
intercooler is applied on top, but will stay the same in lynx and FULLBRUTALISM
This commit is contained in:
Jason McBrayer 2018-04-30 18:40:41 -04:00
parent 882b9db5cc
commit 1b561fa90e
4 changed files with 54 additions and 4 deletions

View File

@ -0,0 +1,31 @@
{% extends "base.html" %}
{% block title %} Brutaldon - confirm favorite {% endblock %}
{% block content %}
{% if toot.favourited %}
<h1 class="title">Unfav that toot?</h1>
{% else %}
<h1 class="title" >Fav that toot?</h1>
{% endif %}
<div class="box">
{% include "main/toot_partial.html" with toot=toot %}
</div>
<form method="POST" action="{% url "fav" toot.id %}">
{% csrf_token %}
<div class="level is-mobile">
<div class="level-left">
<div class="level-item">
<input class="button" type="submit" name="cancel" value="Cancel">
</div>
</div>
<div class="level-right">
<div class="level-item">
<input class="button is-primary" type="submit" name="fav"
value="Favorite">
</div>
</div>
</div>
</form>
{% endblock %}

View File

@ -73,10 +73,16 @@
<span class="is-invisible" >Boost</span>
</i></span>
</a>
<a class="level-item">
<span class="icon is-small"><i class="fa fa-heart">
<span class="is-invisible" >Favorite</span>
</i></span>
<a class="level-item" href="{% url "fav" toot.id %}">
<span class="icon is-small">
{% if toot.favourited %}
<i class="fa fa-heart has-text-warning">
{% else %}
<i class="fa fa-heart">
{% endif %}
<span class="is-invisible" >Favorite</span>
</i>
</span>
</a>
</div>
<div class="level-right">

View File

@ -30,5 +30,6 @@ urlpatterns = [
path('thread/<int:id>', views.thread, name='thread'),
path('toot', views.toot, name="toot"),
path('reply/<int:id>', views.reply, name='reply'),
path('fav/<int:id>', views.fav, name='fav'),
path('', views.home),
]

View File

@ -194,3 +194,15 @@ def reply(request, id):
'fullbrutalism': fullbrutalism_p(request)})
else:
return redirect(reply, id)
def fav(request, id):
mastodon = get_mastodon(request)
toot = mastodon.status(id)
if request.method == 'POST':
if toot.favourited:
mastodon.status_unfavourite(id)
else:
mastodon.status_favourite(id)
return redirect(thread, id)
else:
return render(request, 'main/fav.html', {"toot": toot})