Added fixes for various profile page problems found by the test crawler.

- Legacy-Id: 11321
This commit is contained in:
Henrik Levkowetz 2016-06-11 21:54:14 +00:00
parent e3cbabaf9b
commit 8ba02dfd2c
3 changed files with 31 additions and 16 deletions

View file

@ -4,5 +4,5 @@ from ietf.person import views, ajax
urlpatterns = patterns('',
(r'^search/(?P<model_name>(person|email))/$', "ietf.person.views.ajax_select2_search", None, 'ajax_select2_search_person_email'),
(r'^(?P<personid>[a-z0-9]+).json$', ajax.person_json),
(ur'^(?P<email_or_name>[\w\s]+)', views.profile),
(ur'^(?P<email_or_name>[-\w\s\']+)', views.profile),
)

View file

@ -1,8 +1,10 @@
from django.db.models import Q
from django.http import HttpResponse
from django.http import HttpResponse, Http404
from django.shortcuts import render, get_object_or_404
import debug # pyflakes:ignore
from ietf.person.models import Email, Person, Alias
from ietf.person.fields import select2_id_name_json
@ -55,5 +57,8 @@ def profile(request, email_or_name):
if '@' in email_or_name:
person = get_object_or_404(Email, address=email_or_name).person
else:
person = get_object_or_404(Alias, name=email_or_name).person
return render(request, 'person/profile.html', {'person': person})
aliases = Alias.objects.filter(name=email_or_name)
persons = set([ a.person for a in aliases ])
if not persons:
raise Http404
return render(request, 'person/profile.html', {'persons': persons})

View file

@ -6,19 +6,29 @@
{% block title %}Profile for {{ person }}{% endblock %}
{% block content %}
{% origin %}
<h1>{{ person.name }}</h1>
<div class="bio-text">
{% if person.photo %}
<a href="{{person.photo.url}}">
<img class="bio-photo" src="{{ person.photo.url }}" alt="Photo of {{ person }}" />
</a>
{% else %}
<img class="bio-photo" src="{{ MEDIA_URL }}photos/nopictureavailable.jpg" alt="No photo available"/>
{% endif %}
{{ person.biography | apply_markup:"restructuredtext" }}
{% if persons|length > 1 %}
<div class="col-md-12">
<h4>Duplicate person records found. This is an error. Showing all:</h4>
<hr>
</div>
{% endif %}
{% for person in persons %}
<div class="col-md-12">
{% if not forloop.first %}<hr>{% endif %}
<h1>{{ person.name }}</h1>
<div class="bio-text">
{% if person.photo %}
<a href="{{person.photo.url}}">
<img class="bio-photo" src="{{ person.photo.url }}" alt="Photo of {{ person }}" />
</a>
{% else %}
<img class="bio-photo" src="{{ MEDIA_URL }}photos/nopictureavailable.jpg" alt="No photo available"/>
{% endif %}
{{ person.biography | apply_markup:"restructuredtext" }}
</div>
</div>
{% endfor %}
{% endblock %}