--- a/src/hdalab/views/editorial.py Mon Sep 08 13:03:36 2014 +0200
+++ b/src/hdalab/views/editorial.py Mon Sep 08 16:16:14 2014 +0200
@@ -5,45 +5,19 @@
@author: tc
'''
-from django.views.generic import TemplateView
from hdalab.models.renkan import HdalabRenkan
from hdabo.views import Folders, AddOrUpdateFolder, DeleteFolder
+from hdalab.views.profile import BaseRenkanList
import logging
-from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage
-from django.conf import settings
logger = logging.getLogger(__name__)
-class ManageRenkans(TemplateView):
+class ManageRenkans(BaseRenkanList):
template_name = "editorial/manage_renkans.html"
def get_context_data(self, **kwargs):
- context = super(ManageRenkans, self).get_context_data(**kwargs)
-
- sort_param = self.request.GET.get('sort', "date")
- order_param = self.request.GET.get('order', "desc")
- sort = {"date":"renkan__modification_date", "title":"renkan__title", "state":"state", "user":"renkan__owner__username"}.get(sort_param)
- if order_param=="desc":
- order = "-"
- opposite = "asc"
- else:
- order = ""
- opposite = "desc"
-
- rl = HdalabRenkan.objects.exclude(state=HdalabRenkan.EDITION).select_related("renkan", "renkan__owner").order_by(order + sort)
- p = Paginator(rl, settings.RENKANS_PER_PAGE)
- page_nb = self.request.GET.get('page')
- try:
- page = p.page(page_nb)
- except PageNotAnInteger:
- page = p.page(1)
- except EmptyPage:
- page = p.page(p.num_pages)
-
- context.update({"page": page, "sort_param":sort_param, "order_param":order_param, "opposite":opposite})
-
- return context
+ return self.update_context(super(ManageRenkans, self).get_context_data(**kwargs), HdalabRenkan.objects.exclude(state=HdalabRenkan.EDITION).select_related("renkan", "renkan__owner"))
class HdalabFolders(Folders):
--- a/src/hdalab/views/profile.py Mon Sep 08 13:03:36 2014 +0200
+++ b/src/hdalab/views/profile.py Mon Sep 08 16:16:14 2014 +0200
@@ -10,10 +10,12 @@
from django.contrib.auth import REDIRECT_FIELD_NAME, login as auth_login
from django.contrib.auth.forms import AuthenticationForm
from django.contrib.sites.models import get_current_site
+from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage
from django.core.urlresolvers import reverse
from django.db.models import Q
from django.http import HttpResponse, HttpResponseBadRequest
from django.http import HttpResponseRedirect
+from django.http.response import Http404
from django.shortcuts import get_object_or_404, redirect
from django.shortcuts import resolve_url
from django.template.response import TemplateResponse
@@ -34,23 +36,17 @@
import json
import uuid
-
import logging
-from django.http.response import Http404
-from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage
logger = logging.getLogger(__name__)
-class ProfileHome(TemplateView):
+class BaseRenkanList(TemplateView):
- template_name = "profile_home.html"
-
- def get_context_data(self, **kwargs):
- context = super(ProfileHome, self).get_context_data(**kwargs)
+ def update_context(self, context, renkan_queryset):
sort_param = self.request.GET.get('sort', "date")
order_param = self.request.GET.get('order', "desc")
- sort = {"date":"renkan__modification_date", "title":"renkan__title", "state":"state"}.get(sort_param)
+ sort = {"date":"renkan__modification_date", "title":"renkan__title", "state":"state", "user":"renkan__owner__username"}.get(sort_param)
if order_param=="desc":
order = "-"
opposite = "asc"
@@ -58,39 +54,7 @@
order = ""
opposite = "desc"
- rl = HdalabRenkan.objects.select_related("renkan").filter(renkan__owner=self.request.user).order_by(order + sort)
- p = Paginator(rl, settings.RENKANS_PER_PAGE)
- page_nb = self.request.GET.get('page')
- try:
- page = p.page(page_nb)
- except PageNotAnInteger:
- page = p.page(1)
- except EmptyPage:
- page = p.page(p.num_pages)
-
- context.update({"page": page, "sort_param":sort_param, "order_param":order_param, "opposite":opposite})
- return context
-
-
-class RenkanPublicList(TemplateView):
-
- template_name = "renkan_list.html"
-
- def get_context_data(self, **kwargs):
- context = super(RenkanPublicList, self).get_context_data(**kwargs)
- #context['renkan_list'] = HdalabRenkan.objects.select_related("renkan").filter(state=HdalabRenkan.PUBLISHED).order_by("-renkan__modification_date")
-
- sort_param = self.request.GET.get('sort', "date")
- order_param = self.request.GET.get('order', "desc")
- sort = {"date":"renkan__modification_date", "title":"renkan__title", "state":"state"}.get(sort_param)
- if order_param=="desc":
- order = "-"
- opposite = "asc"
- else:
- order = ""
- opposite = "desc"
-
- rl = HdalabRenkan.objects.select_related("renkan").filter(state=HdalabRenkan.PUBLISHED).order_by(order + sort)
+ rl = renkan_queryset.order_by(order + sort)
p = Paginator(rl, settings.RENKANS_PER_PAGE)
page_nb = self.request.GET.get('page')
try:
@@ -106,6 +70,23 @@
+class ProfileHome(BaseRenkanList):
+
+ template_name = "profile_home.html"
+
+ def get_context_data(self, **kwargs):
+ return self.update_context( super(ProfileHome, self).get_context_data(**kwargs), HdalabRenkan.objects.select_related("renkan").filter(renkan__owner=self.request.user) )
+
+
+class RenkanPublicList(BaseRenkanList):
+
+ template_name = "renkan_list.html"
+
+ def get_context_data(self, **kwargs):
+ return self.update_context( super(RenkanPublicList, self).get_context_data(**kwargs), HdalabRenkan.objects.select_related("renkan").filter(state=HdalabRenkan.PUBLISHED) )
+
+
+
class RenkanNew(View):
def get(self, request):