From 073150e43246273c4514594f7be1f5365864055c Mon Sep 17 00:00:00 2001 From: Nazar Kotjuk Date: Thu, 24 Oct 2013 12:43:08 +0300 Subject: [PATCH] Create views 'objects_list' and 'filtered_list'. Add this views to all modules --- accounts/templates/translators.html | 10 ++--- accounts/templates/user_all.html | 10 ++--- accounts/views.py | 32 +++---------- article/templates/article_all.html | 10 ++--- article/views.py | 16 ++----- city/templates/city_all.html | 10 ++--- city/views.py | 21 ++------- company/templates/company_all.html | 14 +++++- company/views.py | 17 ++++--- conference/templates/conference_all.html | 14 +++++- conference/views.py | 18 ++++---- country/tamplates/country_all.html | 20 ++++----- country/views.py | 20 ++------- exposition/templates/exposition_all.html | 14 +++++- exposition/views.py | 20 ++++----- functions/custom_views.py | 45 +++++++++++++++++-- news/templates/news_all.html | 13 +++--- news/views.py | 13 +++--- organiser/templates/organiser_all.html | 15 ++++++- organiser/views.py | 19 ++++---- .../templates/place_conference_all.html | 13 +++++- place_conference/views.py | 21 ++++----- .../templates/place_exposition_all.html | 13 +++++- place_exposition/views.py | 20 +++++---- seminar/templates/seminar_all.html | 14 +++++- seminar/views.py | 20 ++++----- service/templates/review_all.html | 13 +++++- service/templates/service_all.html | 13 +++++- service/views.py | 28 +++++++----- theme/templates/tag_all.html | 21 ++++++--- theme/templates/theme_all.html | 20 +++++++-- theme/views.py | 27 +++++------ webinar/templates/webinar_all.html | 14 +++++- webinar/views.py | 20 ++++----- 34 files changed, 366 insertions(+), 242 deletions(-) diff --git a/accounts/templates/translators.html b/accounts/templates/translators.html index f938591a..bb32209c 100644 --- a/accounts/templates/translators.html +++ b/accounts/templates/translators.html @@ -17,7 +17,7 @@ - {% for item in users %} + {% for item in objects %} {{ item.id }} @@ -44,12 +44,12 @@ {# pagination #} diff --git a/accounts/templates/user_all.html b/accounts/templates/user_all.html index cdf644a1..68a7dcdd 100644 --- a/accounts/templates/user_all.html +++ b/accounts/templates/user_all.html @@ -20,7 +20,7 @@ - {% for item in users %} + {% for item in objects %} {{ item.id }} @@ -52,12 +52,12 @@ {# pagination #} diff --git a/accounts/views.py b/accounts/views.py index f91f6210..90e45e90 100644 --- a/accounts/views.py +++ b/accounts/views.py @@ -2,50 +2,28 @@ from django.shortcuts import render_to_response from django.http import HttpResponseRedirect, HttpResponse from django.core.context_processors import csrf -from django.conf import settings from django.contrib.auth.decorators import login_required -from django.core.mail import send_mail -from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage #models and forms from models import User from forms import UserForm, UserCreationForm, TranslatorForm +#custom views +from functions.custom_views import objects_list, filtered_list from hashlib import md5 -@login_required + def user_all(request): """ Return list of all users with pagination """ - user_list = User.objects.all() - paginator = Paginator(user_list, 10)#show 10 items per page - page = request.GET.get('page') - try: - users = paginator.page(page) - except PageNotAnInteger: - # If page is not an integer, deliver first page. - users = paginator.page(1) - except EmptyPage: - # If page is out of range (e.g. 9999), deliver last page of results. - users = paginator.page(paginator._num_pages) - return render_to_response('user_all.html', {'users': users}) + return objects_list(request, User, 'user_all.html') def translators(request): """ Return list of user filtered by "is_translator" field (list of translators) """ user_list = User.objects.filter(is_translator='True') - paginator = Paginator(user_list, 10)#show 10 items per page - page = request.GET.get('page') - try: - users = paginator.page(page) - except PageNotAnInteger: - # If page is not an integer, deliver first page. - users = paginator.page(1) - except EmptyPage: - # If page is out of range (e.g. 9999), deliver last page of results. - users = paginator.page(paginator._num_pages) - return render_to_response('translators.html', {'users': users}) + return filtered_list(request, user_list, 'translators.html') def translator_change(request, user_id): diff --git a/article/templates/article_all.html b/article/templates/article_all.html index edeb4338..6b8bdfb0 100644 --- a/article/templates/article_all.html +++ b/article/templates/article_all.html @@ -20,7 +20,7 @@ Displays lists of all articles in the table - {% for item in articles %} + {% for item in objects %} {{ item.id }} {{ item.main_title }} @@ -39,12 +39,12 @@ Displays lists of all articles in the table diff --git a/article/views.py b/article/views.py index a26bd134..9eb99060 100644 --- a/article/views.py +++ b/article/views.py @@ -5,7 +5,6 @@ from django.core.context_processors import csrf from django.conf import settings from django.contrib.auth.decorators import login_required from django.contrib.contenttypes.models import ContentType -from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage #models and forms from forms import ArticleForm, Article, ArticleChangeForm from theme.models import Tag @@ -13,6 +12,8 @@ from file.models import FileModel, TmpFile from file.forms import FileModelForm #pythom import random +#custom views +from functions.custom_views import objects_list @login_required @@ -55,18 +56,7 @@ def article_all(request): """ Return list of all articles with pagination """ - article_list = Article.objects.all() - paginator = Paginator(article_list, 1)#show 10 items per page - page = request.GET.get('page') - try: - articles = paginator.page(page) - except PageNotAnInteger: - # If page is not an integer, deliver first page. - articles = paginator.page(1) - except EmptyPage: - # If page is out of range (e.g. 9999), deliver last page of results. - articles = paginator.page(paginator._num_pages) - return render_to_response('article_all.html', {'articles': articles}) + return objects_list(request, Article, 'article_all.html') diff --git a/city/templates/city_all.html b/city/templates/city_all.html index fa96536b..ac9dbac7 100644 --- a/city/templates/city_all.html +++ b/city/templates/city_all.html @@ -20,7 +20,7 @@ Displays lists of all cities in the table - {% for item in cities %} + {% for item in objects %} {{ item.id }} {{ item.name }} @@ -39,12 +39,12 @@ Displays lists of all cities in the table diff --git a/city/views.py b/city/views.py index 6e9ba957..e68fc1b5 100644 --- a/city/views.py +++ b/city/views.py @@ -5,7 +5,6 @@ from django.core.context_processors import csrf from django.conf import settings from django.contrib.auth.decorators import login_required from django.contrib.contenttypes.models import ContentType -from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage #models and forms from forms import CityForm, CityChangeForm from models import City @@ -13,27 +12,15 @@ from file.models import FileModel, TmpFile from file.forms import FileModelForm #python import random +#custom views +from functions.custom_views import objects_list -@login_required def city_all(request): """ - Return list of all cities with pagination + return list of all cities with pagination """ - - cities_list = City.objects.all() - paginator = Paginator(cities_list, 2)#show 2 items per page - page = request.GET.get('page') - try: - cities = paginator.page(page) - except PageNotAnInteger: - # If page is not an integer, deliver first page. - cities = paginator.page(1) - except EmptyPage: - # If page is out of range (e.g. 9999), deliver last page of results. - cities = paginator.page(paginator._num_pages) - - return render_to_response('city_all.html', {'cities' : cities}) + return objects_list(request, City, 'city_all.html', 1) @login_required def city_add(request): diff --git a/company/templates/company_all.html b/company/templates/company_all.html index daa7bfb7..2a0e32bf 100644 --- a/company/templates/company_all.html +++ b/company/templates/company_all.html @@ -20,7 +20,7 @@ Displays lists of all companies in the table - {% for item in companies %} + {% for item in objects %} {{ item.id }} {{ item.name }} @@ -35,7 +35,19 @@ Displays lists of all companies in the table Добавить компанию + {# pagination #} + + + {% endblock %} diff --git a/company/views.py b/company/views.py index 3284ee98..3262a310 100644 --- a/company/views.py +++ b/company/views.py @@ -14,6 +14,15 @@ from file.models import FileModel, TmpFile from file.forms import FileModelForm #python import random +#custom views +from functions.custom_views import objects_list + + +def company_all(request): + """ + Return list of all companies with pagination + """ + return objects_list(request, Company, 'company_all.html') @login_required @@ -118,10 +127,4 @@ def company_change(request, company_id): return render_to_response('company_add.html', args) -@login_required -def company_all(request): - """ - Return list of all companies - """ - companies = Company.objects.all() - return render_to_response('company_all.html', {'companies':companies}) + diff --git a/conference/templates/conference_all.html b/conference/templates/conference_all.html index 94c15139..1f22c102 100644 --- a/conference/templates/conference_all.html +++ b/conference/templates/conference_all.html @@ -17,7 +17,7 @@ - {% for item in conferences %} + {% for item in objects %} {{ item.id }} @@ -37,5 +37,17 @@ Добавить конференцию + {# pagination #} + {% endblock %} \ No newline at end of file diff --git a/conference/views.py b/conference/views.py index 75592909..2249898d 100644 --- a/conference/views.py +++ b/conference/views.py @@ -7,7 +7,7 @@ from django.forms.formsets import BaseFormSet, formset_factory from django.forms.models import modelformset_factory from django.contrib.contenttypes.models import ContentType from django.contrib.auth.decorators import login_required -# +#models and forms from models import Conference, TimeTable from forms import ConferenceChangeForm, ConferenceCreateForm, TimeTableForm from theme.models import Tag @@ -16,6 +16,15 @@ from file.models import FileModel, TmpFile from file.forms import FileModelForm #python import random +#custom views +from functions.custom_views import objects_list + + +def conference_all(request): + """ + Return list of all conferences with pagination + """ + return objects_list(request, Conference, 'conference_all.html') @login_required @@ -130,10 +139,3 @@ def conference_change(request, url): return render_to_response('conference_add.html', args) -@login_required -def conference_all(request): - """ - Return list of all conferences - """ - conferences = Conference.objects.all() - return render_to_response('conference_all.html', {'conferences':conferences}) \ No newline at end of file diff --git a/country/tamplates/country_all.html b/country/tamplates/country_all.html index 18eb5670..b49da469 100644 --- a/country/tamplates/country_all.html +++ b/country/tamplates/country_all.html @@ -22,7 +22,7 @@ Displays lists of all countries in the table - {% for item in countries %} + {% for item in objects %} {{ item.id }} {{ item.name }} @@ -43,26 +43,26 @@ Displays lists of all countries in the table diff --git a/country/views.py b/country/views.py index fd612a06..0f2d38b7 100644 --- a/country/views.py +++ b/country/views.py @@ -6,6 +6,7 @@ from django.conf import settings from django.contrib.contenttypes.models import ContentType from django.contrib.auth.decorators import login_required from django.db.models.loading import get_model +from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage #models and forms from models import Country from forms import CountryForm, CountryChangeForm @@ -13,28 +14,13 @@ from file.models import FileModel, TmpFile from file.forms import FileModelForm #python import random +from functions.custom_views import objects_list -from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage - - -@login_required def country_all(request): """ Return list of all countries with pagination """ - country_list = Country.objects.all() - paginator = Paginator(country_list, 2)#show 2 item per page - page = request.GET.get('page') - try: - countries = paginator.page(page) - except PageNotAnInteger: - # If page is not an integer, deliver first page. - countries = paginator.page(1) - except EmptyPage: - # If page is out of range (e.g. 9999), deliver last page of results. - countries = paginator.page(paginator._num_pages) - - return render_to_response('country_all.html', {'countries' : countries}) + return objects_list(request, Country, 'country_all.html', 1) @login_required def country_add(request): diff --git a/exposition/templates/exposition_all.html b/exposition/templates/exposition_all.html index bbc9533a..8264820c 100644 --- a/exposition/templates/exposition_all.html +++ b/exposition/templates/exposition_all.html @@ -17,7 +17,7 @@ - {% for item in expositions%} + {% for item in objects %} {{ item.id }} @@ -37,5 +37,17 @@ Добавить выставку + {# pagination #} + {% endblock %} \ No newline at end of file diff --git a/exposition/views.py b/exposition/views.py index a886318a..7260b4d8 100644 --- a/exposition/views.py +++ b/exposition/views.py @@ -7,7 +7,7 @@ from django.forms.formsets import BaseFormSet, formset_factory from django.forms.models import modelformset_factory from django.contrib.contenttypes.models import ContentType from django.contrib.auth.decorators import login_required -# +#models and forms from models import Exposition, TimeTable from forms import ExpositionChangeForm, ExpositionCreateForm, TimeTableForm from theme.models import Tag @@ -16,6 +16,15 @@ from file.models import FileModel, TmpFile from file.forms import FileModelForm #python import random +#custom views +from functions.custom_views import objects_list + + +def exposition_all(request): + """ + Return list of all expositions with pagination + """ + return objects_list(request, Exposition, 'exposition_all.html') @login_required @@ -131,12 +140,3 @@ def exposition_change(request, url): args['obj_id'] = getattr(exposition, 'id') return render_to_response('exposition_add.html', args) - - -@login_required -def exposition_all(request): - """ - Return list of all expositions - """ - expositions = Exposition.objects.all() - return render_to_response('exposition_all.html', {'expositions':expositions}) diff --git a/functions/custom_views.py b/functions/custom_views.py index eb6f9e30..39304813 100644 --- a/functions/custom_views.py +++ b/functions/custom_views.py @@ -1,11 +1,48 @@ # -*- coding: utf-8 -*- from django.shortcuts import render_to_response -from django.http import HttpResponseRedirect, HttpResponse -from django.core.context_processors import csrf -from django.conf import settings from django.contrib.auth.decorators import login_required -from django.core.mail import send_mail from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage +@login_required +def objects_list(request, Model, template, item_per_page=10): + """ + Return template with all objects of model Model + Model - objects Model + item_per_page - how many objects view in the one page + """ + list = Model.objects.all() + paginator = Paginator(list, item_per_page) + page = request.GET.get('page') + try: + objects = paginator.page(page) + except PageNotAnInteger: + # If page is not an integer, deliver first page. + objects = paginator.page(1) + except EmptyPage: + # If page is out of range (e.g. 9999), deliver last page of results. + objects = paginator.page(paginator._num_pages) + return render_to_response(template, {'objects': objects}) + + +@login_required +def filtered_list(request, objects, template, item_per_page=10): + """ + Return template with objects in it with pagination + item_per_page - how many objects view in the one page + """ + paginator = Paginator(objects, item_per_page) + page = request.GET.get('page') + try: + objects = paginator.page(page) + except PageNotAnInteger: + # If page is not an integer, deliver first page. + objects = paginator.page(1) + except EmptyPage: + # If page is out of range (e.g. 9999), deliver last page of results. + objects = paginator.page(paginator._num_pages) + return render_to_response(template, {'objects': objects}) + + + diff --git a/news/templates/news_all.html b/news/templates/news_all.html index e3c5c57a..ba3e1091 100644 --- a/news/templates/news_all.html +++ b/news/templates/news_all.html @@ -21,7 +21,7 @@ Displays lists of all news in the table - {% for item in news %} + {% for item in objects %} {{ item.id }} {{ item.date }} @@ -38,19 +38,18 @@ Displays lists of all news in the table Добавить новость -{% comment %} + {# pagination #} -{% endcomment %} {% endblock %} \ No newline at end of file diff --git a/news/views.py b/news/views.py index b461bf29..9eba4d74 100644 --- a/news/views.py +++ b/news/views.py @@ -17,18 +17,15 @@ from file.models import FileModel, TmpFile from file.forms import FileModelForm #python import random +#custom views +from functions.custom_views import objects_list + -@login_required def news_all(request): """ - Return list of all news + Return list of all news with pagination """ - news = News.objects.all() - - args = {} - args['news'] = news - - return render_to_response('news_all.html', args) + return objects_list(request, News, 'news_all.html') @login_required diff --git a/organiser/templates/organiser_all.html b/organiser/templates/organiser_all.html index 16837a02..948bcfa9 100644 --- a/organiser/templates/organiser_all.html +++ b/organiser/templates/organiser_all.html @@ -19,7 +19,7 @@ Displays lists of all organisers in the table - {% for item in organisers %} + {% for item in objects %} {{ item.id }} {{ item.name }} @@ -33,7 +33,20 @@ Displays lists of all organisers in the table Добавить организатора + + {# pagination #} + + + {% endblock %} diff --git a/organiser/views.py b/organiser/views.py index 5f26179d..8dc2ff30 100644 --- a/organiser/views.py +++ b/organiser/views.py @@ -14,6 +14,15 @@ from file.models import FileModel, TmpFile from file.forms import FileModelForm #python import random +#custom functions +from functions.custom_views import objects_list + + +def organiser_all(request): + """ + Return list of all organisers with pagination + """ + return objects_list(request, Organiser, 'organiser_all.html') def organiser_add(request): @@ -118,12 +127,4 @@ def organiser_change(request, organiser_id): object_id=getattr(organiser, 'id')) args['obj_id'] = organiser_id - return render_to_response('organiser_add.html', args) - - -def organiser_all(request): - """ - Return list of all organisers - """ - organisers = Organiser.objects.all() - return render_to_response('organiser_all.html', {'organisers':organisers}) \ No newline at end of file + return render_to_response('organiser_add.html', args) \ No newline at end of file diff --git a/place_conference/templates/place_conference_all.html b/place_conference/templates/place_conference_all.html index 8f4b5fa5..f45c11de 100644 --- a/place_conference/templates/place_conference_all.html +++ b/place_conference/templates/place_conference_all.html @@ -19,7 +19,7 @@ - {% for item in conferences %} + {% for item in objects %} {{ item.id }} {{ item.name }} @@ -37,7 +37,18 @@ Добавить конферец зал + {# pagination #} + diff --git a/place_conference/views.py b/place_conference/views.py index 45ad43be..3358fe6d 100644 --- a/place_conference/views.py +++ b/place_conference/views.py @@ -14,11 +14,20 @@ from models import PlaceConference, Hall from city.models import City from file.models import FileModel, TmpFile from file.forms import FileModelForm +#python import random +#custom views +from functions.custom_views import objects_list -# http://stackoverflow.com/questions/2406537/django-formsets-make-first-required/4951032#4951032 +def conference_all(request): + """ + Return list of all place_conferences with pagination + """ + return objects_list(request, PlaceConference, 'place_conference_all.html') + +# http://stackoverflow.com/questions/2406537/django-formsets-make-first-required/4951032#4951032 @login_required def conference_add(request): """ @@ -153,12 +162,4 @@ def conference_change(request, url): args['obj_id'] = getattr(place, 'id') - return render_to_response('place_conference_add.html', args) - -@login_required -def conference_all(request): - """ - Return list of all place_conferences - """ - conferences = PlaceConference.objects.all() - return render_to_response('place_conference_all.html', {'conferences': conferences}) \ No newline at end of file + return render_to_response('place_conference_add.html', args) \ No newline at end of file diff --git a/place_exposition/templates/place_exposition_all.html b/place_exposition/templates/place_exposition_all.html index 4a2a90e3..192be6c2 100644 --- a/place_exposition/templates/place_exposition_all.html +++ b/place_exposition/templates/place_exposition_all.html @@ -19,7 +19,7 @@ - {% for item in expositions %} + {% for item in objects %} {{ item.id }} {{ item.name }} @@ -37,7 +37,18 @@ Добавить выставочный центр + {# pagination #} + {% endblock %} \ No newline at end of file diff --git a/place_exposition/views.py b/place_exposition/views.py index 5cc58d0d..0f3c5a8e 100644 --- a/place_exposition/views.py +++ b/place_exposition/views.py @@ -15,7 +15,17 @@ from models import PlaceExposition, Hall from city.models import City from file.models import FileModel, TmpFile from file.forms import FileModelForm +#python import random +#custom fields +from functions.custom_views import objects_list + + +def exposition_all(request): + """ + Return list of all place_expositions with pagination + """ + return objects_list(request, PlaceExposition, 'place_exposition_all.html') @login_required @@ -158,12 +168,4 @@ def exposition_change(request, url): args['obj_id'] = exposition_id - return render_to_response('place_exposition_add.html', args) - -@login_required -def exposition_all(request): - """ - Return list of all place_expositions - """ - expositions = PlaceExposition.objects.all() - return render_to_response('place_exposition_all.html', {'expositions': expositions}) + return render_to_response('place_exposition_add.html', args) \ No newline at end of file diff --git a/seminar/templates/seminar_all.html b/seminar/templates/seminar_all.html index bbd93180..4e6c852b 100644 --- a/seminar/templates/seminar_all.html +++ b/seminar/templates/seminar_all.html @@ -17,7 +17,7 @@ - {% for item in seminars %} + {% for item in objects %} {{ item.id }} @@ -37,5 +37,17 @@ Добавить семинар + {# pagination #} + {% endblock %} \ No newline at end of file diff --git a/seminar/views.py b/seminar/views.py index ef26e027..056110cb 100644 --- a/seminar/views.py +++ b/seminar/views.py @@ -14,6 +14,15 @@ from file.models import FileModel, TmpFile from file.forms import FileModelForm #python import random +#custom views +from functions.custom_views import objects_list + + +def seminar_all(request): + """ + Return list of all seminars with pagination + """ + return objects_list(request, Seminar, 'seminar_all.html') @login_required @@ -122,13 +131,4 @@ def seminar_change(request, url): object_id=getattr(seminar, 'id')) args['obj_id'] = getattr(seminar, 'id') - return render_to_response('seminar_add.html', args) - - -@login_required -def seminar_all(request): - """ - Return list of all seminars - """ - seminars = Seminar.objects.all() - return render_to_response('seminar_all.html', {'seminars':seminars}) \ No newline at end of file + return render_to_response('seminar_add.html', args) \ No newline at end of file diff --git a/service/templates/review_all.html b/service/templates/review_all.html index 12e20428..6cede8ca 100644 --- a/service/templates/review_all.html +++ b/service/templates/review_all.html @@ -19,7 +19,7 @@ - {% for item in reviews %} + {% for item in objects %} {{ item.id }} {{ item.service }} @@ -37,7 +37,18 @@ + {# pagination #} + {% endblock %} diff --git a/service/templates/service_all.html b/service/templates/service_all.html index 02fdc457..e52fc4e5 100644 --- a/service/templates/service_all.html +++ b/service/templates/service_all.html @@ -17,7 +17,7 @@ - {% for item in services %} + {% for item in objects %} {{ item.id }} {{ item.name }} @@ -33,7 +33,18 @@ Добавить услугу + {# pagination #} + {% endblock %} diff --git a/service/views.py b/service/views.py index 68d0d4fa..80de8d3f 100644 --- a/service/views.py +++ b/service/views.py @@ -8,8 +8,23 @@ from django.contrib.auth.decorators import login_required #models and forms from models import Service, Review from forms import ServiceForm, ReviewForm - from country.models import Country +#custom views +from functions.custom_views import objects_list + + +def service_all(request): + """ + return list of all services with pagination + """ + return objects_list(request, Service, 'service_all.html') + + +def review_all(request): + """ + return list of all reviews with pagination + """ + return objects_list(request, Review, 'review_all.html') @login_required @@ -77,10 +92,6 @@ def service_add(request): return render_to_response('service_add.html', args) -@login_required -def service_all(request): - services = Service.objects.all() - return render_to_response('service_all.html', {'services': services}) @login_required def review_add(request): @@ -122,9 +133,4 @@ def review_change(request, review_id): args['form'] = form args['languages'] = settings.LANGUAGES - return render_to_response('review_add.html', args) - -@login_required -def review_all(request): - reviews = Review.objects.all() - return render_to_response('review_all.html', {'reviews': reviews}) \ No newline at end of file + return render_to_response('review_add.html', args) \ No newline at end of file diff --git a/theme/templates/tag_all.html b/theme/templates/tag_all.html index cd616d4c..036edaa7 100644 --- a/theme/templates/tag_all.html +++ b/theme/templates/tag_all.html @@ -18,13 +18,13 @@ - {% for tag in tags %} + {% for item in objects %} - {{ tag.id }} - {{ tag.name }} - {{ tag.theme }} - {{ tag.main_title }} + {{ item.id }} + {{ item.name }} + {{ item.theme }} + {{ item.main_title }} @@ -38,7 +38,18 @@ Добавить тег + + {# pagination #} + {% endblock %} \ No newline at end of file diff --git a/theme/templates/theme_all.html b/theme/templates/theme_all.html index 5ca852ee..49430d07 100644 --- a/theme/templates/theme_all.html +++ b/theme/templates/theme_all.html @@ -17,12 +17,12 @@ - {% for theme in themes %} + {% for item in objects %} - {{ theme.id }} - {{ theme.name }} - {{ theme.main_title }} + {{ item.id }} + {{ item.name }} + {{ item.main_title }} @@ -37,5 +37,17 @@ Добавить тематику + {# pagination #} + {% endblock %} \ No newline at end of file diff --git a/theme/views.py b/theme/views.py index 82f4b64f..4763d7cc 100644 --- a/theme/views.py +++ b/theme/views.py @@ -6,11 +6,20 @@ from django.conf import settings from django.forms.formsets import BaseFormSet, formset_factory from django.forms.models import modelformset_factory from django.contrib.contenttypes.models import ContentType +from django.contrib.auth.decorators import login_required +#forms and models from forms import ThemeForm, TagForm from models import Theme, Tag +#custom views +from functions.custom_views import objects_list -from bitfield.types import Bit -from django.contrib.auth.decorators import login_required + +def theme_all(request): + return objects_list(request, Theme, 'theme_all.html') + + +def tag_all(request): + return objects_list(request, Tag, 'tag_all.html') @login_required @@ -122,16 +131,4 @@ def tag_change(request, tag_id=None): args['languages'] = settings.LANGUAGES args['tag_id'] = tag_id - return render_to_response('tag_add.html', args) - -@login_required -def theme_all(request): - themes = Theme.objects.all() - return render_to_response('theme_all.html', {'themes': themes}) - -@login_required -def tag_all(request): - tags = Tag.objects.all() - return render_to_response('tag_all.html', {'tags': tags}) - - + return render_to_response('tag_add.html', args) \ No newline at end of file diff --git a/webinar/templates/webinar_all.html b/webinar/templates/webinar_all.html index 3768450a..70a09105 100644 --- a/webinar/templates/webinar_all.html +++ b/webinar/templates/webinar_all.html @@ -17,7 +17,7 @@ - {% for item in webinars %} + {% for item in objects %} {{ item.id }} @@ -37,5 +37,17 @@ Добавить вебинар + {# pagination #} + {% endblock %} \ No newline at end of file diff --git a/webinar/views.py b/webinar/views.py index 6ee96ead..e26461e3 100644 --- a/webinar/views.py +++ b/webinar/views.py @@ -13,8 +13,16 @@ from file.models import FileModel, TmpFile from file.forms import FileModelForm #python import random +#custom views +from functions.custom_views import objects_list +def webinar_all(request): + """ + Return list of all webinars with pagination + """ + return objects_list(request, Webinar, 'webinar_all.html') + @login_required def webinar_add(request): @@ -162,14 +170,4 @@ def webinar_change2(request, url): object_id=getattr(webinar, 'id')) args['obj_id'] = getattr(webinar, 'id') - return render_to_response('webinar_add.html', args) - - - -@login_required -def webinar_all(request): - """ - Return list of all webinars - """ - webinars = Webinar.objects.all() - return render_to_response('webinar_all.html', {'webinars':webinars}) + return render_to_response('webinar_add.html', args) \ No newline at end of file