mirror of
https://github.com/eitchtee/WYGIWYH.git
synced 2026-05-22 07:37:26 +02:00
feat(app): allow changing date and datetime format as a user setting
This commit is contained in:
+51
-1
@@ -46,9 +46,57 @@ class LoginForm(AuthenticationForm):
|
||||
|
||||
|
||||
class UserSettingsForm(forms.ModelForm):
|
||||
DATE_FORMAT_CHOICES = [
|
||||
("SHORT_DATE_FORMAT", _("Default")),
|
||||
("d-m-Y", "20-01-2025"),
|
||||
("m-d-Y", "01-20-2025"),
|
||||
("Y-m-d", "2025-01-20"),
|
||||
("d/m/Y", "20/01/2025"),
|
||||
("m/d/Y", "01/20/2025"),
|
||||
("Y/m/d", "2025/01/20"),
|
||||
("d.m.Y", "20.01.2025"),
|
||||
("m.d.Y", "01.20.2025"),
|
||||
("Y.m.d", "2025.01.20"),
|
||||
]
|
||||
|
||||
DATETIME_FORMAT_CHOICES = [
|
||||
("SHORT_DATETIME_FORMAT", _("Default")),
|
||||
("d-m-Y H:i", "20-01-2025 15:30"),
|
||||
("m-d-Y H:i", "01-20-2025 15:30"),
|
||||
("Y-m-d H:i", "2025-01-20 15:30"),
|
||||
("d-m-Y h:i A", "20-01-2025 03:30 PM"),
|
||||
("m-d-Y h:i A", "01-20-2025 03:30 PM"),
|
||||
("Y-m-d h:i A", "2025-01-20 03:30 PM"),
|
||||
("d/m/Y H:i", "20/01/2025 15:30"),
|
||||
("m/d/Y H:i", "01/20/2025 15:30"),
|
||||
("Y/m/d H:i", "2025/01/20 15:30"),
|
||||
("d/m/Y h:i A", "20/01/2025 03:30 PM"),
|
||||
("m/d/Y h:i A", "01/20/2025 03:30 PM"),
|
||||
("Y/m/d h:i A", "2025/01/20 03:30 PM"),
|
||||
("d.m.Y H:i", "20.01.2025 15:30"),
|
||||
("m.d.Y H:i", "01.20.2025 15:30"),
|
||||
("Y.m.d H:i", "2025.01.20 15:30"),
|
||||
("d.m.Y h:i A", "20.01.2025 03:30 PM"),
|
||||
("m.d.Y h:i A", "01.20.2025 03:30 PM"),
|
||||
("Y.m.d h:i A", "2025.01.20 03:30 PM"),
|
||||
]
|
||||
|
||||
date_format = forms.ChoiceField(
|
||||
choices=DATE_FORMAT_CHOICES, initial="SHORT_DATE_FORMAT"
|
||||
)
|
||||
datetime_format = forms.ChoiceField(
|
||||
choices=DATETIME_FORMAT_CHOICES, initial="SHORT_DATETIME_FORMAT"
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = UserSettings
|
||||
fields = ["language", "timezone", "start_page"]
|
||||
fields = [
|
||||
"language",
|
||||
"timezone",
|
||||
"start_page",
|
||||
"date_format",
|
||||
"datetime_format",
|
||||
]
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
@@ -59,6 +107,8 @@ class UserSettingsForm(forms.ModelForm):
|
||||
self.helper.layout = Layout(
|
||||
"language",
|
||||
"timezone",
|
||||
"date_format",
|
||||
"datetime_format",
|
||||
"start_page",
|
||||
FormActions(
|
||||
NoClassSubmit(
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
# Generated by Django 5.1.5 on 2025-01-20 17:39
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('users', '0012_alter_usersettings_start_page'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='usersettings',
|
||||
name='date_format',
|
||||
field=models.CharField(default='SHORT_DATE_FORMAT', max_length=100),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='usersettings',
|
||||
name='datetime_format',
|
||||
field=models.CharField(default='SHORT_DATETIME_FORMAT', max_length=100),
|
||||
),
|
||||
]
|
||||
@@ -36,6 +36,9 @@ class UserSettings(models.Model):
|
||||
hide_amounts = models.BooleanField(default=False)
|
||||
mute_sounds = models.BooleanField(default=False)
|
||||
|
||||
date_format = models.CharField(max_length=100, default="SHORT_DATE_FORMAT")
|
||||
datetime_format = models.CharField(max_length=100, default="SHORT_DATETIME_FORMAT")
|
||||
|
||||
language = models.CharField(
|
||||
max_length=10,
|
||||
choices=(("auto", _("Auto")),) + settings.LANGUAGES,
|
||||
|
||||
Reference in New Issue
Block a user