Add blocking and muting

This commit is contained in:
Jason McBrayer 2018-06-11 19:38:49 -04:00
parent d0bed792b2
commit 4d31412e75
5 changed files with 161 additions and 6 deletions

View File

@ -0,0 +1,58 @@
{% extends "base.html" %}
{% load taglinks %}
{% load sanitizer %}
{% block title %}Brutaldon - confirm (un)block {% endblock %}
{% block content %}
{% if relationship.blocking %}
<h1 class="title">Unblock this user?</h1>
{% else %}
<h1 class="title">Block this user?</h1>
{% endif %}
<article class="media user-info">
<figure class="media-left">
<p class="image is-64x64">
<a href="{% url "user" user.acct %}">
<img src="{{ user.avatar }}"
alt="">
</a>
</p>
</figure>
<div class="media-content">
<div class="content">
<p>
<strong>{{ user.display_name }}</strong>
<small>
<a href="{% url "user" user.acct %}">
@{{ user.acct }}
</a>
</small>
</p>
{{ user.note | relink_toot | strip_html | safe }}
<p>
</p>
</div>
</div>
</article>
<form method="POST" action="{% url 'block' user.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="block"
value="Confirm">
</div>
</div>
</div>
</form>
{% endblock %}

View File

@ -0,0 +1,58 @@
{% extends "base.html" %}
{% load taglinks %}
{% load sanitizer %}
{% block title %}Brutaldon - confirm (un)mute {% endblock %}
{% block content %}
{% if relationship.muting %}
<h1 class="title">Unmute this user?</h1>
{% else %}
<h1 class="title">Mute this user?</h1>
{% endif %}
<article class="media user-info">
<figure class="media-left">
<p class="image is-64x64">
<a href="{% url "user" user.acct %}">
<img src="{{ user.avatar }}"
alt="">
</a>
</p>
</figure>
<div class="media-content">
<div class="content">
<p>
<strong>{{ user.display_name }}</strong>
<small>
<a href="{% url "user" user.acct %}">
@{{ user.acct }}
</a>
</small>
</p>
{{ user.note | relink_toot | strip_html | safe }}
<p>
</p>
</div>
</div>
</article>
<form method="POST" action="{% url 'mute' user.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="mute"
value="Confirm">
</div>
</div>
</div>
</form>
{% endblock %}

View File

@ -4,7 +4,7 @@
{% load taglinks %}
{% block title %}
Brutaldon - {{ timeline }} timelime
Brutaldon - {{ user.acct }} timelime
{% endblock %}
{% block content %}
@ -33,6 +33,7 @@ Brutaldon - {{ timeline }} timelime
<div class="content">
{{ user.note | relink_toot | strip_html | safe }}
</div>
{% if user.acct != own_username %}
<div class="level">
<div class="level-left">
{% if relationship.requested %}
@ -85,6 +86,7 @@ Brutaldon - {{ timeline }} timelime
{% endif %}
</div>
</div>
{% endif %}
</div>
</div>

View File

@ -48,7 +48,7 @@ urlpatterns = [
path('delete/<int:id>', views.delete, name='delete'),
path('follow/<int:id>', views.follow, name='follow'),
path('block/<int:id>', views.block, name='block'),
path('mute/<int:id>', views.follow, name='mute'),
path('mute/<int:id>', views.mute, name='mute'),
path('search', views.search, name='search'),
path('search_results', views.search_results, name='search_results'),
path('', views.home),

View File

@ -443,16 +443,53 @@ def follow(request, id):
return redirect(user, user_dict.acct)
else:
return render(request, 'main/follow.html',
{"user": user_dict, "relationship": relationship, "confirm_page": True,
'fullbrutalism': fullbrutalism_p(request)})
{"user": user_dict, "relationship": relationship,
"confirm_page": True,
'fullbrutalism': fullbrutalism_p(request)})
@never_cache
def block(request, id):
pass
mastodon = get_mastodon(request)
try:
user_dict = mastodon.account(id)
relationship = mastodon.account_relationships(user_dict.id)[0]
except IndexError:
raise Http404("The user could not be found.")
if request.method == 'POST':
if not request.POST.get('cancel', None):
if relationship.blocking:
mastodon.account_unblock(id)
else:
mastodon.account_block(id)
return redirect(user, user_dict.acct)
else:
return render(request, 'main/block.html',
{"user": user_dict, "relationship": relationship,
"confirm_page": True,
'fullbrutalism': fullbrutalism_p(request)})
@never_cache
def mute(request, id):
pass
mastodon = get_mastodon(request)
try:
user_dict = mastodon.account(id)
relationship = mastodon.account_relationships(user_dict.id)[0]
except IndexError:
raise Http404("The user could not be found.")
if request.method == 'POST':
if not request.POST.get('cancel', None):
if relationship.muting:
mastodon.account_unmute(id)
else:
mastodon.account_mute(id)
return redirect(user, user_dict.acct)
else:
return render(request, 'main/mute.html',
{"user": user_dict, "relationship": relationship,
"confirm_page": True,
'fullbrutalism': fullbrutalism_p(request)})
def search(request):
return render(request, 'main/search.html',