diff --git a/app/apps/users/migrations/0007_usersettings_mute_sounds.py b/app/apps/users/migrations/0007_usersettings_mute_sounds.py new file mode 100644 index 0000000..5cf8acc --- /dev/null +++ b/app/apps/users/migrations/0007_usersettings_mute_sounds.py @@ -0,0 +1,18 @@ +# Generated by Django 5.1.1 on 2024-10-14 14:21 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("users", "0006_alter_usersettings_language"), + ] + + operations = [ + migrations.AddField( + model_name="usersettings", + name="mute_sounds", + field=models.BooleanField(default=False), + ), + ] diff --git a/app/apps/users/models.py b/app/apps/users/models.py index 026f410..45c8ce6 100644 --- a/app/apps/users/models.py +++ b/app/apps/users/models.py @@ -26,6 +26,7 @@ class UserSettings(models.Model): get_user_model(), on_delete=models.CASCADE, related_name="settings" ) hide_amounts = models.BooleanField(default=False) + mute_sounds = models.BooleanField(default=False) language = models.CharField( max_length=10, diff --git a/app/apps/users/urls.py b/app/apps/users/urls.py index fc502d8..665ceb3 100644 --- a/app/apps/users/urls.py +++ b/app/apps/users/urls.py @@ -11,6 +11,11 @@ urlpatterns = [ views.toggle_amount_visibility, name="toggle_amount_visibility", ), + path( + "user/toggle-sound-playing/", + views.toggle_sound_playing, + name="toggle_sound_playing", + ), path( "user/settings/", views.update_settings, diff --git a/app/apps/users/views.py b/app/apps/users/views.py index 8612033..3fd3548 100644 --- a/app/apps/users/views.py +++ b/app/apps/users/views.py @@ -49,6 +49,27 @@ def toggle_amount_visibility(request): return response +@only_htmx +@login_required +def toggle_sound_playing(request): + user_settings, created = UserSettings.objects.get_or_create(user=request.user) + current_mute_sounds = user_settings.mute_sounds + new_mute_sounds = not current_mute_sounds + + user_settings.mute_sounds = new_mute_sounds + user_settings.save() + + if new_mute_sounds is True: + messages.info(request, _("Sounds are now muted")) + response = render(request, "users/generic/play_sounds.html") + else: + messages.info(request, _("Sounds will now play")) + response = render(request, "users/generic/mute_sounds.html") + + response.headers["HX-Trigger"] = "updated, toast" + return response + + @only_htmx @login_required def update_settings(request): diff --git a/app/templates/includes/navbar/user_menu.html b/app/templates/includes/navbar/user_menu.html index fe794b9..07a6c6b 100644 --- a/app/templates/includes/navbar/user_menu.html +++ b/app/templates/includes/navbar/user_menu.html @@ -18,8 +18,19 @@ {% include 'users/generic/hide_amounts.html' %} {% endif %} - {% endspaceless %} + {% endspaceless %} + {% spaceless %} +