Skip to content

Commit b7b456e

Browse files
added a search file form
1 parent c096b4b commit b7b456e

File tree

8 files changed

+45
-13
lines changed

8 files changed

+45
-13
lines changed
79 Bytes
Binary file not shown.
83 Bytes
Binary file not shown.
289 Bytes
Binary file not shown.

gallery/loadFiles.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# -*- coding: utf-8 -*-
2-
import os
2+
import os, re
33
import urllib.parse
44

55
class LoadFiles:
@@ -13,17 +13,19 @@ def scanDirFunc(self):
1313
files = os.listdir(self.path_to_scan)
1414
return files
1515

16-
def getFirstFile(self, files, first_file = True):
16+
def getFirstFile(self, files, first_file = True, search = None):
1717
files_content = []
1818
for file in files:
1919
if(os.path.isdir(self.path_to_scan + '/' + file) == False):
2020
continue
21+
if search and not re.search(re.escape(search), file, flags=re.I):
22+
continue
2123
files_in_dir = os.listdir(self.path_to_scan + '/' + file)
2224
if(first_file == True):
2325
files_in_dir = files_in_dir[0]
2426
files_content.append({
2527
'dir_name': file,
26-
'dir_name_encoded': LoadFiles.encodeUrl(file),
28+
'dir_name_encoded': file,
2729
'files_in_dir': LoadFiles.encodeUrl(file+'/'+files_in_dir)
2830
})
2931
return files_content

gallery/urls.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
urlpatterns = [
66
path('', views.index, name='index_main'),
77
url(r'^(?P<last_item>\d+)$', views.index, name='index_main'),
8+
path('search', views.search, name='search_main'),
9+
url(r'^search/(?P<search>.+)$', views.search, name='search_main'),
810
path('view/<folder_name>', views.view, name='view_main'),
911
url(r'^view/(?P<folder_name>.+)/(?P<last_item>\d+)$', views.view, name='view_main'),
1012
]

gallery/views.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
import random
55

66
def index(request, last_item = None):
7-
r = Pagination(last_item)
87
s = LoadFiles()
8+
r = Pagination(last_item)
99
files = s.scanDirFunc()[r.prev:r.lastPage]
1010
return render(request, 'index.html', {
1111
'complete_list': s.getFirstFile(files),
@@ -14,11 +14,25 @@ def index(request, last_item = None):
1414
})
1515

1616
def view(request, folder_name, last_item = None):
17+
s = LoadFiles()
1718
r = Pagination(last_item)
1819
return render(request, 'view.html', {
19-
'files': LoadFiles().getPhotosFiles(folder_name)[r.prev:r.lastPage],
20+
'files': s.getPhotosFiles(folder_name)[r.prev:r.lastPage],
2021
'folder_name': folder_name,
2122
'next': r.next,
2223
'prev': r.prev
2324
})
2425

26+
def search(request, search = None):
27+
s = LoadFiles()
28+
files = s.scanDirFunc()
29+
search_get = request.GET['search']
30+
if search_get:
31+
search = search_get
32+
if not search_get and not search: # check if empty string
33+
files = []
34+
return render(request, 'index.html', {
35+
'complete_list': s.getFirstFile(files, True, search),
36+
'next': None,
37+
'prev': None
38+
})

templates/index.html

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,30 @@
44
{% endblock %}
55
{% load static %}
66
<div class="container">
7+
{% if prev != None %}
78
<nav aria-label="...">
89
<ul class="pagination">
910
<li class="page-item"><a class="page-link" href="{% url 'index_main' prev %}">Previous</a></li>
1011
<li class="page-item"><a class="page-link" href="{% url 'index_main' next %}"> Next</a></li>
1112
<li class="page-item"><a class="page-link" href="{% url 'index_main' %}">Main page</a></li>
1213
</ul>
1314
</nav>
15+
{% endif %}
16+
17+
<div class="row">
18+
<form action="{% url 'search_main' %}" class="form-inline" method="get">
19+
<div class="form-group mx-sm-3 mb-2">
20+
<label for="inputSearch" class="sr-only">Search:</label>
21+
<input type="text" class="form-control" id="search" placeholder="Search" name="search">
22+
</div>
23+
<button type="submit" class="btn btn-primary mb-2">Submit</button>
24+
<div class="form-group mx-sm-3 mb-2">
25+
<a href="{% url 'index_main' %}">Reset</a>
26+
</div>
27+
</form>
28+
</div>
29+
30+
1431
<div class="row">
1532
{% for file in complete_list %}
1633
<div class="col-3">
@@ -23,11 +40,13 @@
2340
</div>
2441
{% endfor %}
2542
</div>
43+
{% if prev != None %}
2644
<nav aria-label="...">
2745
<ul class="pagination">
2846
<li class="page-item"><a class="page-link" href="{% url 'index_main' prev %}">Previous</a></li>
2947
<li class="page-item"><a class="page-link" href="{% url 'index_main' next %}"> Next</a></li>
3048
<li class="page-item"><a class="page-link" href="{% url 'index_main' %}">Main page</a></li>
3149
</ul>
3250
</nav>
51+
{% endif %}
3352
</div>

templates/view.html

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,11 @@
1010
};
1111
</script>
1212
<div class="container">
13-
<nav aria-label="...">
14-
<ul class="pagination">
15-
<li class="page-item"><a class="page-link" href="{% url 'view_main' folder_name prev %}">Previous</a></li>
16-
<li class="page-item"><a class="page-link" href="{% url 'view_main' folder_name next %}"> Next</a></li>
17-
<li class="page-item"><a class="page-link" href="{% url 'index_main' %}">Main page</a></li>
18-
</ul>
19-
</nav>
2013
<div class="row">
2114
<div class="row zoomwall" id="zoomwall" >
2215
{% for file in files %}
23-
<img class="col-3" src="{% static file %}">
16+
<!-- class="col-3" -->
17+
<img src="{% static file %}">
2418
{% endfor %}
2519
</div>
2620
</div>
@@ -31,4 +25,5 @@
3125
<li class="page-item"><a class="page-link" href="{% url 'index_main' %}">Main page</a></li>
3226
</ul>
3327
</nav>
28+
<div class="row"><i>{{ folder_name }}</i></div>
3429
</div>

0 commit comments

Comments
 (0)