search: add autofocus option on search input (#37811)

This commit is contained in:
Thomas NOËL 2019-11-20 11:36:31 +01:00
parent 8109a2a5c9
commit f887b66ead
5 changed files with 30 additions and 2 deletions

View File

@ -25,7 +25,7 @@ from .models import SearchCell
class SearchCellForm(forms.ModelForm):
class Meta:
model = SearchCell
fields = ('_search_services',)
fields = ('_search_services', 'autofocus')
def __init__(self, *args, **kwargs):
super(SearchCellForm, self).__init__(*args, **kwargs)

View File

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.18 on 2019-11-20 13:06
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('search', '0004_remove_searchcell__search_service'),
]
operations = [
migrations.AddField(
model_name='searchcell',
name='autofocus',
field=models.BooleanField(default=False, verbose_name='Autofocus'),
),
]

View File

@ -17,6 +17,7 @@
import os
from django.conf import settings
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django import template
from django.http import HttpResponse
@ -42,6 +43,7 @@ class SearchCell(CellBase):
manager_form_template = 'combo/manager/search-cell-form.html'
_search_services = JSONField(_('Search Services'), default=dict, blank=True)
autofocus = models.BooleanField(_('Autofocus'), default=False)
class Meta:
verbose_name = _('Search')

View File

@ -3,7 +3,7 @@
{% block search-form %}
<form id="combo-search-form-{{ cell.pk }}" class="combo-search-form">
<input type="search" name="q" autocomplete="off" id="combo-search-input-{{ cell.pk }}" class="combo-search-input" />
<input type="search" name="q" autocomplete="off" id="combo-search-input-{{ cell.pk }}" class="combo-search-input" {% if cell.autofocus %}autofocus {% endif %}/>
<button class="submit-button">{% trans "Search" %}</button>
</form>
{% endblock %}

View File

@ -65,6 +65,12 @@ def test_search_cell(app):
resp = cell.render({})
assert 'input' in resp
assert 'id="combo-search-input-%s"' % cell.pk in resp
assert 'autofocus' not in resp
cell.autofocus = True
cell.save()
resp = cell.render({})
assert 'autofocus' in resp
cell.slug = 'var-name'
context = {'request': RequestFactory().get('/?q_var_name=searchme')}