Skip to content

Commit 332abd1

Browse files
add pagination to main page
1 parent d93d959 commit 332abd1

File tree

11 files changed

+80
-7
lines changed

11 files changed

+80
-7
lines changed
1.41 KB
Binary file not shown.
210 Bytes
Binary file not shown.
38 Bytes
Binary file not shown.
152 Bytes
Binary file not shown.

gallery/pagination.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
class Pagination:
2+
3+
MAX_ON_PAGE = 500
4+
5+
def __init__(self, last_page = None):
6+
self.__last_page = self.lastPageSetter(last_page, self.MAX_ON_PAGE)
7+
self.__next = self.nextSetter(self.__last_page, self.MAX_ON_PAGE)
8+
self.__prev = self.prevSetter(self.__last_page, self.MAX_ON_PAGE)
9+
10+
@property
11+
def lastPage(self):
12+
return self.__last_page
13+
14+
@property
15+
def next(self):
16+
return self.__next
17+
18+
# @next.setter
19+
def nextSetter(self, value, max_pages):
20+
return value + max_pages
21+
22+
@property
23+
def prev(self):
24+
return self.__prev
25+
26+
# @prev.setter
27+
def lastPageSetter(self, value, max_pages):
28+
return int(value if value != None else max_pages)
29+
30+
# @prev.setter
31+
def prevSetter(self, value, max_pages):
32+
prev_var = (value if value else 0) - max_pages
33+
return 0 if prev_var < 0 else prev_var
34+
35+
# def setMaxPagination(max, search):
36+
# return search ? max : ( >= max ? max : $this->getLastPage());
37+
38+
39+
# function setMinPagination($search) : int {
40+
# return $search ? 0 : $this->getPrev();
41+
# }
42+

gallery/scan_dir_class.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1+
# -*- coding: utf-8 -*-
12
import os
3+
import urllib.parse
24

35
class ScanDir:
46

57
PATH = "c:/Users/George/venv/myProjects/gallery-pic"
68

79
def scanDirFunc(self):
810
files = os.listdir(self.PATH)
9-
return files[:20]
11+
return files
1012

1113
def getFirstFile(self, files, first_file = True):
1214
files_content = []
@@ -18,9 +20,17 @@ def getFirstFile(self, files, first_file = True):
1820
files_in_dir = files_in_dir[0]
1921
files_content.append({
2022
'dir': file,
21-
'files_in_dir': file+'/'+files_in_dir
23+
'files_in_dir': ScanDir.replaceString(file+'/'+files_in_dir)
2224
})
2325
return files_content
24-
26+
27+
@staticmethod
28+
def replaceString(str_var):
29+
# # str_var = str_var.replace('%','%25')
30+
# # str_var = str_var.replace('#','%23')
31+
# str_var_n = str_var.decode('utf8')
32+
# str_var = str_var_n.encode('cp1250')
33+
# str_var = urllib.parse.quote(str_var)
34+
return urllib.parse.quote_plus(str_var)
2535

2636

gallery/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@
44

55
urlpatterns = [
66
path('', views.index, name='index_main'),
7+
url(r'^(?P<last_item>\d+)$', views.index, name='index_main'),
78
path('view', views.view, name='view_main'),
89
]

gallery/views.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,22 @@
11
from django.shortcuts import render
22
from gallery.scan_dir_class import ScanDir
3+
from gallery.pagination import Pagination
34
import random
45

56

6-
def index(request):
7-
files = ScanDir().scanDirFunc()
7+
def index(request, last_item = None):
8+
r = Pagination(last_item)
9+
s = ScanDir()
10+
files = s.scanDirFunc()
11+
files = s.scanDirFunc()[r.prev:r.next]
812
return render(request, 'index.html', {
913
'var_test': 's',
1014
'files': files,
11-
'complete_list': ScanDir().getFirstFile(files)
15+
'complete_list': s.getFirstFile(files),
16+
'next': r.next,
17+
'prev': r.prev,
1218
})
1319

1420
def view(request):
15-
return render(request, 'view.html', {'var_test': 's2'})
21+
return render(request, 'view.html', {'var_test': 's2'})
22+
14 Bytes
Binary file not shown.

python_gallery_manager/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from django.conf.urls import include
44
from django.conf import settings
55
from django.conf.urls.static import static
6+
from django.urls import path
67

78
urlpatterns = [
89
# path('admin/', admin.site.urls),

0 commit comments

Comments
 (0)