From 23091755d3a809c328f86eed4646e5ff40561a07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Fri, 30 Jun 2017 13:25:31 +0200 Subject: [PATCH] first user view --- .../editor/templates/editor/fragment_nav.html | 2 +- src/c3nav/editor/templates/editor/user.html | 22 ++++++++++++++++++ src/c3nav/editor/urls.py | 2 ++ src/c3nav/editor/views/users.py | 23 +++++++++++++++++++ 4 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 src/c3nav/editor/templates/editor/user.html create mode 100644 src/c3nav/editor/views/users.py diff --git a/src/c3nav/editor/templates/editor/fragment_nav.html b/src/c3nav/editor/templates/editor/fragment_nav.html index 3ca4157c..33ab73fd 100644 --- a/src/c3nav/editor/templates/editor/fragment_nav.html +++ b/src/c3nav/editor/templates/editor/fragment_nav.html @@ -4,7 +4,7 @@
  • {{ request.changeset.count_display }}
  • {% if request.user.is_authenticated %}
  • - {{ request.user.username }} + {{ request.user.username }}
  • {% endif %}
  • diff --git a/src/c3nav/editor/templates/editor/user.html b/src/c3nav/editor/templates/editor/user.html new file mode 100644 index 00000000..cbc6fce8 --- /dev/null +++ b/src/c3nav/editor/templates/editor/user.html @@ -0,0 +1,22 @@ +{% load i18n %} + +{% include 'editor/fragment_modal_close.html' %} +

    + {{ user.username }} + {% if request.user == user %} + {% trans "That\'s you!" %} + {% endif %} +

    + +

    {% trans 'Change sets' %}

    + + {% for changeset in changesets %} + + + + + {% endfor %} +
    #{{ changeset.pk }}: {% if changeset.title %}{{ changeset.title }}{% else %}{% trans '(no title)' %}{% endif %}{% trans 'Details' %}
    + + + diff --git a/src/c3nav/editor/urls.py b/src/c3nav/editor/urls.py index b2d94fc4..5fefc654 100644 --- a/src/c3nav/editor/urls.py +++ b/src/c3nav/editor/urls.py @@ -4,6 +4,7 @@ from django.conf.urls import url from c3nav.editor.views.changes import changeset_detail, changeset_edit from c3nav.editor.views.edit import edit, level_detail, list_objects, main_index, space_detail from c3nav.editor.views.login import login_view, logout_view +from c3nav.editor.views.users import user_detail def add_editor_urls(model_name, parent_model_name=None, with_list=True, explicit_edit=False): @@ -38,6 +39,7 @@ urlpatterns = [ kwargs={'model': 'Level'}), url(r'^changesets/(?P[0-9]+)/$', changeset_detail, name='editor.changesets.detail'), url(r'^changesets/(?P[0-9]+)/edit$', changeset_edit, name='editor.changesets.edit'), + url(r'^users/(?P[0-9]+)/$', user_detail, name='editor.users.detail'), url(r'^login$', login_view, name='editor.login'), url(r'^logout$', logout_view, name='editor.logout'), ] diff --git a/src/c3nav/editor/views/users.py b/src/c3nav/editor/views/users.py new file mode 100644 index 00000000..9eb3955a --- /dev/null +++ b/src/c3nav/editor/views/users.py @@ -0,0 +1,23 @@ +from django.contrib.auth.models import User +from django.db.models import Max +from django.shortcuts import get_object_or_404, render + +from c3nav.editor.models import ChangeSet +from c3nav.editor.views.base import sidebar_view + + +@sidebar_view +def user_detail(request, pk): + user = request.user + if str(pk) != str(user.pk): + user = get_object_or_404(User, pk=pk) + + qs = ChangeSet.objects.filter(author=user) + qs = qs.annotate(last_change_cache=Max('changed_objects_set__last_update')).order_by('-last_change_cache') + + ctx = { + 'user': user, + 'changesets': qs, + } + + return render(request, 'editor/user.html', ctx)