manager: add minimal search of assets (#11491)
This commit is contained in:
parent
be2a10e460
commit
a652a983b6
|
@ -12,7 +12,7 @@
|
|||
|
||||
{% block content %}
|
||||
|
||||
{% if not object_list %}
|
||||
{% if not object_list and not query %}
|
||||
<div class="big-msg-info">
|
||||
{% blocktrans %}
|
||||
This site doesn't have any asset yet. You can add some directly when editing
|
||||
|
@ -22,6 +22,12 @@
|
|||
|
||||
{% else %}
|
||||
|
||||
<form>
|
||||
<p><input name="q" type="search" value="{{query}}"> <button>{% trans 'Search' %}</button>
|
||||
<span class="help_text">{% trans "(case insensitive search over filenames)" %}</span>
|
||||
</p>
|
||||
</form>
|
||||
|
||||
<div id="assets-browser">
|
||||
<div id="assets-listing">
|
||||
<table class="main">
|
||||
|
|
|
@ -414,9 +414,17 @@ class Assets(ListView):
|
|||
|
||||
def get_queryset(self):
|
||||
files = [Asset(x) for x in ckeditor.views.get_image_files(self.request.user)]
|
||||
q = self.request.GET.get('q')
|
||||
if q:
|
||||
files = [x for x in files if q.lower() in x.filename.lower()]
|
||||
files.sort(key=lambda x: getattr(x, 'filename'))
|
||||
return files
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(Assets, self).get_context_data(**kwargs)
|
||||
context['query'] = self.request.GET.get('q') or ''
|
||||
return context
|
||||
|
||||
assets = Assets.as_view()
|
||||
|
||||
|
||||
|
|
|
@ -585,6 +585,27 @@ def test_asset_management(app, admin_user):
|
|||
resp = resp.form.submit().follow()
|
||||
assert 'have any asset yet.' in resp.body
|
||||
|
||||
def test_asset_management_search(app, admin_user):
|
||||
app = login(app)
|
||||
|
||||
filepath = os.path.join(settings.CKEDITOR_UPLOAD_PATH, 'test.png')
|
||||
pix = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQAAAAA3bvkkAAAACklEQVQI12NoAAAAggCB3UNq9AAAAABJRU5ErkJggg=='
|
||||
default_storage.save(filepath, StringIO.StringIO(base64.decodestring(pix)))
|
||||
assert os.path.exists(default_storage.path(filepath))
|
||||
|
||||
filepath = os.path.join(settings.CKEDITOR_UPLOAD_PATH, 'test.txt')
|
||||
default_storage.save(filepath, StringIO.StringIO('hello world'))
|
||||
|
||||
filepath = os.path.join(settings.CKEDITOR_UPLOAD_PATH, 'foo.txt')
|
||||
default_storage.save(filepath, StringIO.StringIO('foo bar baz'))
|
||||
|
||||
resp = app.get('/manage/assets/')
|
||||
assert resp.body.count('<tr class="asset') == 3
|
||||
|
||||
resp.form['q'] = 'test'
|
||||
resp = resp.form.submit()
|
||||
assert resp.body.count('<tr class="asset') == 2
|
||||
|
||||
def test_menu_json(app, admin_user):
|
||||
app.get('/manage/menu.json', status=302)
|
||||
|
||||
|
|
Loading…
Reference in New Issue