old_contents: # -*- coding: utf-8 -*-
  from __future__ import absolute_import, unicode_literals
  
  from django.contrib.auth.mixins import LoginRequiredMixin
  from django.core.urlresolvers import reverse
  from django.views.generic import DetailView, ListView, RedirectView, UpdateView
  
  from presentation.models import Presentation
  from .models import User
  
  
  class UserDetailView(LoginRequiredMixin, DetailView):
      model = User
      # These next two lines tell the view to index lookups by username
      slug_field = 'username'
      slug_url_kwarg = 'username'
  
      def get_context_data(self, **kwargs):
          context = super(UserDetailView, self).get_context_data(**kwargs)
          username = self.kwargs['username']
          if username == self.request.user.username:
              context['presentations'] = Presentation.objects.authored_by(username)[:9]
          else:
              context['presentations'] = Presentation.objects.authored_by(username).public()[:9]
          # TODO implement like presentation
          # context['like_presentation_list'] =
  
          return context
  
  
  class UserRedirectView(LoginRequiredMixin, RedirectView):
      permanent = False
  
      def get_redirect_url(self):
          return reverse('users:detail',
                         kwargs={'username': self.request.user.username})
  
  
  class UserUpdateView(LoginRequiredMixin, UpdateView):
  
      fields = ['name', ]
  
      # we already imported User in the view code above, remember?
      model = User
  
      # send the user back to their own page after a successful update
      def get_success_url(self):
          return reverse('users:detail',
                         kwargs={'username': self.request.user.username})
  
      def get_object(self):
          # Only get the User record for the user making the request
          return User.objects.get(username=self.request.user.username)
  
  
  class UserListView(LoginRequiredMixin, ListView):
      model = User
      # These next two lines tell the view to index lookups by username
      slug_field = 'username'
      slug_url_kwarg = 'username'
  
new_contents: # -*- coding: utf-8 -*-
  from __future__ import absolute_import, unicode_literals
  
  from django.contrib.auth.mixins import LoginRequiredMixin
  from django.core.urlresolvers import reverse
  from django.views.generic import DetailView, ListView, RedirectView, UpdateView
  
  from presentation.models import Presentation
  from .models import User
  
  
  class UserDetailView(LoginRequiredMixin, DetailView):
      model = User
      # These next two lines tell the view to index lookups by username
      slug_field = 'username'
      slug_url_kwarg = 'username'
  
      def get_context_data(self, **kwargs):
          context = super(UserDetailView, self).get_context_data(**kwargs)
          username = self.kwargs['username']
          if username == self.request.user.username:
              context['presentations'] = Presentation.objects.authored_by(username).order_by('-pk')[:9]
          else:
              context['presentations'] = Presentation.objects.authored_by(username).public().order_by('-pk')[:9]
          # TODO implement like presentation
          # context['like_presentation_list'] =
  
          return context
  
  
  class UserRedirectView(LoginRequiredMixin, RedirectView):
      permanent = False
  
      def get_redirect_url(self):
          return reverse('users:detail',
                         kwargs={'username': self.request.user.username})
  
  
  class UserUpdateView(LoginRequiredMixin, UpdateView):
  
      fields = ['name', ]
  
      # we already imported User in the view code above, remember?
      model = User
  
      # send the user back to their own page after a successful update
      def get_success_url(self):
          return reverse('users:detail',
                         kwargs={'username': self.request.user.username})
  
      def get_object(self):
          # Only get the User record for the user making the request
          return User.objects.get(username=self.request.user.username)
  
  
  class UserListView(LoginRequiredMixin, ListView):
      model = User
      # These next two lines tell the view to index lookups by username
      slug_field = 'username'
      slug_url_kwarg = 'username'
  
subject: Sort latest presentations