Skip to content

Commit ba6a32c

Browse files
authored
Merge pull request #177 from classy-python/reorder-nav
Add explicit ordering to navigation elements
2 parents b4a20da + c734680 commit ba6a32c

8 files changed

Lines changed: 603 additions & 582 deletions

File tree

cbv/templatetags/cbv_tags.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def nav(version, module=None, klass=None):
9898

9999
modules = [
100100
ModuleData.from_module(module=m, active_module=module, active_klass=klass)
101-
for m in version.module_set.prefetch_related("klass_set")
101+
for m in version.module_set.prefetch_related("klass_set").order_by("name")
102102
]
103103

104104
return {

cbv/tests/_page_snapshots/fuzzy-klass-detail.html

Lines changed: 86 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@
3737
<a class="brand" href="/">ccbv.co.uk</a>
3838
<ul class="nav">
3939

40-
<li li="version-4.0" class="dropdown">
40+
41+
42+
<li li="version-4.0" class="dropdown">
4143

4244
<a href="#version-4.0" class="dropdown-toggle" data-toggle="dropdown">
4345
Django 4.0 <b class="caret"></b>
@@ -53,6 +55,89 @@
5355
</li>
5456

5557

58+
<li class="divider-vertical"></li>
59+
<li><a href="#">Auth</a></li>
60+
61+
62+
<li id="module-mixins" class="dropdown">
63+
<a href="#module-mixins" class="dropdown-toggle" data-toggle="dropdown">
64+
Mixins <b class="caret"></b>
65+
</a>
66+
<ul class="dropdown-menu">
67+
68+
<li >
69+
<a href="/projects/Django/4.0/django.contrib.auth.mixins/AccessMixin/">AccessMixin</a>
70+
</li>
71+
72+
<li >
73+
<a href="/projects/Django/4.0/django.contrib.auth.mixins/LoginRequiredMixin/">LoginRequiredMixin</a>
74+
</li>
75+
76+
<li >
77+
<a href="/projects/Django/4.0/django.contrib.auth.mixins/PermissionRequiredMixin/">PermissionRequiredMixin</a>
78+
</li>
79+
80+
<li >
81+
<a href="/projects/Django/4.0/django.contrib.auth.mixins/UserPassesTestMixin/">UserPassesTestMixin</a>
82+
</li>
83+
84+
</ul>
85+
</li>
86+
87+
88+
89+
90+
<li id="module-views" class="dropdown">
91+
<a href="#module-views" class="dropdown-toggle" data-toggle="dropdown">
92+
Views <b class="caret"></b>
93+
</a>
94+
<ul class="dropdown-menu">
95+
96+
<li >
97+
<a href="/projects/Django/4.0/django.contrib.auth.views/LoginView/">LoginView</a>
98+
</li>
99+
100+
<li >
101+
<a href="/projects/Django/4.0/django.contrib.auth.views/LogoutView/">LogoutView</a>
102+
</li>
103+
104+
<li >
105+
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordChangeDoneView/">PasswordChangeDoneView</a>
106+
</li>
107+
108+
<li >
109+
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordChangeView/">PasswordChangeView</a>
110+
</li>
111+
112+
<li >
113+
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordContextMixin/">PasswordContextMixin</a>
114+
</li>
115+
116+
<li >
117+
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordResetCompleteView/">PasswordResetCompleteView</a>
118+
</li>
119+
120+
<li >
121+
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordResetConfirmView/">PasswordResetConfirmView</a>
122+
</li>
123+
124+
<li >
125+
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordResetDoneView/">PasswordResetDoneView</a>
126+
</li>
127+
128+
<li >
129+
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordResetView/">PasswordResetView</a>
130+
</li>
131+
132+
<li >
133+
<a href="/projects/Django/4.0/django.contrib.auth.views/SuccessURLAllowedHostsMixin/">SuccessURLAllowedHostsMixin</a>
134+
</li>
135+
136+
</ul>
137+
</li>
138+
139+
140+
56141
<li class="divider-vertical"></li>
57142
<li><a href="#">Generic</a></li>
58143

@@ -308,88 +393,6 @@
308393
</li>
309394

310395

311-
312-
<li class="divider-vertical"></li>
313-
<li><a href="#">Auth</a></li>
314-
315-
316-
<li id="module-views" class="dropdown">
317-
<a href="#module-views" class="dropdown-toggle" data-toggle="dropdown">
318-
Views <b class="caret"></b>
319-
</a>
320-
<ul class="dropdown-menu">
321-
322-
<li >
323-
<a href="/projects/Django/4.0/django.contrib.auth.views/LoginView/">LoginView</a>
324-
</li>
325-
326-
<li >
327-
<a href="/projects/Django/4.0/django.contrib.auth.views/LogoutView/">LogoutView</a>
328-
</li>
329-
330-
<li >
331-
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordChangeDoneView/">PasswordChangeDoneView</a>
332-
</li>
333-
334-
<li >
335-
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordChangeView/">PasswordChangeView</a>
336-
</li>
337-
338-
<li >
339-
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordContextMixin/">PasswordContextMixin</a>
340-
</li>
341-
342-
<li >
343-
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordResetCompleteView/">PasswordResetCompleteView</a>
344-
</li>
345-
346-
<li >
347-
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordResetConfirmView/">PasswordResetConfirmView</a>
348-
</li>
349-
350-
<li >
351-
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordResetDoneView/">PasswordResetDoneView</a>
352-
</li>
353-
354-
<li >
355-
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordResetView/">PasswordResetView</a>
356-
</li>
357-
358-
<li >
359-
<a href="/projects/Django/4.0/django.contrib.auth.views/SuccessURLAllowedHostsMixin/">SuccessURLAllowedHostsMixin</a>
360-
</li>
361-
362-
</ul>
363-
</li>
364-
365-
366-
367-
368-
<li id="module-mixins" class="dropdown">
369-
<a href="#module-mixins" class="dropdown-toggle" data-toggle="dropdown">
370-
Mixins <b class="caret"></b>
371-
</a>
372-
<ul class="dropdown-menu">
373-
374-
<li >
375-
<a href="/projects/Django/4.0/django.contrib.auth.mixins/AccessMixin/">AccessMixin</a>
376-
</li>
377-
378-
<li >
379-
<a href="/projects/Django/4.0/django.contrib.auth.mixins/LoginRequiredMixin/">LoginRequiredMixin</a>
380-
</li>
381-
382-
<li >
383-
<a href="/projects/Django/4.0/django.contrib.auth.mixins/PermissionRequiredMixin/">PermissionRequiredMixin</a>
384-
</li>
385-
386-
<li >
387-
<a href="/projects/Django/4.0/django.contrib.auth.mixins/UserPassesTestMixin/">UserPassesTestMixin</a>
388-
</li>
389-
390-
</ul>
391-
</li>
392-
393396

394397

395398

cbv/tests/_page_snapshots/fuzzy-module-detail.html

Lines changed: 86 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@
3232
<a class="brand" href="/">ccbv.co.uk</a>
3333
<ul class="nav">
3434

35-
<li li="version-4.0" class="dropdown">
35+
36+
37+
<li li="version-4.0" class="dropdown">
3638

3739
<a href="#version-4.0" class="dropdown-toggle" data-toggle="dropdown">
3840
Django 4.0 <b class="caret"></b>
@@ -48,6 +50,89 @@
4850
</li>
4951

5052

53+
<li class="divider-vertical"></li>
54+
<li><a href="#">Auth</a></li>
55+
56+
57+
<li id="module-mixins" class="dropdown">
58+
<a href="#module-mixins" class="dropdown-toggle" data-toggle="dropdown">
59+
Mixins <b class="caret"></b>
60+
</a>
61+
<ul class="dropdown-menu">
62+
63+
<li >
64+
<a href="/projects/Django/4.0/django.contrib.auth.mixins/AccessMixin/">AccessMixin</a>
65+
</li>
66+
67+
<li >
68+
<a href="/projects/Django/4.0/django.contrib.auth.mixins/LoginRequiredMixin/">LoginRequiredMixin</a>
69+
</li>
70+
71+
<li >
72+
<a href="/projects/Django/4.0/django.contrib.auth.mixins/PermissionRequiredMixin/">PermissionRequiredMixin</a>
73+
</li>
74+
75+
<li >
76+
<a href="/projects/Django/4.0/django.contrib.auth.mixins/UserPassesTestMixin/">UserPassesTestMixin</a>
77+
</li>
78+
79+
</ul>
80+
</li>
81+
82+
83+
84+
85+
<li id="module-views" class="dropdown">
86+
<a href="#module-views" class="dropdown-toggle" data-toggle="dropdown">
87+
Views <b class="caret"></b>
88+
</a>
89+
<ul class="dropdown-menu">
90+
91+
<li >
92+
<a href="/projects/Django/4.0/django.contrib.auth.views/LoginView/">LoginView</a>
93+
</li>
94+
95+
<li >
96+
<a href="/projects/Django/4.0/django.contrib.auth.views/LogoutView/">LogoutView</a>
97+
</li>
98+
99+
<li >
100+
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordChangeDoneView/">PasswordChangeDoneView</a>
101+
</li>
102+
103+
<li >
104+
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordChangeView/">PasswordChangeView</a>
105+
</li>
106+
107+
<li >
108+
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordContextMixin/">PasswordContextMixin</a>
109+
</li>
110+
111+
<li >
112+
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordResetCompleteView/">PasswordResetCompleteView</a>
113+
</li>
114+
115+
<li >
116+
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordResetConfirmView/">PasswordResetConfirmView</a>
117+
</li>
118+
119+
<li >
120+
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordResetDoneView/">PasswordResetDoneView</a>
121+
</li>
122+
123+
<li >
124+
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordResetView/">PasswordResetView</a>
125+
</li>
126+
127+
<li >
128+
<a href="/projects/Django/4.0/django.contrib.auth.views/SuccessURLAllowedHostsMixin/">SuccessURLAllowedHostsMixin</a>
129+
</li>
130+
131+
</ul>
132+
</li>
133+
134+
135+
51136
<li class="divider-vertical"></li>
52137
<li><a href="#">Generic</a></li>
53138

@@ -303,88 +388,6 @@
303388
</li>
304389

305390

306-
307-
<li class="divider-vertical"></li>
308-
<li><a href="#">Auth</a></li>
309-
310-
311-
<li id="module-views" class="dropdown">
312-
<a href="#module-views" class="dropdown-toggle" data-toggle="dropdown">
313-
Views <b class="caret"></b>
314-
</a>
315-
<ul class="dropdown-menu">
316-
317-
<li >
318-
<a href="/projects/Django/4.0/django.contrib.auth.views/LoginView/">LoginView</a>
319-
</li>
320-
321-
<li >
322-
<a href="/projects/Django/4.0/django.contrib.auth.views/LogoutView/">LogoutView</a>
323-
</li>
324-
325-
<li >
326-
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordChangeDoneView/">PasswordChangeDoneView</a>
327-
</li>
328-
329-
<li >
330-
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordChangeView/">PasswordChangeView</a>
331-
</li>
332-
333-
<li >
334-
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordContextMixin/">PasswordContextMixin</a>
335-
</li>
336-
337-
<li >
338-
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordResetCompleteView/">PasswordResetCompleteView</a>
339-
</li>
340-
341-
<li >
342-
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordResetConfirmView/">PasswordResetConfirmView</a>
343-
</li>
344-
345-
<li >
346-
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordResetDoneView/">PasswordResetDoneView</a>
347-
</li>
348-
349-
<li >
350-
<a href="/projects/Django/4.0/django.contrib.auth.views/PasswordResetView/">PasswordResetView</a>
351-
</li>
352-
353-
<li >
354-
<a href="/projects/Django/4.0/django.contrib.auth.views/SuccessURLAllowedHostsMixin/">SuccessURLAllowedHostsMixin</a>
355-
</li>
356-
357-
</ul>
358-
</li>
359-
360-
361-
362-
363-
<li id="module-mixins" class="dropdown">
364-
<a href="#module-mixins" class="dropdown-toggle" data-toggle="dropdown">
365-
Mixins <b class="caret"></b>
366-
</a>
367-
<ul class="dropdown-menu">
368-
369-
<li >
370-
<a href="/projects/Django/4.0/django.contrib.auth.mixins/AccessMixin/">AccessMixin</a>
371-
</li>
372-
373-
<li >
374-
<a href="/projects/Django/4.0/django.contrib.auth.mixins/LoginRequiredMixin/">LoginRequiredMixin</a>
375-
</li>
376-
377-
<li >
378-
<a href="/projects/Django/4.0/django.contrib.auth.mixins/PermissionRequiredMixin/">PermissionRequiredMixin</a>
379-
</li>
380-
381-
<li >
382-
<a href="/projects/Django/4.0/django.contrib.auth.mixins/UserPassesTestMixin/">UserPassesTestMixin</a>
383-
</li>
384-
385-
</ul>
386-
</li>
387-
388391

389392

390393

0 commit comments

Comments
 (0)