diff --git a/biscuit/core/templates/core/person_card.html b/biscuit/core/templates/core/person_card.html new file mode 100644 index 0000000000000000000000000000000000000000..ee6a7715f796cd132435be38947ffdc973740c3d --- /dev/null +++ b/biscuit/core/templates/core/person_card.html @@ -0,0 +1,19 @@ +{% load bootstrap4 staticfiles i18n %} +<div class="card mb-3"> + <div class="row no-gutters"> + <div class="col-md-4"> + {% if person.jpeg_photo_url %} + <img class="person-img" src="{{ person.jpeg_photo_url }}" alt="{{ person.first_name }} {{ person.last_name }}" /> + {% else %} + <img class="person-img" src="{% static 'img/fallback.png' %}" alt="{{ person.first_name }} {{ person.last_name }}" /> + {% endif %} + </div> + <div class="col-md-8"> + <h3 class="card-header">{{ person.first_name }} {{ person.last_name }}</h3> + <div class="card-body"> + <h5 class="card-text">!Group</h5> + <p class="card-text">{{ person.date_of_birth|date }}</p> + </div> + </div> + </div> +</div> diff --git a/biscuit/core/urls.py b/biscuit/core/urls.py index 1fac42e0994d5ae949178446c18d85a717e213f2..cde54b7e54b1bd3dec3b4ca10275023518aa4e1c 100644 --- a/biscuit/core/urls.py +++ b/biscuit/core/urls.py @@ -10,6 +10,7 @@ urlpatterns = [ path('admin/', admin.site.urls), path('accounts/', include('django.contrib.auth.urls')), path('persons', views.persons, name='persons'), + path('person_card/<int:id>', views.person_card, name='person_card_by_id'), path('', views.index, name='index'), ] diff --git a/biscuit/core/views.py b/biscuit/core/views.py index e4c0929c431a37fea0ec3136363a02c58b1bde69..a62f6a4777d57329be466a07979a35e4e71f9008 100644 --- a/biscuit/core/views.py +++ b/biscuit/core/views.py @@ -1,6 +1,7 @@ from django.contrib.auth.decorators import login_required from django.shortcuts import render from django_tables2 import RequestConfig +from django.http import Http404 from .models import Person from .tables import PersonsTable @@ -21,3 +22,22 @@ def persons(request): context['persons_table'] = persons_table return render(request, 'core/persons.html', context) + +@login_required +def person_card(request, id=None): + context = {} + + # Raise Http404 if now id is given + if id is None: + raise Http404 + + # Get person and check access + try: + person = Person.objects.get(id=id) + except ObjectDoesNotExist as e: + # Turn not-found object into a 404 error + raise Http404 from e + + context['person'] = person + + return render(request, 'core/person_card.html', context)