diff options
-rw-r--r-- | core/models/troggle.py | 1 | ||||
-rw-r--r-- | core/views/logbooks.py | 9 | ||||
-rw-r--r-- | templates/personexpedition.html | 2 | ||||
-rw-r--r-- | urls.py | 3 |
4 files changed, 10 insertions, 5 deletions
diff --git a/core/models/troggle.py b/core/models/troggle.py index 0977f84..9175eb6 100644 --- a/core/models/troggle.py +++ b/core/models/troggle.py @@ -95,6 +95,7 @@ class Person(TroggleModel): def get_absolute_url(self): # we do not use URL_ROOT any more. + return reverse("person", kwargs={"slug": self.slug}) return reverse("person", kwargs={"first_name": self.first_name, "last_name": self.last_name}) class Meta: diff --git a/core/views/logbooks.py b/core/views/logbooks.py index 10a9bee..70fd89a 100644 --- a/core/views/logbooks.py +++ b/core/views/logbooks.py @@ -184,11 +184,14 @@ def better_person(request, name=""): def person( request, - first_name="", - last_name="", + slug="" ): - """Original code as it has been for years. Trying to replace with better_person() + """Original code as it has been for years. Trying to replace with better_person """ + + this_person = Person.objects.get(slug=slug) + return render(request, "person.html", {"person": this_person}) + try: this_person = Person.objects.get(first_name=first_name, last_name=last_name) except: diff --git a/templates/personexpedition.html b/templates/personexpedition.html index 2b035eb..af50b7c 100644 --- a/templates/personexpedition.html +++ b/templates/personexpedition.html @@ -20,7 +20,7 @@ {% endfor %} </p> <p>Status of all wallets for <b> -<a href="/wallets/person/{{personexpedition.person.first_name|safe}}{{personexpedition.person.last_name|safe}}">{{personexpedition.person.fullname}}</a> +<a href="/wallets/person/{{personexpedition.person.slug}}">{{personexpedition.person.fullname}}</a> </b> </p> <h3>Table of all trips and surveys aligned by date</h3> @@ -123,7 +123,8 @@ trogglepatterns = [ # Persons - nasty surname recognition logic fails for 19 people! See also Wallets by person below. # path('person/<str:name>', person, name="person"), # This is much more complex than it looks.. - re_path(r'^person/(?P<first_name>[A-Z]*[a-z\-\'&;]*)[^a-zA-Z]*(?P<last_name>[a-z\-\']*[^a-zA-Z]*[\-]*[A-Z]*[a-zA-Z\-&;]*)/?', person, name="person"), + path('person/<slug:slug>', person, name="person"), + #re_path(r'^person/(?P<first_name>[A-Z]*[a-z\-\'&;]*)[^a-zA-Z]*(?P<last_name>[a-z\-\']*[^a-zA-Z]*[\-]*[A-Z]*[a-zA-Z\-&;]*)/?', person, name="person"), #re_path(r'^personexpedition/(?P<first_name>[A-Z]*[a-z&;]*)[^a-zA-Z]*(?P<last_name>[A-Z]*[a-zA-Z&;]*)/(?P<year>\d+)/?$', personexpedition, name="personexpedition"), path('personexpedition/<slug:slug>/<int:year>', personexpedition, name="personexpedition"), |