remove paginate and paginate_alchemy

This commit is contained in:
2022-12-08 11:57:40 +01:00
parent 1bced4ee54
commit 85c60cc561
5 changed files with 27 additions and 54 deletions

View File

@@ -2,7 +2,6 @@ import sqlalchemy as sa
import datetime #<- will be used to set default dates on models
from sqlalchemy import or_
from paginate_sqlalchemy import SqlalchemyOrmPage #<- provides pagination
from ..models.blog_record import BlogRecord
from markdown2 import Markdown
@@ -27,18 +26,12 @@ class BlogRecordService(object):
return query.get(_id)
@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 = query.order_by(sa.desc(BlogRecord.created))
query_params = request.GET.mixed()
query = query.order_by(sa.desc(BlogRecord.created)).limit(10).all()
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
def proc_after_create(cls, request, _id):

View File

@@ -8,27 +8,18 @@
</p>
{% endif%}
{% if paginator.items %}
{% for entry in paginator.items %}
<div class="col-xs-10">
{{ entry.created.strftime("%d-%m-%Y") }}&nbsp;&nbsp;
<a href="{{ request.route_url('blog', id=entry.id, slug=entry.slug) }}">
<span class="glyphicon glyphicon-triangle-right"></span>&nbsp;{{ entry.title }}
</a>
</div>
<div class="col-xs-2">
<span class="glyphicon glyphicon-triangle-left"></span>&nbsp;{{ entry.tag }}
</div>
{% endfor %}
{{ paginator.pager() |safe }}
{% else %}
<p>No blog entries found.</p>
{% endif %}
<table id="posts_list" class="table table-condensed">
{% for entry in last_ten %}
<tr>
<td>{{ entry.created.strftime("%d.%m.%Y") }}</td>
<td>
<a href="{{ request.route_url('blog', id=entry.id, slug=entry.slug) }}">{{ entry.title }}</a>
</td>
<td>{{ entry.topic }}</td>
<td>{{ entry.tag }}</td>
</td>
</tr>
{% endfor %}
</table>
{% endblock %}

View File

@@ -42,25 +42,15 @@ class BaseTest(unittest.TestCase):
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):
from .views.default import my_view
info = my_view(dummy_request(self.session))
self.assertEqual(info['one'].name, 'one')
self.assertEqual(info['project'], 'cao_blogr')
from .views.default import apropos
response = apropos(dummy_request(self.session))
self.assertEqual(response['page_title'], 'A propos')
class TestMyViewFailureCondition(BaseTest):
def test_failing_view(self):
from .views.default import my_view
info = my_view(dummy_request(self.session))
self.assertEqual(info.status_int, 500)
from .views.default import apropos
response = apropos(dummy_request(self.session))
self.assertEqual(response['page_title'], 'A propos')

View File

@@ -10,11 +10,11 @@ from ..models.user import User
@view_config(route_name='home',
renderer='cao_blogr:templates/home.jinja2')
def home(request):
page = int(request.params.get('page', 1))
paginator = BlogRecordService.get_paginator(request, page)
# get the last created posts
last_ten = BlogRecordService.get_last_created(request)
return {
'page_title': "Bienvenue sur mon blog",
'paginator': paginator
'last_ten': last_ten,
}

View File

@@ -22,9 +22,8 @@ requires = [
'zope.sqlalchemy',
'wtforms==2.2.1', # form library
'webhelpers2==2.0', # various web building related helpers
'paginate==0.5.6', # pagination helpers
'paginate_sqlalchemy==0.3.0',
'passlib',
'markdown2',
]
tests_require = [