bunch of work; separate publications from programs, start to work on website
This commit is contained in:
@ -1,3 +1,77 @@
|
||||
from django.shortcuts import render
|
||||
from django.utils import timezone
|
||||
from django.views.generic import ListView
|
||||
from django.views.generic import DetailView
|
||||
from django.core import serializers
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
from website.models import *
|
||||
|
||||
|
||||
class PostListView (ListView):
|
||||
class Query:
|
||||
"""
|
||||
Request availables parameters
|
||||
"""
|
||||
exclude = None
|
||||
order = 'desc'
|
||||
reverse = False
|
||||
format = 'normal'
|
||||
|
||||
def __init__ (self, query):
|
||||
my_class = self.__class__
|
||||
if type(query) is my_class:
|
||||
self.__dict__.update(query.__dict__)
|
||||
return
|
||||
|
||||
if type(query) is not dict:
|
||||
query = query.__dict__
|
||||
|
||||
self.__dict__ = { k: v for k,v in query.items() }
|
||||
|
||||
template_name = 'website/list.html'
|
||||
allow_empty = True
|
||||
|
||||
query = None
|
||||
format = None
|
||||
fields = [ 'date', 'time', 'image', 'title', 'content' ]
|
||||
|
||||
route = None
|
||||
model = None
|
||||
|
||||
class Meta:
|
||||
# FIXME
|
||||
formats = ['normal', 'embed', 'json', 'yaml', 'xml']
|
||||
|
||||
def __init__ (self, *args, **kwargs):
|
||||
super(PostListView, self).__init__(*args, **kwargs)
|
||||
|
||||
if self.query:
|
||||
self.query = Query(self.query)
|
||||
|
||||
def get_queryset (self):
|
||||
qs = self.route.get_queryset(self.request, **self.kwargs)
|
||||
qs = qs.filter(public = True)
|
||||
|
||||
query = self.query or PostListView.Query(self.request.GET)
|
||||
if query.exclude:
|
||||
qs = qs.exclude(id = int(exclude))
|
||||
|
||||
if query.order == 'asc':
|
||||
qs.order_by('date', 'id')
|
||||
else:
|
||||
qs.order_by('-date', '-id')
|
||||
|
||||
return qs
|
||||
|
||||
|
||||
def get_context_data (self, **kwargs):
|
||||
context = super(PostListView, self).get_context_data(**kwargs)
|
||||
context.update({
|
||||
'list': self
|
||||
})
|
||||
|
||||
return context
|
||||
|
||||
|
||||
|
||||
# Create your views here.
|
||||
|
Reference in New Issue
Block a user