feat(people): Add people list view

This commit is contained in:
James Graham
2020-02-18 15:05:30 +00:00
parent 4b2abd5d6c
commit e8416bc779
4 changed files with 51 additions and 4 deletions

View File

@@ -108,7 +108,7 @@
{# Global banner if config.NOTICE_TEXT is set using Constance #} {# Global banner if config.NOTICE_TEXT is set using Constance #}
{% if config.NOTICE_TEXT %} {% if config.NOTICE_TEXT %}
<div class="alert {{ config.NOTICE_CLASS }} rounded-0 mb-0" role="alert"> <div class="alert {{ config.NOTICE_CLASS }} rounded-0 mb-3" role="alert">
<h4 class="alert-heading text-center mb-0">{{ config.NOTICE_TEXT }}</h4> <h4 class="alert-heading text-center mb-0">{{ config.NOTICE_TEXT }}</h4>
</div> </div>
{% endif %} {% endif %}

View File

@@ -0,0 +1,37 @@
{% extends 'base.html' %}
{% block content %}
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item active" aria-current="page">People</li>
</ol>
</nav>
<hr>
<table class="table table-borderless">
<thead>
<tr>
<th>Name</th>
</tr>
</thead>
<tbody>
{% for person in person_list.all %}
<tr>
<td>{{ person }}</td>
<td>
<a class="btn btn-sm btn-info"
href="{% url 'people:person.detail' pk=person.pk %}">Profile</a>
</td>
</tr>
{% empty %}
<tr>
<td>No records</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}

View File

@@ -10,6 +10,10 @@ urlpatterns = [
views.ProfileView.as_view(), views.ProfileView.as_view(),
name='person.profile'), name='person.profile'),
path('people',
views.PersonListView.as_view(),
name='person.list'),
path('people/<int:pk>', path('people/<int:pk>',
views.ProfileView.as_view(), views.ProfileView.as_view(),
name='person.detail'), name='person.detail'),

View File

@@ -2,18 +2,25 @@
Views for displaying or manipulating models in the 'people' app. Views for displaying or manipulating models in the 'people' app.
""" """
from django.views.generic import DetailView from django.views.generic import DetailView, ListView
from . import models from . import models
class PersonListView(ListView):
"""
View displaying a list of :class:`Person` objects - searchable.
"""
model = models.Person
template_name = 'people/person/list.html'
class ProfileView(DetailView): class ProfileView(DetailView):
""" """
View displaying the profile of a :class:`Person` - who may be a user. View displaying the profile of a :class:`Person` - who may be a user.
""" """
model = models.Person model = models.Person
template_name = 'people/person/detail.html' template_name = 'people/person/detail.html'
context_object_name = 'person'
class RelationshipDetailView(DetailView): class RelationshipDetailView(DetailView):
@@ -22,4 +29,3 @@ class RelationshipDetailView(DetailView):
""" """
model = models.Relationship model = models.Relationship
template_name = 'people/relationship/detail.html' template_name = 'people/relationship/detail.html'
context_object_name = 'relationship'