Commit 3aa8ea79 authored by Vasyl Bodnaruk's avatar Vasyl Bodnaruk

add simple pagination

parent 0e70462a
......@@ -37,6 +37,7 @@ INSTALLED_APPS = [
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'el_pagination',
'webapp.apps.WebappConfig',
]
......@@ -64,6 +65,7 @@ TEMPLATES = [
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django.template.context_processors.request',
],
},
},
......
......@@ -116,7 +116,15 @@ $(document).ready(function() {
ajaxPost('/news/', data);
});
// $(actionView).on('click', function(e) {
$(actionDelete).on('click', function(e) {
// e.preventDefault();
updateCounter();
// var data = actionData(this);
// console.log(data);
// ajaxPost('/news/', data);
});
// $(actionView).on('click', function(e) {
// e.preventDefault();
// var data = actionData(this);
// ajaxPost('/news/', data);
......@@ -127,13 +135,6 @@ $(document).ready(function() {
// var data = actionData(this);
// ajaxPost('/news/', data);
// });
$(actionDelete).on('click', function(e) {
e.preventDefault();
var data = actionData(this);
console.log(data);
ajaxPost('/news/', data);
});
});
......
......@@ -210,6 +210,9 @@
</div>
<!-- Submit -->
<div class="form-group row">
<div class="offset-4 col-2">
<a class="form-control btn btn-danger" href="/news">Cancel</a>
</div>
<div class="offset-7 col-2">
<button type="submit" class="form-control btn btn-primary">Update</button>
</div>
......
{% extends "base.html" %}
{% load el_pagination_tags %}
{% block title %}
<title>List news</title>
{% endblock %}
......@@ -13,12 +13,9 @@
<div class="collapse navbar-collapse" id="navbarTogglerDemo01">
<div class="actions mr-auto">
<form class="actions-form" method="get" action="{% url 'list_news' %}">
<div style="display: block;">
<label>Date: </label>
<input type="date" name="from_date" value="{{ date.record_date__min }}">
<input type="date" name="to_date" value="{{ date.record_date__max }}">
</div>
<div style="display: block;">
<label>Media:</label>
<select class="form-control actions-select" name="media">
<option>All</option>
......@@ -26,13 +23,11 @@
<option>{{ i.name }}</option>
{% endfor %}
</select>
</div>
<button type="submit" class="btn btn-success">Filter</button>
<div style="display: block;">
<input type="text" name="search" placeholder="Enter search ...">
</div>
<div>
<button type="submit" class="btn btn-success">Filter</button>
</div>
</form>
</div>
<div>
......@@ -48,6 +43,8 @@
</div>
</nav>
{% paginate news %}
<form class="form">
<table class="table table-hover">
<thead class="thead-inverse">
......@@ -66,7 +63,6 @@
{% for i in news %}
<tr>
<td>
<span><input id="{{ i.id }}" class="checkbox" type="checkbox"></span>
<span><a href="{% url 'view_news' i.id %}">{{ i.title }}</a></span>
<div class="action-block">
<a href="{% url 'view_news' i.id %}" target="_blank" data-type="view"
......@@ -76,6 +72,8 @@
class="action-block-edit"><strong>Edit</strong></a>
<span class="divider">|</span>
<a href="#" data-type="delete" class="action-block-delete"><strong>Delete</strong></a>
<span class="divider">|</span>
<span class="action-block-edit"><input id="{{ i.id }}" class="checkbox" type="checkbox"><strong>Export</strong></span>
</div>
</td>
<td>{{ i.get_media }}</td>
......@@ -87,5 +85,5 @@
</tbody>
</table>
</form>
{% show_pages %}
{% endblock %}
\ No newline at end of file
from datetime import datetime
from django import forms
from .models import News
class NewsUpdate(forms.Form):
def update(self):
news = News.objects.get(pk=self.data['news_id'])
if self.data['title']:
news.title = self.data['title']
if self.data['description']:
news.description = self.data['description']
if self.data['url']:
news.url = self.data['url']
if self.data['radar']:
news.radar_id = self.data['radar']
if self.data['industry']:
news.industry_id = self.data['industry']
if self.data['function']:
news.function_id = self.data['function']
if self.data['media']:
news.media_id = self.data['media']
if self.data['technology']:
news.technology_id = self.data['technology']
if self.data['type']:
news.type_id = self.data['type']
if self.data['region']:
news.region_id = self.data['region']
if self.data['date']:
print(self.data['date'])
news.publish_date = datetime.strptime(self.data['date'], '%Y-%m-%d')
if self.data['tags']:
news.tags_id = [int(i) for i in self.data['tags'].split(',')]
news.save()
......@@ -5,6 +5,7 @@ from django.db.models import Q
from django.http import JsonResponse
import json
from django.db.models import Max, Min
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from .models import News, WpEsiNews, WpEsiNewsEntity, WpEsiMedia, WpEsiEntity
from .forms import NewsUpdate
......@@ -20,6 +21,7 @@ class ListNewsView(ListView):
search = request.GET.get('search')
print(from_date, to_date)
news = News.objects.filter(is_accepted=False).order_by('-id')#.order_by('record_date')
if search:
news = news.filter(Q(title__icontains=search) | Q(description__icontains=search))
if from_date:
......@@ -32,6 +34,9 @@ class ListNewsView(ListView):
min_max_date = News.objects.aggregate(Min('record_date'), Max('record_date'))
min_max_date['record_date__min'] = str(min_max_date['record_date__min'].date())
min_max_date['record_date__max'] = str(min_max_date['record_date__max'].date())
# news = self.paginate(news, request.GET.get('page'))
return render(request, self.template_name, {'news': news,
'media': media,
'date': min_max_date})
......@@ -52,6 +57,15 @@ class ListNewsView(ListView):
i.export_news()
return HttpResponse(200)
def paginate(self, query, page):
paginator = Paginator(query, 25)
try:
return paginator.page(page)
except PageNotAnInteger:
return paginator.page(1)
except EmptyPage:
return paginator.page(paginator.num_pages)
def _delete(self, id):
if isinstance(id, list):
News.objects.filter(id__in=id).update(is_accepted=True)
......@@ -75,7 +89,8 @@ class EditNewsView(DetailView):
return render(request, self.template_name, {'news': news})
def post(self, request, *args, **kwargs):
radar = request.POST.get('news_id')
radar = request.POST.get('cancel')
print(radar)
form = NewsUpdate(request.POST)
if form.is_valid():
form.update()
......
......@@ -4,3 +4,4 @@ dateparser==0.6.0
Django==1.11.1
mysqlclient==1.3.4
PyVirtualDisplay==0.2.1
django-el-pagination==3.1.0
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment