Django pagination tools supporting Ajax, multiple and lazy pagination, Twitter-style and Digg-style pagination.
Project description
=================================
Django Endless Pagination Angular
=================================
.. image:: https://coveralls.io/repos/mapeveri/django-endless-pagination-angular/badge.svg?branch=master&service=github
:target: https://coveralls.io/github/mapeveri/django-endless-pagination-angular?branch=master
.. image:: https://travis-ci.org/mapeveri/django-endless-pagination-angular.svg?branch=master
:target: https://travis-ci.org/mapeveri/django-endless-pagination-angular
.. image:: https://badge.fury.io/py/django-endless-pagination-angular.svg
:target: http://badge.fury.io/py/django-endless-pagination-angular
.. image:: https://img.shields.io/pypi/dm/django-endless-pagination-angular.svg
:target: https://pypi.python.org/pypi/django-endless-pagination-angular
Django Endless Pagination Angular is a fork of the excellent application django-endless-pagination created by Francesco Banconi.
This application get all code of version 2.0 and update for working in django >= 1.7 in addition to migration code jquery to angular.js.
Django Endless Pagination Angular can be used to provide Twitter-style or Digg-style pagination, with optional Ajax support and other features
like multiple or lazy pagination.
Documentation
-------------
**Documentation** is `avaliable online
<http://django-endless-pagination-angular.readthedocs.org/>`_, or in the **doc*
directory of the project.
Installation
------------
Via pip::
pip install django-endless-pagination-angular
Quick start
-----------
1. Add application 'endless_pagination' to INSTALLED_APPS.
2. Add this lines in settings.py::
from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS
TEMPLATE_CONTEXT_PROCESSORS += (
'django.core.context_processors.request',
)
Getting started
---------------
In this example it will be implemented twitter style pagination
Base.html::
<!DOCTYPE html>
<html>
<head>
<meta content='text/html; charset=utf-8' http-equiv='Content-Type' />
<title>{% block title %}Testing project{% endblock %} - Django Endless Pagination Angular</title>
<link href="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.1.1/css/bootstrap.min.css" rel="stylesheet">
<link href="{{ STATIC_URL }}pagination.css" rel="stylesheet">
</head>
<body ng-app="EndlessPagination">
<div class="container">
<div class="page-header">
<h1>Django Endless Pagination Angular <small>Twitter Style</small></h1>
</div>
</div>
<div class="row">
{% block content %}{% endblock %}
</div>
</div>
{% block js %}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.2/angular.min.js"></script>
<script src="{{ STATIC_URL }}endless_pagination/js/module.endless.js"></script>
{% endblock %}
</body>
</html>
Index.html::
{% extends "base.html" %}
{% block content %}
<div class="endless_page_template span12" endless-pagination="{'paginateOnScroll': true}">
{% include myapp/page_template.html %}
</div>
{% endblock %}
Page_template.html::
{% load endless %}
{% paginate objects %}
{% for object in objects %}
<div class="well object">
<h4>{{ object.title }}</h4>
{{ object.contents }}
</div>
{% endfor %}
{% show_more "More results" %}
In the views.py::
class TwitterView(View):
def get(self, request, forum, *args, **kwargs):
template_name = "myapp/index.html"
page_template = "myapp/page_template.html"
objects = MyModel.objects.all()
data = {
'objects': objects,
}
if request.is_ajax():
template_name = page_template
return render(request, template_name, data)
In the urls.py::
url(r'^twitter/$', TwitterView.as_view(), name='twitter'),
Run server::
python manage.py runserver
Visit: 127.0.0.1:800/twitter/
If you have already declared an angular module all you have to do is inject the module EndlessPagination. As follow::
'use strict';
angular.module('TestApp', ['EndlessPagination']);
This way you will be able to use the directive endless-pagination. For more examples check the official repository:
https://github.com/mapeveri/django-endless-pagination-angular/tree/master/tests
Django Endless Pagination Angular
=================================
.. image:: https://coveralls.io/repos/mapeveri/django-endless-pagination-angular/badge.svg?branch=master&service=github
:target: https://coveralls.io/github/mapeveri/django-endless-pagination-angular?branch=master
.. image:: https://travis-ci.org/mapeveri/django-endless-pagination-angular.svg?branch=master
:target: https://travis-ci.org/mapeveri/django-endless-pagination-angular
.. image:: https://badge.fury.io/py/django-endless-pagination-angular.svg
:target: http://badge.fury.io/py/django-endless-pagination-angular
.. image:: https://img.shields.io/pypi/dm/django-endless-pagination-angular.svg
:target: https://pypi.python.org/pypi/django-endless-pagination-angular
Django Endless Pagination Angular is a fork of the excellent application django-endless-pagination created by Francesco Banconi.
This application get all code of version 2.0 and update for working in django >= 1.7 in addition to migration code jquery to angular.js.
Django Endless Pagination Angular can be used to provide Twitter-style or Digg-style pagination, with optional Ajax support and other features
like multiple or lazy pagination.
Documentation
-------------
**Documentation** is `avaliable online
<http://django-endless-pagination-angular.readthedocs.org/>`_, or in the **doc*
directory of the project.
Installation
------------
Via pip::
pip install django-endless-pagination-angular
Quick start
-----------
1. Add application 'endless_pagination' to INSTALLED_APPS.
2. Add this lines in settings.py::
from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS
TEMPLATE_CONTEXT_PROCESSORS += (
'django.core.context_processors.request',
)
Getting started
---------------
In this example it will be implemented twitter style pagination
Base.html::
<!DOCTYPE html>
<html>
<head>
<meta content='text/html; charset=utf-8' http-equiv='Content-Type' />
<title>{% block title %}Testing project{% endblock %} - Django Endless Pagination Angular</title>
<link href="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.1.1/css/bootstrap.min.css" rel="stylesheet">
<link href="{{ STATIC_URL }}pagination.css" rel="stylesheet">
</head>
<body ng-app="EndlessPagination">
<div class="container">
<div class="page-header">
<h1>Django Endless Pagination Angular <small>Twitter Style</small></h1>
</div>
</div>
<div class="row">
{% block content %}{% endblock %}
</div>
</div>
{% block js %}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.2/angular.min.js"></script>
<script src="{{ STATIC_URL }}endless_pagination/js/module.endless.js"></script>
{% endblock %}
</body>
</html>
Index.html::
{% extends "base.html" %}
{% block content %}
<div class="endless_page_template span12" endless-pagination="{'paginateOnScroll': true}">
{% include myapp/page_template.html %}
</div>
{% endblock %}
Page_template.html::
{% load endless %}
{% paginate objects %}
{% for object in objects %}
<div class="well object">
<h4>{{ object.title }}</h4>
{{ object.contents }}
</div>
{% endfor %}
{% show_more "More results" %}
In the views.py::
class TwitterView(View):
def get(self, request, forum, *args, **kwargs):
template_name = "myapp/index.html"
page_template = "myapp/page_template.html"
objects = MyModel.objects.all()
data = {
'objects': objects,
}
if request.is_ajax():
template_name = page_template
return render(request, template_name, data)
In the urls.py::
url(r'^twitter/$', TwitterView.as_view(), name='twitter'),
Run server::
python manage.py runserver
Visit: 127.0.0.1:800/twitter/
If you have already declared an angular module all you have to do is inject the module EndlessPagination. As follow::
'use strict';
angular.module('TestApp', ['EndlessPagination']);
This way you will be able to use the directive endless-pagination. For more examples check the official repository:
https://github.com/mapeveri/django-endless-pagination-angular/tree/master/tests