file name search

This commit is contained in:
dave 2021-08-14 11:08:31 -07:00
parent 7bd5f77888
commit c04de109a8
2 changed files with 19 additions and 4 deletions

View File

@ -1,5 +1,6 @@
import os import os
import math import math
import time
import logging import logging
import cherrypy import cherrypy
from urllib.parse import urlparse from urllib.parse import urlparse
@ -445,6 +446,7 @@ class SearchView(object):
set_after=None, set_after=None,
keywords_title=None, keywords_title=None,
keywords_description=None, keywords_description=None,
keywords_filename=None,
operation=None, operation=None,
add_tag=None, add_tag=None,
remove_tag=None, remove_tag=None,
@ -511,6 +513,10 @@ class SearchView(object):
base = base \ base = base \
.filter(PhotoSet.description.like("%{}%".format(keywords_description))) .filter(PhotoSet.description.like("%{}%".format(keywords_description)))
if keywords_filename:
base = base \
.filter(PhotoSet.id.in_(db.query(Photo.set_id).filter(Photo.fname.like("%{}%".format(keywords_filename)))))
base = base \ base = base \
.order_by(PhotoSet.date.desc()) .order_by(PhotoSet.date.desc())
@ -551,9 +557,13 @@ class SearchView(object):
# or is it Fine since we don't re-use any orm-mapped objects from above? # or is it Fine since we don't re-use any orm-mapped objects from above?
db.expire_all() db.expire_all()
query_start = time.time()
total_sets = build_query(db.query(func.count(PhotoSet.id))).scalar() total_sets = build_query(db.query(func.count(PhotoSet.id))).scalar()
images = build_query(db.query(PhotoSet)).offset(pgsize * page).limit(pgsize).all() images = build_query(db.query(PhotoSet)).offset(pgsize * page).limit(pgsize).all()
query_duration = time.time() - query_start
yield self.master.render( yield self.master.render(
"search.html", "search.html",
include_tags=include_tags, include_tags=include_tags,
@ -568,7 +578,9 @@ class SearchView(object):
after=after.strftime(FMT_TIME_SEARCH) if after else "", after=after.strftime(FMT_TIME_SEARCH) if after else "",
keywords_title=keywords_title or "", keywords_title=keywords_title or "",
keywords_description=keywords_description or "", keywords_description=keywords_description or "",
keywords_filename=keywords_filename or "",
now=datetime.now().strftime(FMT_TIME_SEARCH), now=datetime.now().strftime(FMT_TIME_SEARCH),
query_duration=query_duration,
) )

View File

@ -54,6 +54,12 @@
<input type="text" name="keywords_description" value="{{ keywords_description }}" /> <input type="text" name="keywords_description" value="{{ keywords_description }}" />
</label> </label>
</div> </div>
<div>
<label>
File name:<br />
<input type="text" name="keywords_filename" value="{{ keywords_filename }}" />
</label>
</div>
</div> </div>
<div class="pure-u-1-5"> <div class="pure-u-1-5">
<p>Options</p> <p>Options</p>
@ -149,10 +155,7 @@
{% endfor %} {% endfor %}
</ul> </ul>
{% endif %} {% endif %}
</form> </form>
<!-- query time: {{ query_duration }}s -->
{% endblock %} {% endblock %}