remove paginate and paginate_alchemy
This commit is contained in:
@@ -2,7 +2,6 @@ import sqlalchemy as sa
|
|||||||
import datetime #<- will be used to set default dates on models
|
import datetime #<- will be used to set default dates on models
|
||||||
|
|
||||||
from sqlalchemy import or_
|
from sqlalchemy import or_
|
||||||
from paginate_sqlalchemy import SqlalchemyOrmPage #<- provides pagination
|
|
||||||
from ..models.blog_record import BlogRecord
|
from ..models.blog_record import BlogRecord
|
||||||
from markdown2 import Markdown
|
from markdown2 import Markdown
|
||||||
|
|
||||||
@@ -27,18 +26,12 @@ class BlogRecordService(object):
|
|||||||
return query.get(_id)
|
return query.get(_id)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_paginator(cls, request, page=1):
|
def get_last_created(cls, request):
|
||||||
|
# gest the 10 last created posts
|
||||||
query = request.dbsession.query(BlogRecord)
|
query = request.dbsession.query(BlogRecord)
|
||||||
query = query.order_by(sa.desc(BlogRecord.created))
|
query = query.order_by(sa.desc(BlogRecord.created)).limit(10).all()
|
||||||
query_params = request.GET.mixed()
|
return query
|
||||||
|
|
||||||
def url_maker(link_page):
|
|
||||||
# replace page param with values generated by paginator
|
|
||||||
query_params['page'] = link_page
|
|
||||||
return request.current_route_url(_query=query_params)
|
|
||||||
|
|
||||||
return SqlalchemyOrmPage(query, page, items_per_page=5,
|
|
||||||
url_maker=url_maker)
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def proc_after_create(cls, request, _id):
|
def proc_after_create(cls, request, _id):
|
||||||
|
|||||||
@@ -8,27 +8,18 @@
|
|||||||
</p>
|
</p>
|
||||||
{% endif%}
|
{% endif%}
|
||||||
|
|
||||||
{% if paginator.items %}
|
<table id="posts_list" class="table table-condensed">
|
||||||
|
{% for entry in last_ten %}
|
||||||
{% for entry in paginator.items %}
|
<tr>
|
||||||
<div class="col-xs-10">
|
<td>{{ entry.created.strftime("%d.%m.%Y") }}</td>
|
||||||
{{ entry.created.strftime("%d-%m-%Y") }}
|
<td>
|
||||||
<a href="{{ request.route_url('blog', id=entry.id, slug=entry.slug) }}">
|
<a href="{{ request.route_url('blog', id=entry.id, slug=entry.slug) }}">{{ entry.title }}</a>
|
||||||
<span class="glyphicon glyphicon-triangle-right"></span> {{ entry.title }}
|
</td>
|
||||||
</a>
|
<td>{{ entry.topic }}</td>
|
||||||
</div>
|
<td>{{ entry.tag }}</td>
|
||||||
<div class="col-xs-2">
|
</td>
|
||||||
<span class="glyphicon glyphicon-triangle-left"></span> {{ entry.tag }}
|
</tr>
|
||||||
</div>
|
{% endfor %}
|
||||||
|
</table>
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
{{ paginator.pager() |safe }}
|
|
||||||
|
|
||||||
{% else %}
|
|
||||||
|
|
||||||
<p>No blog entries found.</p>
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -42,25 +42,15 @@ class BaseTest(unittest.TestCase):
|
|||||||
|
|
||||||
class TestMyViewSuccessCondition(BaseTest):
|
class TestMyViewSuccessCondition(BaseTest):
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
super(TestMyViewSuccessCondition, self).setUp()
|
|
||||||
self.init_database()
|
|
||||||
|
|
||||||
from .models import MyModel
|
|
||||||
|
|
||||||
model = MyModel(name='one', value=55)
|
|
||||||
self.session.add(model)
|
|
||||||
|
|
||||||
def test_passing_view(self):
|
def test_passing_view(self):
|
||||||
from .views.default import my_view
|
from .views.default import apropos
|
||||||
info = my_view(dummy_request(self.session))
|
response = apropos(dummy_request(self.session))
|
||||||
self.assertEqual(info['one'].name, 'one')
|
self.assertEqual(response['page_title'], 'A propos')
|
||||||
self.assertEqual(info['project'], 'cao_blogr')
|
|
||||||
|
|
||||||
|
|
||||||
class TestMyViewFailureCondition(BaseTest):
|
class TestMyViewFailureCondition(BaseTest):
|
||||||
|
|
||||||
def test_failing_view(self):
|
def test_failing_view(self):
|
||||||
from .views.default import my_view
|
from .views.default import apropos
|
||||||
info = my_view(dummy_request(self.session))
|
response = apropos(dummy_request(self.session))
|
||||||
self.assertEqual(info.status_int, 500)
|
self.assertEqual(response['page_title'], 'A propos')
|
||||||
|
|||||||
@@ -10,11 +10,11 @@ from ..models.user import User
|
|||||||
@view_config(route_name='home',
|
@view_config(route_name='home',
|
||||||
renderer='cao_blogr:templates/home.jinja2')
|
renderer='cao_blogr:templates/home.jinja2')
|
||||||
def home(request):
|
def home(request):
|
||||||
page = int(request.params.get('page', 1))
|
# get the last created posts
|
||||||
paginator = BlogRecordService.get_paginator(request, page)
|
last_ten = BlogRecordService.get_last_created(request)
|
||||||
return {
|
return {
|
||||||
'page_title': "Bienvenue sur mon blog",
|
'page_title': "Bienvenue sur mon blog",
|
||||||
'paginator': paginator
|
'last_ten': last_ten,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
3
setup.py
3
setup.py
@@ -22,9 +22,8 @@ requires = [
|
|||||||
'zope.sqlalchemy',
|
'zope.sqlalchemy',
|
||||||
'wtforms==2.2.1', # form library
|
'wtforms==2.2.1', # form library
|
||||||
'webhelpers2==2.0', # various web building related helpers
|
'webhelpers2==2.0', # various web building related helpers
|
||||||
'paginate==0.5.6', # pagination helpers
|
|
||||||
'paginate_sqlalchemy==0.3.0',
|
|
||||||
'passlib',
|
'passlib',
|
||||||
|
'markdown2',
|
||||||
]
|
]
|
||||||
|
|
||||||
tests_require = [
|
tests_require = [
|
||||||
|
|||||||
Reference in New Issue
Block a user