Skip to content

Commit d4e4026

Browse files
sarahboyceSaptakS
authored andcommitted
Restored search hotkey for desktop.
1 parent b6ee77e commit d4e4026

File tree

6 files changed

+41
-105
lines changed

6 files changed

+41
-105
lines changed

djangoproject/scss/_dark-mode.scss

Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -284,13 +284,17 @@ html[data-theme="dark"] .img-release {
284284
cursor: pointer;
285285
border: none;
286286
background: transparent;
287-
vertical-align: middle;
287+
margin: 0 2px;
288288
padding: 0;
289289
color: var(--menu);
290+
width: 45px;
291+
height: 45px;
292+
display: flex;
293+
align-items: center;
294+
justify-content: center;
290295
}
291296

292297
.theme-toggle svg {
293-
vertical-align: middle;
294298
max-width: 16px;
295299
max-height: 16px;
296300
display: none;
@@ -347,31 +351,6 @@ html[data-theme="light"] .theme-toggle .theme-label-when-light {
347351
background-color: var(--body-bg);
348352
}
349353

350-
// Section of the header that is only visible on mobile.
351-
.header-mobile-only {
352-
line-height: 45px;
353-
text-align: center;
354-
display: flex;
355-
align-items: center;
356-
357-
@include respond-min(1080px) {
358-
display: none;
359-
}
360-
361-
.light-dark-mode-toggle {
362-
height: 45px;
363-
width: 45px;
364-
}
365-
}
366-
367-
// The last 2 items of the nav list are the searchbar and the light/dark mode toggle.
368-
// These are not visible on mobile as they are within the .header-mobile-only section.
369-
header nav li:nth-last-child(-n+2) {
370-
@include respond-max(1079px) {
371-
display: none;
372-
}
373-
}
374-
375354
html[data-theme="light"] .admonition {
376355
.admonition-title::before {
377356
opacity: 0.5;

djangoproject/scss/_style.scss

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -465,8 +465,6 @@ header {
465465
align-items: center;
466466
}
467467

468-
.header-mobile-only {margin-left: auto}
469-
470468
.meta {
471469
@include font-size(13);
472470
color: var(--primary);
@@ -475,7 +473,7 @@ header {
475473
margin: 8px 0 0 10px;
476474
display: none;
477475

478-
@include respond-min(1080px) {
476+
@include respond-min(1500px) {
479477
width: 200px;
480478
display: block;
481479
}
@@ -509,6 +507,22 @@ header {
509507
}
510508
}
511509

510+
.header-tools {
511+
display: flex;
512+
align-items: center;
513+
order: 1;
514+
margin-left: auto;
515+
516+
.search {
517+
flex: 0 1 240px;
518+
}
519+
520+
@include respond-min(1280px) {
521+
order: 3;
522+
margin-left: 0;
523+
}
524+
}
525+
512526
.menu-button {
513527
@include font-size(20);
514528
background: $green-dark;
@@ -520,8 +534,9 @@ header {
520534
text-align: center;
521535
text-decoration: none;
522536
width: 45px;
537+
order: 2;
523538

524-
@include respond-min(1080px) {
539+
@include respond-min(1280px) {
525540
display: none;
526541
}
527542

@@ -535,30 +550,35 @@ header {
535550
}
536551

537552
nav {
553+
order: 4;
538554
width: 100%;
539555
background: $green-dark;
540556
transition: max-height 0.3s ease-out;
541557
max-height: 0; // hide mobile menu by default
542558
overflow: hidden;
543559
padding: 0 2px;
560+
flex-basis: 100%;
544561

545562
&.active {
546563
max-height: 580px;
547564
}
548565

549-
@include respond-min(1080px) {
566+
@include respond-min(1280px) {
550567
width: auto;
568+
order: 2;
569+
margin-left: auto;
570+
flex-basis: auto;
551571
max-height: none; // always show menu on a desktop width
552572
}
553573

554574
ul {
555575
margin: 10px 0 0;
556576
padding: 0;
557577

558-
@include respond-min(1080px) {
578+
@include respond-min(1280px) {
559579
display: flex;
560580
align-items: center;
561-
margin: 0;
581+
margin: 2px 0;
562582
}
563583
}
564584

@@ -576,7 +596,7 @@ header {
576596
padding: 20px 0px;
577597
}
578598

579-
@include respond-min(1080px) {
599+
@include respond-min(1280px) {
580600
margin: 0;
581601
border: 0;
582602
float: left;
@@ -616,7 +636,7 @@ header {
616636
color: var(--secondary-accent);
617637
}
618638

619-
@include respond-min(1080px) {
639+
@include respond-min(1280px) {
620640
padding: 20px 10px;
621641
}
622642
}

djangoproject/templates/includes/header.html

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,6 @@
66
<div class="container container--flex--wrap--mobile">
77
<a class="logo" href="{% url 'homepage' %}">Django</a>
88
<p class="meta">The web framework for perfectionists with deadlines.</p>
9-
<div class="header-mobile-only">
10-
{% search_form %}
11-
<div class="light-dark-mode-toggle">
12-
{% include "includes/toggle_theme.html" %}
13-
</div>
14-
</div>
159
<button class="menu-button">
1610
<i class="icon icon-reorder"></i>
1711
<span class="visuallyhidden">Menu</span>
@@ -46,13 +40,11 @@
4640
<li{% if 'fundraising' in request.path %} class="active"{% endif %}>
4741
<a href="{% url 'fundraising:index' %}">&#9829; Donate</a>
4842
</li>
49-
<li>
50-
{% search_form %}
51-
</li>
52-
<li>
53-
{% include "includes/toggle_theme.html" %}
54-
</li>
5543
</ul>
5644
</nav>
45+
<div class="header-tools">
46+
{% search_form %}
47+
{% include "includes/toggle_theme.html" %}
48+
</div>
5749
</div>
5850
</header>

djangoproject/utils.py

Lines changed: 0 additions & 36 deletions
This file was deleted.

docs/templatetags/docs.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,15 @@
1010
from pygments.formatters.html import HtmlFormatter
1111
from pygments.lexers import get_lexer_by_name
1212

13-
from djangoproject.utils import CachedLibrary
14-
1513
from ..forms import DocSearchForm
1614
from ..models import DocumentRelease
1715
from ..search import START_SEL, STOP_SEL
1816
from ..utils import get_doc_path, get_doc_root, get_module_path
1917

20-
register = CachedLibrary()
18+
register = template.Library()
2119

2220

23-
@register.cached_context_inclusion_tag("search_form.html")
21+
@register.inclusion_tag("search_form.html", takes_context=True)
2422
def search_form(context):
2523
if "request" not in context:
2624
# Django's built-in error views (like django.views.defaults.server_error)

docs/tests/test_templates.py

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
import shutil
33
import tempfile
44
from pathlib import Path
5-
from unittest.mock import Mock
65

76
from django.conf import settings
87
from django.template import Context, Template
@@ -251,19 +250,3 @@ def test_search_form_renders_without_request_in_template(self):
251250
kwargs={"lang": settings.DEFAULT_LANGUAGE_CODE, "version": "dev"},
252251
)
253252
self.assertIn(f'<form action="{docs_search_url}">', rendered)
254-
255-
def test_search_form_queries_multiple_renders(self):
256-
r2 = Release.objects.create(version="2.0")
257-
DocumentRelease.objects.create(
258-
lang=settings.DEFAULT_LANGUAGE_CODE, release=r2, is_default=True
259-
)
260-
template = Template("{% load docs %}{% search_form %}{% search_form %}")
261-
with self.assertNumQueries(1):
262-
rendered = template.render(Context({"request": Mock()}))
263-
264-
docs_search_url = reverse_with_host(
265-
"document-search",
266-
host="docs",
267-
kwargs={"lang": settings.DEFAULT_LANGUAGE_CODE, "version": "2.0"},
268-
)
269-
self.assertEqual(rendered.count(f'<form action="{docs_search_url}">'), 2)

0 commit comments

Comments
 (0)