SciPost Code Repository

Skip to content
Snippets Groups Projects
Commit dfd6d81d authored by Jean-Sébastien Caux's avatar Jean-Sébastien Caux
Browse files

Add Contact detail view (for admin only)

parent 4589b120
No related branches found
No related tags found
No related merge requests found
{% extends 'organizations/base.html' %}
{% load bootstrap %}
{% block pagetitle %}: Contact details{% endblock pagetitle %}
{% block breadcrumb_items %}
{{ block.super }}
<span class="breadcrumb-item">Contacts</span>
<span class="breadcrumb-item">{{ contact }}</span>
{% endblock %}
{% block content %}
<div class="row">
<div class="col-12">
<h3 class="highlight">Contact details</h3>
<table class="table">
<tr>
<td>Name</td>
<td>{{ contact.user.last_name }}, {{ contact.get_title_display }} {{ contact.user.first_name }}</td>
</tr>
<tr>
<td>Email</td>
<td>{{ contact.user.email }}</td>
</tr>
<tr>
<td>Account active?</td>
<td>{% if contact.user.is_active %}<i class="fa fa-check-circle text-success"></i>{% else %}<i class="fa fa-times-circle text-danger"></i>{% endif %}</td>
</tr>
<tr>
<td>Account created</td>
<td>{{ contact.user.date_joined }}</td>
</tr>
<tr>
<td>Last login</td>
<td>{{ contact.user.last_login }}</td>
</tr>
</table>
<h4>Roles:</h4>
<table class="table">
<tr>
<th>Organization</th>
<th>Kind</th>
<th>Date from</th>
<th>Date until</th>
<th>Actions</th>
</tr>
{% for contactrole in contact.roles.all %}
<tr>
<td><a href="{{ contactrole.organization.get_absolute_url }}">{{ contactrole.organization }}</a></td>
<td>{{ contactrole.get_kind_display }}</td>
<td>{{ contactrole.date_from|date:"Y-m-d" }}</td>
<td>{{ contactrole.date_until|date:"Y-m-d" }}</td>
<td>
<ul class="list-unstyled">
{% if perms.scipost.can_manage_organizations %}
<li><a href="{% url 'organizations:contactrole_update' pk=contactrole.id %}"><span class="text-warning">Update</span></a></li>
<li><a href="{% url 'organizations:contactrole_delete' pk=contactrole.id %}"><span class="text-danger">Delete</span></a></li>
{% endif %}
</ul>
</td>
</tr>
{% endfor %}
</table>
</div>
</div>
{% endblock content %}
...@@ -189,7 +189,7 @@ $(document).ready(function($) { ...@@ -189,7 +189,7 @@ $(document).ready(function($) {
<tbody> <tbody>
{% for contact in contacts %} {% for contact in contacts %}
<tr> <tr>
<td>{{ contact }}</td> <td><a href="{% url 'organizations:contact_details' pk=contact.id %}">{{ contact }}</a></td>
<td> <td>
<ul class="list-group list-group-flush"> <ul class="list-group list-group-flush">
{% for role in contact.roles.all %} {% for role in contact.roles.all %}
......
...@@ -98,6 +98,10 @@ urlpatterns = [ ...@@ -98,6 +98,10 @@ urlpatterns = [
views.dashboard, views.dashboard,
name='dashboard' name='dashboard'
), ),
url(r'^contact/(?P<pk>[0-9]+)/$',
views.ContactDetailView.as_view(),
name='contact_details'
),
url( url(
r'^contactrole/(?P<pk>[0-9]+)/update/$', r'^contactrole/(?P<pk>[0-9]+)/update/$',
views.ContactRoleUpdateView.as_view(), views.ContactRoleUpdateView.as_view(),
......
...@@ -330,6 +330,14 @@ def dashboard(request): ...@@ -330,6 +330,14 @@ def dashboard(request):
return render(request, 'organizations/dashboard.html', context) return render(request, 'organizations/dashboard.html', context)
class ContactDetailView(PermissionsMixin, DetailView):
"""
View details of a Contact. Accessible to Admin.
"""
permission_required = 'scipost.can_manage_organizations'
model = Contact
class ContactRoleUpdateView(UserPassesTestMixin, UpdateView): class ContactRoleUpdateView(UserPassesTestMixin, UpdateView):
""" """
Update a ContactRole. Update a ContactRole.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment