First pass on a display of users trusting you, added a corresponding right

This commit is contained in:
Nicolas Margulies 2022-04-14 19:07:33 +02:00
parent 18a5b65a1c
commit 4fb0b7d736
4 changed files with 47 additions and 8 deletions

View File

@ -7,7 +7,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
{% block profile_content %} {% block profile_content %}
<div class="card bg-light mb-3"> <div class="card bg-light mb-3">
<h3 class="card-header text-center"> <h3 class="card-header text-center">
{% trans "Note friendships" %} {% trans "Add friends" %}
</h3> </h3>
<div class="card-body"> <div class="card-body">
{% if can_create %} {% if can_create %}
@ -24,7 +24,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
{% render_table trusting %} {% render_table trusting %}
</div> </div>
<div class="alert alert-warning card"> <div class="alert alert-warning card mb-3">
{% blocktrans trimmed %} {% blocktrans trimmed %}
Adding someone as a friend enables them to initiate transactions coming Adding someone as a friend enables them to initiate transactions coming
from your account (while keeping your balance positive). This is from your account (while keeping your balance positive). This is
@ -33,6 +33,13 @@ SPDX-License-Identifier: GPL-3.0-or-later
friends without needing additional rights among them. friends without needing additional rights among them.
{% endblocktrans %} {% endblocktrans %}
</div> </div>
<div class="card bg-light mb-3">
<h3 class="card-header text-center">
{% trans "People trusting you" %}
</h3>
{% render_table trusted_by %}
</div>
{% endblock %} {% endblock %}
{% block extrajavascript %} {% block extrajavascript %}

View File

@ -21,7 +21,7 @@ from django_tables2.views import SingleTableView
from rest_framework.authtoken.models import Token from rest_framework.authtoken.models import Token
from note.models import Alias, NoteClub, NoteUser, Trust from note.models import Alias, NoteClub, NoteUser, Trust
from note.models.transactions import Transaction, SpecialTransaction from note.models.transactions import Transaction, SpecialTransaction
from note.tables import HistoryTable, AliasTable, TrustTable from note.tables import HistoryTable, AliasTable, TrustTable, TrustedTable
from note_kfet.middlewares import _set_current_request from note_kfet.middlewares import _set_current_request
from permission.backends import PermissionBackend from permission.backends import PermissionBackend
from permission.models import Role from permission.models import Role
@ -258,6 +258,8 @@ class ProfileTrustView(ProtectQuerysetMixin, LoginRequiredMixin, DetailView):
note = context['object'].note note = context['object'].note
context["trusting"] = TrustTable( context["trusting"] = TrustTable(
note.trusting.filter(PermissionBackend.filter_queryset(self.request, Trust, "view")).distinct().all()) note.trusting.filter(PermissionBackend.filter_queryset(self.request, Trust, "view")).distinct().all())
context["trusted_by"] = TrustedTable(
note.trusted.filter(PermissionBackend.filter_queryset(self.request, Trust, "view")).distinct().all())
context["can_create"] = PermissionBackend.check_perm(self.request, "note.add_trust", Trust( context["can_create"] = PermissionBackend.check_perm(self.request, "note.add_trust", Trust(
trusting=context["object"].note, trusting=context["object"].note,
trusted=context["object"].note trusted=context["object"].note

View File

@ -159,7 +159,7 @@ class TrustTable(tables.Table):
template_name = 'django_tables2/bootstrap4.html' template_name = 'django_tables2/bootstrap4.html'
show_header = False show_header = False
trusted = tables.Column(attrs={'td': {'class': 'text_center'}}) trusted = tables.Column(attrs={'td': {'class': 'text-center'}})
delete_col = tables.TemplateColumn( delete_col = tables.TemplateColumn(
template_code=DELETE_TEMPLATE, template_code=DELETE_TEMPLATE,
@ -172,6 +172,19 @@ class TrustTable(tables.Table):
else '')}}, else '')}},
verbose_name=_("Delete"),) verbose_name=_("Delete"),)
class TrustedTable(tables.Table):
class Meta:
attrs = {
'class': 'table table condensed table-striped',
'id': 'trusted_table'
}
Model = Trust
fields = ("trusting",)
template_name = "django_tables2/bootstrap4.html"
show_header = False
trusting = tables.Column(attrs={'td': {'class': 'text-center'}})
class AliasTable(tables.Table): class AliasTable(tables.Table):
class Meta: class Meta:

View File

@ -3093,6 +3093,22 @@
"field": "", "field": "",
"permanent": false, "permanent": false,
"description": "Créer un crédit quelconque" "description": "Créer un crédit quelconque"
}
},
{
"model": "permission.permission",
"pk": 198,
"fields": {
"model": [
"note",
"trust"
],
"query": "{\"trusted__noteuser__user\": [\"user\"]}",
"type": "view",
"mask": 1,
"field": "",
"permanent": true,
"description": "Voir ceux nous ayant pour ami, pour toujours"
} }
}, },
{ {
@ -3132,10 +3148,11 @@
187, 187,
188, 188,
189, 189,
190, 190,
191, 191,
195, 195,
196 196,
198
] ]
} }
}, },