mirror of
https://github.com/eitchtee/WYGIWYH.git
synced 2026-04-21 16:21:32 +02:00
feat: improve navbar settings and other stuff
This commit is contained in:
@@ -11,8 +11,10 @@ from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from apps.users.forms import (
|
||||
LoginForm,
|
||||
UserSettingsForm,
|
||||
)
|
||||
from apps.common.decorators.htmx import only_htmx
|
||||
from apps.users.models import UserSettings
|
||||
|
||||
|
||||
def logout_view(request):
|
||||
@@ -29,20 +31,39 @@ class UserLoginView(LoginView):
|
||||
@only_htmx
|
||||
@login_required
|
||||
def toggle_amount_visibility(request):
|
||||
current_hide_amounts = request.user.settings.hide_amounts
|
||||
user_settings, created = UserSettings.objects.get_or_create(user=request.user)
|
||||
current_hide_amounts = user_settings.hide_amounts
|
||||
new_hide_amounts = not current_hide_amounts
|
||||
|
||||
request.user.settings.hide_amounts = new_hide_amounts
|
||||
request.user.settings.save()
|
||||
user_settings.hide_amounts = new_hide_amounts
|
||||
user_settings.save()
|
||||
|
||||
if new_hide_amounts is True:
|
||||
messages.info(request, _("Transaction amounts are now hidden"))
|
||||
response = HttpResponse(
|
||||
'<i class="fa-solid fa-eye-slash fa-fw"></i><div id="settings-hide-amounts" class="d-inline tw-invisible"></div>'
|
||||
)
|
||||
response = render(request, "users/generic/show_amounts.html")
|
||||
else:
|
||||
messages.info(request, _("Transaction amounts are now displayed"))
|
||||
response = HttpResponse('<i class="fa-solid fa-eye fa-fw"></i>')
|
||||
response = render(request, "users/generic/hide_amounts.html")
|
||||
|
||||
response.headers["HX-Trigger"] = "transaction_updated, toast"
|
||||
return response
|
||||
|
||||
|
||||
@only_htmx
|
||||
@login_required
|
||||
def update_settings(request):
|
||||
user_settings, created = UserSettings.objects.get_or_create(user=request.user)
|
||||
|
||||
if request.method == "POST":
|
||||
form = UserSettingsForm(request.POST, instance=user_settings)
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
messages.success(request, _("Your settings have been updated."))
|
||||
return HttpResponse(
|
||||
status=204,
|
||||
headers={"HX-Refresh": "true"},
|
||||
)
|
||||
else:
|
||||
form = UserSettingsForm(instance=user_settings)
|
||||
|
||||
return render(request, "users/fragments/user_settings.html", {"form": form})
|
||||
|
||||
Reference in New Issue
Block a user