Changed page to GET and added main attachment view

This commit is contained in:
Felipe Martín 2016-04-11 20:22:37 +02:00
parent bb8ebf13b6
commit 257c6a539c
5 changed files with 26 additions and 20 deletions

View File

@ -1,17 +1,17 @@
from django.conf.urls import url from django.conf.urls import url
from .views import ( from .views import (
ListView, ListView, AttachmentView,
EntryView, EntryAttachmentView, EntryLiveEditView, EntryView, EntryAttachmentView, EntryLiveEditView,
SearchView, RSSView) SearchView, RSSView)
urlpatterns = [ urlpatterns = [
# Post list with page # Global attachment URL
url( url(
r'^page/(?P<page_number>\d+)/$', r'^attachment/(?P<attachment_id>\d+)$',
ListView.as_view(), AttachmentView.as_view(),
name='list' name='attachment'
), ),
# Post list # Post list
url( url(
@ -35,7 +35,7 @@ urlpatterns = [
url( url(
r'^(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/(?P<slug>[\w\-]+)/attachment/(?P<filename>.*)$', r'^(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/(?P<slug>[\w\-]+)/attachment/(?P<filename>.*)$',
EntryAttachmentView.as_view(), EntryAttachmentView.as_view(),
name='item' name='item-attachment'
), ),
# RSS # RSS
url( url(

View File

@ -1,8 +1,6 @@
# -*- coding: utf-8 -*-
from datetime import datetime from datetime import datetime
from django.core.paginator import Paginator
from django.utils import translation
from django.conf import settings
from django.core.paginator import Paginator from django.core.paginator import Paginator
from django.db.models import Q from django.db.models import Q
@ -20,8 +18,8 @@ def get_posts(query=None, limit=None):
) )
if query and len(query) > 0: if query and len(query) > 0:
items = items.filter( items = items.filter(
Q(title__icontains=query) | \ Q(title__icontains=query) |
Q(content__icontains=query) | \ Q(content__icontains=query) |
Q(tags__name__iexact=query) Q(tags__name__iexact=query)
).distinct() ).distinct()

View File

@ -8,7 +8,7 @@ from django.utils.decorators import method_decorator
from django.views.decorators.csrf import csrf_exempt from django.views.decorators.csrf import csrf_exempt
import fmartingrcom.apps.blog.utils as blog_utils import fmartingrcom.apps.blog.utils as blog_utils
from .models import Entry from .models import Entry, Attachment
from fmartingrcom.apps._core.views import View from fmartingrcom.apps._core.views import View
from fmartingrcom.apps.config.models import SiteConfiguration from fmartingrcom.apps.config.models import SiteConfiguration
@ -16,13 +16,21 @@ from fmartingrcom.apps.config.models import SiteConfiguration
config = SiteConfiguration.objects.get() config = SiteConfiguration.objects.get()
class AttachmentView(View):
def get(self, request, attachment_id):
try:
attachment = Attachment.objects.get(pk=int(attachment_id))
return HttpResponseRedirect(attachment.url)
except Attachment.DoesNotExist:
raise Http404
class ListView(View): class ListView(View):
section = 'blog' section = 'blog'
template = 'blog/list.jinja' template = 'blog/list.jinja'
def get(self, request, page_number=1): def get(self, request):
if 'page' in request.GET: page_number = int(request.GET.get('page', 1))
page_number = int(request.GET['page'])
paginator, page = blog_utils.get_paginator(request, page_number) paginator, page = blog_utils.get_paginator(request, page_number)

View File

@ -7,7 +7,7 @@
{% block submenu %} {% block submenu %}
{% if item.status() == 'Published' %} {% if item.status() == 'Published' %}
{% if page.number > 1 %} {% if page.number > 1 %}
<a href="{{ url('blog:list', page.number) }}" class="button prev-page pull-left gap"> <a href="{{ url('blog:list') }}?page={{ page.number }}" class="button prev-page pull-left gap">
{% else %} {% else %}
<a href="{{ url('blog:list') }}" class="button prev-page pull-left gap"> <a href="{{ url('blog:list') }}" class="button prev-page pull-left gap">
{% endif %} {% endif %}

View File

@ -65,17 +65,17 @@
<div class="pagination"> <div class="pagination">
{% if page.has_next() %} {% if page.has_next() %}
<a href="{{ url('blog:list', page.next_page_number()) }}" class="button prev-page pull-right gap half"> <a href="{{ url('blog:list') }}?page={{ page.next_page_number() }}" class="button prev-page pull-right gap half">
Older <i class="fa fa-angle-double-right"></i> Older <i class="fa fa-angle-double-right"></i>
</a> </a>
<a href="#"> <a href="#">o
{% endif %} {% endif %}
{% if page.has_previous() %} {% if page.has_previous() %}
{% if page.previous_page_number() == 1 %} {% if page.previous_page_number() == 1 %}
<a href="{{ url('blog:list') }}" class="button prev-page pull-left gap half"> <a href="{{ url('blog:list') }}" class="button prev-page pull-left gap half">
{% else %} {% else %}
<a href="{{ url('blog:list', page.previous_page_number()) }}" class="button prev-page pull-left gap half"> <a href="{{ url('blog:list') }}?page={{ page.previous_page_number() }}" class="button prev-page pull-left gap half">
{% endif %} {% endif %}
<i class="fa fa-angle-double-left"></i> Newer <i class="fa fa-angle-double-left"></i> Newer
</a> </a>
@ -88,7 +88,7 @@
<ul> <ul>
{% for p in range(1, paginator.num_pages+1) %} {% for p in range(1, paginator.num_pages+1) %}
<li {% if p == page_number %}class="active"{% endif %}> <li {% if p == page_number %}class="active"{% endif %}>
<a href="{{ url('blog:list', p) }}">{{ p }}</a> <a href="{{ url('blog:list') }}">?page={{ p }}</a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>