Skip to content

Commit 6c39dc3

Browse files
triv: fix date and time field styles and js in inlines,added icons to… (#45)
* triv: fix date and time field styles and js in inlines,added icons to date and time fields * triv: fix visibility of remove handler in inlines * triv: added option to override default
1 parent 4b83aea commit 6c39dc3

File tree

11 files changed

+80
-10
lines changed

11 files changed

+80
-10
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "django-smartbase-admin"
3-
version = "0.2.99"
3+
version = "0.2.100"
44
description = ""
55
authors = ["SmartBase <[email protected]>"]
66
readme = "README.md"

src/django_smartbase_admin/admin/widgets.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from django.utils.formats import get_format
1717
from django.utils.http import urlencode
1818
from django.utils.safestring import mark_safe
19-
from django.utils.translation import gettext_lazy as _
19+
from django.utils.translation import gettext_lazy as _, get_language
2020
from django.views.generic.base import ContextMixin
2121
from filer.fields.file import AdminFileWidget as FilerAdminFileWidget
2222
from filer.fields.image import AdminImageWidget
@@ -32,6 +32,16 @@
3232
logger = logging.getLogger(__name__)
3333

3434

35+
def get_datetime_placeholder(lang=None):
36+
lang = lang or get_language()
37+
sb_admin_settings = getattr(settings, "SB_ADMIN_SETTINGS", {})
38+
placeholder_setting = sb_admin_settings.get("DATETIME_PLACEHOLDER", {})
39+
return placeholder_setting.get(
40+
lang,
41+
placeholder_setting.get("default", {"date": "mm.dd.yyyy", "time": "hh:mm"}),
42+
)
43+
44+
3545
class SBAdminBaseWidget(ContextMixin):
3646
sb_admin_widget = True
3747

@@ -184,6 +194,7 @@ def __init__(self, form_field=None, attrs=None):
184194
attrs={
185195
"class": "input js-datepicker",
186196
"data-sbadmin-datepicker": self.get_data(),
197+
"placeholder": get_datetime_placeholder()["date"],
187198
**(attrs or {}),
188199
},
189200
)
@@ -208,7 +219,13 @@ class SBAdminTimeWidget(SBAdminBaseWidget, forms.TimeInput):
208219

209220
def __init__(self, form_field=None, attrs=None):
210221
super().__init__(
211-
form_field, attrs={"class": "input js-timepicker", **(attrs or {})}
222+
form_field,
223+
attrs={
224+
"class": "input js-timepicker",
225+
"placeholder": get_datetime_placeholder()["time"],
226+
"autocomplete": "do-not-autofill",
227+
**(attrs or {}),
228+
},
212229
)
213230

214231

src/django_smartbase_admin/static/sb_admin/build/tailwind_config_partials/spacing.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ const spacing = {
3535
'88': '5.5rem',
3636
'96': '6rem',
3737
'128': '8rem',
38+
'136': '8.5rem',
3839
'160': '10rem',
3940
'192': '12rem',
4041
'224': '14rem',
Lines changed: 3 additions & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Loading

src/django_smartbase_admin/static/sb_admin/src/css/_datepicker.css

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -651,6 +651,10 @@ span.flatpickr-weekday {
651651
@apply cursor-pointer;
652652
}
653653

654+
.js-datepicker {
655+
@apply min-w-136;
656+
}
657+
654658
.js-timepicker {
655-
@apply max-w-64;
659+
@apply min-w-96 w-96;
656660
}

src/django_smartbase_admin/static/sb_admin/src/css/_inlines.css

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,26 @@
7979
.input-file-wrapper > .input-file {
8080
@apply border-0;
8181
}
82+
>.flex.gap-16 {
83+
@apply h-full;
84+
gap: 1px;
85+
}
86+
.time-wrapper {
87+
@apply w-full;
88+
&:before {
89+
content: '';
90+
@apply block absolute left-0 top-1/2 -translate-y-1/2;
91+
width: 1px;
92+
@apply h-40 bg-dark-200;
93+
z-index: 1;
94+
}
95+
}
96+
.js-datepicker,
97+
.js-timepicker,
98+
.js-datepicker-range,
99+
.js-datetimepicker {
100+
@apply h-full;
101+
}
82102
}
83103
&:last-child {
84104
>tr:last-child {
@@ -175,3 +195,8 @@ fieldset.module > header {
175195
}
176196
}
177197

198+
.djn-remove-handler {
199+
position: relative;
200+
z-index: 1;
201+
}
202+

src/django_smartbase_admin/static/sb_admin/src/js/datepicker.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ export default class Datepicker {
1717
flatpickr.localize(this.getLocale(documentLocale))
1818
this.initWidgets()
1919

20-
document.addEventListener('formset:added', () => {
21-
this.initWidgets()
20+
document.addEventListener('formset:added', (e) => {
21+
this.initWidgets(e.target)
2222
})
2323
}
2424

@@ -158,7 +158,10 @@ export default class Datepicker {
158158
}
159159

160160
Object.keys(datePickerSelector).forEach(selector => {
161-
parentEl.querySelectorAll(selector).forEach(datePickerEl => {
161+
parentEl.querySelectorAll(`${selector}:not([type="hidden"])`).forEach(datePickerEl => {
162+
if(datePickerEl.closest('.djn-empty-form')){
163+
return
164+
}
162165
this.initFlatPickr(datePickerEl, datePickerSelector[selector])
163166
})
164167
})

src/django_smartbase_admin/templates/sb_admin/sprites/sb_admin.svg

Lines changed: 1 addition & 1 deletion
Loading
Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
11
{% include 'sb_admin/widgets/includes/field_label.html' %}
2-
{% include "sb_admin/widgets/input.html" %}
2+
<div class="relative inline-flex h-full">
3+
{% include "sb_admin/widgets/input.html" %}
4+
<label class="absolute right-10 top-0 bottom-0 h-full flex items-center pointer-events-none" for="{{ widget.attrs.id }}">
5+
<svg class="w-20 h-20">
6+
<use xlink:href="#Calendar"></use>
7+
</svg>
8+
</label>
9+
</div>
310
{% include 'sb_admin/widgets/includes/help_text.html' %}

0 commit comments

Comments
 (0)