From dec530e1b2fe7dbbabb5f2356f810c622290dc05 Mon Sep 17 00:00:00 2001 From: Martin Gummi <martin.gummi@teckids.org> Date: Wed, 17 Jul 2019 01:34:27 +0200 Subject: [PATCH] Add person card --- biscuit/core/templates/core/person_card.html | 19 +++++++++++++++++++ biscuit/core/urls.py | 1 + biscuit/core/views.py | 20 ++++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 biscuit/core/templates/core/person_card.html diff --git a/biscuit/core/templates/core/person_card.html b/biscuit/core/templates/core/person_card.html new file mode 100644 index 000000000..ee6a7715f --- /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 1fac42e09..cde54b7e5 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 e4c0929c4..a62f6a477 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) -- GitLab