Skip to content

Commit 907efe6

Browse files
authored
fix: responsive titles in changelist tables (#333)
1 parent 2b96dfc commit 907efe6

File tree

5 files changed

+62
-49
lines changed

5 files changed

+62
-49
lines changed

src/unfold/static/unfold/css/styles.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/unfold/templates/admin/base.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
{% endblock %}
1111
{% endif %}
1212

13-
<div id="main" class="flex-grow">
13+
<div id="main" class="flex-grow min-w-0">
1414
{% include "unfold/helpers/header.html" %}
1515

1616
{% if not is_popup %}

src/unfold/templates/admin/change_list.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
{% endif %}
6868

6969
<div class="flex -mx-4 module{% if cl.has_filters %} filtered{% endif %}" id="changelist">
70-
<div class="changelist-form-container flex-grow px-4" x-data="{ filterOpen: false }">
70+
<div class="changelist-form-container flex-grow min-w-0 px-4" x-data="{ filterOpen: false }">
7171
{% block date_hierarchy %}
7272
{% if cl.date_hierarchy %}
7373
{% date_hierarchy cl %}

src/unfold/templates/admin/change_list_results.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
{% endif %}
88

99
{% if results %}
10-
<table id="result_list" class="border-gray-200 border-spacing-none border-separate text-gray-700 w-full dark:text-gray-400 lg:border lg:rounded-md lg:shadow-sm lg:dark:border-gray-800">
10+
<table id="result_list" class="block border-gray-200 border-spacing-none border-separate text-gray-700 w-full dark:text-gray-400 lg:border lg:rounded-md lg:shadow-sm lg:table lg:dark:border-gray-800">
1111
<thead class="hidden lg:table-header-group">
1212
<tr>
1313
{% for header in result_headers %}
@@ -52,7 +52,7 @@
5252
</tr>
5353
</thead>
5454

55-
<tbody>
55+
<tbody class="block lg:table-row-group">
5656
{% for result in results %}
5757
{% if result.form and result.form.non_field_errors %}
5858
<tr>

src/unfold/templatetags/unfold_list.py

Lines changed: 57 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,61 @@
3636

3737
register = Library()
3838

39-
LINK_CLASSES = ["text-gray-700 dark:text-gray-200"]
39+
LINK_CLASSES = [
40+
"text-gray-700",
41+
"truncate",
42+
"dark:text-gray-200",
43+
]
44+
45+
ROW_CLASSES = [
46+
"align-middle",
47+
"flex",
48+
"border-t",
49+
"border-gray-200",
50+
"font-normal",
51+
"gap-4",
52+
"min-w-0",
53+
"overflow-hidden",
54+
"px-3",
55+
"py-2",
56+
"text-left",
57+
"text-sm",
58+
"before:flex",
59+
"before:capitalize",
60+
"before:content-[attr(data-label)]",
61+
"before:items-center",
62+
"before:mr-auto",
63+
"before:text-gray-500",
64+
"first:border-t-0",
65+
"dark:before:text-gray-400",
66+
"lg:before:hidden",
67+
"lg:first:border-t",
68+
"lg:py-3",
69+
"lg:table-cell",
70+
"dark:border-gray-800",
71+
]
72+
73+
CHECKBOX_CLASSES = [
74+
"action-checkbox",
75+
"align-middle",
76+
"flex",
77+
"items-center",
78+
"px-3",
79+
"py-2",
80+
"text-left",
81+
"text-sm",
82+
"before:block",
83+
"before:capitalize",
84+
"before:content-[attr(data-label)]",
85+
"before:mr-auto",
86+
"before:text-gray-500",
87+
"lg:before:hidden",
88+
"lg:border-t",
89+
"lg:border-gray-200",
90+
"lg:table-cell",
91+
"dark:before:text-gray-400",
92+
"dark:lg:border-gray-800",
93+
]
4094

4195

4296
def result_headers(cl):
@@ -158,28 +212,7 @@ def link_in_col(is_first: bool, field_name: str, cl: ChangeList) -> bool:
158212
empty_value_display = cl.model_admin.get_empty_value_display()
159213
row_classes = [
160214
"field-%s" % _coerce_field_name(field_name, field_index),
161-
"align-middle",
162-
"flex",
163-
"border-t",
164-
"border-gray-200",
165-
"font-normal",
166-
"px-3",
167-
"py-2",
168-
"text-left",
169-
"text-sm",
170-
"before:flex",
171-
"before:capitalize",
172-
"before:content-[attr(data-label)]",
173-
"before:items-center",
174-
"before:mr-auto",
175-
"before:text-gray-500",
176-
"first:border-t-0",
177-
"dark:before:text-gray-400",
178-
"lg:before:hidden",
179-
"lg:first:border-t",
180-
"lg:py-3",
181-
"lg:table-cell",
182-
"dark:border-gray-800",
215+
*ROW_CLASSES,
183216
]
184217

185218
try:
@@ -192,27 +225,7 @@ def link_in_col(is_first: bool, field_name: str, cl: ChangeList) -> bool:
192225
)
193226
if f is None or f.auto_created:
194227
if field_name == "action_checkbox":
195-
row_classes = [
196-
"action-checkbox",
197-
"align-middle",
198-
"flex",
199-
"items-center",
200-
"px-3",
201-
"py-2",
202-
"text-left",
203-
"text-sm",
204-
"before:block",
205-
"before:capitalize",
206-
"before:content-[attr(data-label)]",
207-
"before:mr-auto",
208-
"before:text-gray-500",
209-
"lg:before:hidden",
210-
"lg:border-t",
211-
"lg:border-gray-200",
212-
"lg:table-cell",
213-
"dark:before:text-gray-400",
214-
"dark:lg:border-gray-800",
215-
]
228+
row_classes = CHECKBOX_CLASSES
216229
boolean = getattr(attr, "boolean", False)
217230
label = getattr(attr, "label", False)
218231
header = getattr(attr, "header", False)

0 commit comments

Comments
 (0)