Added DID and Services tables
This commit is contained in:
parent
fa3eeec327
commit
b143e5749c
|
@ -1,7 +1,7 @@
|
||||||
import django_tables2 as tables
|
import django_tables2 as tables
|
||||||
from django.utils.html import format_html
|
from django.utils.html import format_html
|
||||||
|
|
||||||
from idhub.models import Rol, Event
|
from idhub.models import Rol, Event, Service, VerificableCredential, DID
|
||||||
from idhub_auth.models import User
|
from idhub_auth.models import User
|
||||||
|
|
||||||
|
|
||||||
|
@ -95,8 +95,107 @@ class RolesTable(tables.Table):
|
||||||
fields = ("name", "description")
|
fields = ("name", "description")
|
||||||
|
|
||||||
|
|
||||||
|
class ServicesTable(tables.Table):
|
||||||
|
domain = tables.Column(verbose_name="Service")
|
||||||
|
role = tables.Column(empty_values=())
|
||||||
|
edit_service = ButtonColumn(
|
||||||
|
linkify={
|
||||||
|
"viewname": "idhub:admin_service_edit",
|
||||||
|
"args": [tables.A("pk")]
|
||||||
|
},
|
||||||
|
orderable=False
|
||||||
|
)
|
||||||
|
|
||||||
|
delete_service = ButtonColumn(
|
||||||
|
linkify={
|
||||||
|
"viewname": "idhub:admin_service_del",
|
||||||
|
"args": [tables.A("pk")]
|
||||||
|
},
|
||||||
|
orderable=False
|
||||||
|
)
|
||||||
|
|
||||||
|
def render_role(self, record):
|
||||||
|
return record.get_roles()
|
||||||
|
|
||||||
|
def render_edit_service(self):
|
||||||
|
return format_html('<i class="bi bi-pencil-square"></i>')
|
||||||
|
|
||||||
|
def render_delete_service(self):
|
||||||
|
return format_html('<i class="bi bi-trash">')
|
||||||
|
|
||||||
|
def order_role(self, queryset, is_descending):
|
||||||
|
queryset = queryset.order_by(
|
||||||
|
("-" if is_descending else "") + "rol"
|
||||||
|
)
|
||||||
|
|
||||||
|
return (queryset, True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = Service
|
||||||
|
template_name = "idhub/custom_table.html"
|
||||||
|
fields = ("domain", "description", "role",
|
||||||
|
"edit_service", "delete_service")
|
||||||
|
|
||||||
|
|
||||||
class DashboardTable(tables.Table):
|
class DashboardTable(tables.Table):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Event
|
model = Event
|
||||||
template_name = "idhub/custom_table.html"
|
template_name = "idhub/custom_table.html"
|
||||||
fields = ("type", "message", "created")
|
fields = ("type", "message", "created")
|
||||||
|
|
||||||
|
|
||||||
|
class CredentialTable(tables.Table):
|
||||||
|
type = tables.Column(empty_values=())
|
||||||
|
details = tables.Column(empty_values=())
|
||||||
|
issued_on = tables.Column(verbose_name="Issued")
|
||||||
|
view_credential = ButtonColumn(
|
||||||
|
linkify={
|
||||||
|
"viewname": "idhub:admin_credential",
|
||||||
|
"args": [tables.A("pk")]
|
||||||
|
},
|
||||||
|
orderable=False
|
||||||
|
)
|
||||||
|
|
||||||
|
def render_type(self, record):
|
||||||
|
return record.type()
|
||||||
|
|
||||||
|
def render_details(self, record):
|
||||||
|
return record.description()
|
||||||
|
|
||||||
|
def render_view_credential(self):
|
||||||
|
return format_html('<i class="bi bi-eye"></i>')
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = VerificableCredential
|
||||||
|
template_name = "idhub/custom_table.html"
|
||||||
|
fields = ("type", "details", "issued_on", "status", "user")
|
||||||
|
|
||||||
|
|
||||||
|
class DIDTable(tables.Table):
|
||||||
|
created_at = tables.Column(verbose_name="Date")
|
||||||
|
did = tables.Column(verbose_name="ID")
|
||||||
|
edit_did = ButtonColumn(
|
||||||
|
linkify={
|
||||||
|
"viewname": "idhub:admin_dids_edit",
|
||||||
|
"args": [tables.A("pk")]
|
||||||
|
},
|
||||||
|
orderable=False,
|
||||||
|
verbose_name="Edit DID"
|
||||||
|
)
|
||||||
|
delete_template_code = """<a class="text-danger"
|
||||||
|
href="javascript:void()"
|
||||||
|
data-bs-toggle="modal"
|
||||||
|
data-bs-target="#confirm-delete-{{ record.id }}"
|
||||||
|
title="Remove"
|
||||||
|
><i class="bi bi-trash"></i></a>"""
|
||||||
|
delete_did = tables.TemplateColumn(template_code=delete_template_code,
|
||||||
|
orderable=False,
|
||||||
|
verbose_name="Delete DID")
|
||||||
|
|
||||||
|
def render_edit_did(self):
|
||||||
|
return format_html('<i class="bi bi-pencil-square"></i>')
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = DID
|
||||||
|
template_name = "idhub/custom_table.html"
|
||||||
|
fields = ("created_at", "label", "did", "edit_did", "delete_did")
|
||||||
|
|
|
@ -34,7 +34,10 @@ from idhub.admin.forms import (
|
||||||
from idhub.admin.tables import (
|
from idhub.admin.tables import (
|
||||||
DashboardTable,
|
DashboardTable,
|
||||||
UserTable,
|
UserTable,
|
||||||
RolesTable
|
RolesTable,
|
||||||
|
ServicesTable,
|
||||||
|
CredentialTable,
|
||||||
|
DIDTable
|
||||||
)
|
)
|
||||||
from idhub.models import (
|
from idhub.models import (
|
||||||
DID,
|
DID,
|
||||||
|
@ -473,17 +476,20 @@ class RolDeleteView(AccessControl):
|
||||||
return redirect('idhub:admin_roles')
|
return redirect('idhub:admin_roles')
|
||||||
|
|
||||||
|
|
||||||
class ServicesView(AccessControl):
|
class ServicesView(AccessControl, SingleTableView):
|
||||||
template_name = "idhub/admin/services.html"
|
template_name = "idhub/admin/services.html"
|
||||||
|
table_class = ServicesTable
|
||||||
subtitle = _('Manage services')
|
subtitle = _('Manage services')
|
||||||
icon = ''
|
icon = ''
|
||||||
|
model = Service
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
context = super().get_context_data(**kwargs)
|
queryset = kwargs.pop('object_list', None)
|
||||||
context.update({
|
if queryset is None:
|
||||||
'services': Service.objects,
|
self.object_list = self.model.objects.all()
|
||||||
})
|
|
||||||
return context
|
return super().get_context_data(**kwargs)
|
||||||
|
|
||||||
|
|
||||||
class ServiceRegisterView(AccessControl, CreateView):
|
class ServiceRegisterView(AccessControl, CreateView):
|
||||||
template_name = "idhub/admin/service_register.html"
|
template_name = "idhub/admin/service_register.html"
|
||||||
|
@ -546,10 +552,12 @@ class ServiceDeleteView(AccessControl):
|
||||||
return redirect('idhub:admin_services')
|
return redirect('idhub:admin_services')
|
||||||
|
|
||||||
|
|
||||||
class CredentialsView(Credentials):
|
class CredentialsView(Credentials, SingleTableView):
|
||||||
template_name = "idhub/admin/credentials.html"
|
template_name = "idhub/admin/credentials.html"
|
||||||
|
table_class = CredentialTable
|
||||||
subtitle = _('View credentials')
|
subtitle = _('View credentials')
|
||||||
icon = ''
|
icon = ''
|
||||||
|
model = VerificableCredential
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
context = super().get_context_data(**kwargs)
|
context = super().get_context_data(**kwargs)
|
||||||
|
@ -632,19 +640,26 @@ class DeleteCredentialsView(Credentials):
|
||||||
return redirect(self.success_url)
|
return redirect(self.success_url)
|
||||||
|
|
||||||
|
|
||||||
class DidsView(Credentials):
|
class DidsView(Credentials, SingleTableView):
|
||||||
template_name = "idhub/admin/dids.html"
|
template_name = "idhub/admin/dids.html"
|
||||||
|
table_class = DIDTable
|
||||||
subtitle = _('Manage identities (DID)')
|
subtitle = _('Manage identities (DID)')
|
||||||
icon = 'bi bi-patch-check-fill'
|
icon = 'bi bi-patch-check-fill'
|
||||||
wallet = True
|
wallet = True
|
||||||
|
model = DID
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
|
queryset = kwargs.pop('object_list', None)
|
||||||
|
if queryset is None:
|
||||||
|
self.object_list = self.model.objects.all()
|
||||||
|
|
||||||
context = super().get_context_data(**kwargs)
|
context = super().get_context_data(**kwargs)
|
||||||
context.update({
|
context.update({
|
||||||
'dids': DID.objects.filter(user=self.request.user),
|
'dids': DID.objects.filter(user=self.request.user),
|
||||||
})
|
})
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
|
||||||
class DidRegisterView(Credentials, CreateView):
|
class DidRegisterView(Credentials, CreateView):
|
||||||
template_name = "idhub/admin/did_register.html"
|
template_name = "idhub/admin/did_register.html"
|
||||||
subtitle = _('Add a new organizational identity (DID)')
|
subtitle = _('Add a new organizational identity (DID)')
|
||||||
|
@ -900,4 +915,3 @@ class ImportAddView(ImportExport, FormView):
|
||||||
else:
|
else:
|
||||||
messages.error(self.request, _("Error importing the file!"))
|
messages.error(self.request, _("Error importing the file!"))
|
||||||
return super().form_valid(form)
|
return super().form_valid(form)
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{% extends "idhub/base_admin.html" %}
|
{% extends "idhub/base_admin.html" %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
|
{% load render_table from django_tables2 %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h3>
|
<h3>
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{% extends "idhub/base_admin.html" %}
|
{% extends "idhub/base_admin.html" %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
|
{% load render_table from django_tables2 %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h3>
|
<h3>
|
||||||
|
@ -8,6 +9,8 @@
|
||||||
</h3>
|
</h3>
|
||||||
<div class="row mt-5">
|
<div class="row mt-5">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
|
{% render_table table %}
|
||||||
|
{% comment %}
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-striped table-sm">
|
<table class="table table-striped table-sm">
|
||||||
<thead>
|
<thead>
|
||||||
|
@ -31,6 +34,7 @@
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
{% endcomment %}
|
||||||
<div class="form-actions-no-box">
|
<div class="form-actions-no-box">
|
||||||
<a class="btn btn-green-admin" href="{% url 'idhub:admin_dids_new' %}">{% translate "Add identity" %} <i class="bi bi-plus"></i></a>
|
<a class="btn btn-green-admin" href="{% url 'idhub:admin_dids_new' %}">{% translate "Add identity" %} <i class="bi bi-plus"></i></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{% extends "idhub/base_admin.html" %}
|
{% extends "idhub/base_admin.html" %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
|
{% load render_table from django_tables2 %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h3>
|
<h3>
|
||||||
|
@ -8,33 +9,10 @@
|
||||||
</h3>
|
</h3>
|
||||||
<div class="row mt-5">
|
<div class="row mt-5">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<div class="table-responsive">
|
{% render_table table %}
|
||||||
<table class="table table-striped table-sm">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th scope="col"><button type="button" class="btn btn-grey border border-dark">{% trans 'Service' %}</button></th>
|
|
||||||
<th scope="col"><button type="button" class="btn btn-grey border border-dark">{% trans 'Description' %}</button></th>
|
|
||||||
<th scope="col"><button type="button" class="btn btn-grey border border-dark">{% trans 'Role' %}</button></th>
|
|
||||||
<th scope="col"></th>
|
|
||||||
<th scope="col"></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for service in services.all %}
|
|
||||||
<tr>
|
|
||||||
<td>{{ service.domain }}</td>
|
|
||||||
<td>{{ service.description }}</td>
|
|
||||||
<td>{{ service.get_roles }}</td>
|
|
||||||
<td><a href="{% url 'idhub:admin_service_edit' service.id %}" title="{% trans 'Edit' %}"><i class="bi bi-pencil-square"></i></a></td>
|
|
||||||
<td><a class="text-danger" href="{% url 'idhub:admin_service_del' service.id %}" title="{% trans 'Delete' %}"><i class="bi bi-trash"></i></a></td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<div class="form-actions-no-box">
|
<div class="form-actions-no-box">
|
||||||
<a class="btn btn-green-admin" href="{% url 'idhub:admin_service_new' %}">{% translate "Add service" %} <i class="bi bi-plus"></i></a>
|
<a class="btn btn-green-admin" href="{% url 'idhub:admin_service_new' %}">{% translate "Add service" %} <i class="bi bi-plus"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
Loading…
Reference in New Issue