user preference fixes and improvements

This commit is contained in:
vabene1111 2020-05-02 14:41:54 +02:00
parent 349b9629f8
commit 4620c78f5a
6 changed files with 52 additions and 34 deletions

View File

@ -3,7 +3,7 @@ from .models import *
class UserPreferenceAdmin(admin.ModelAdmin):
list_display = ('name', 'theme', 'nav_color')
list_display = ('name', 'theme', 'nav_color', 'default_page', 'search_style')
@staticmethod
def name(obj):

View File

@ -0,0 +1,22 @@
# Generated by Django 3.0.5 on 2020-05-02 12:33
import annoying.fields
from django.conf import settings
from django.db import migrations
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('cookbook', '0039_recipebook_shared'),
]
operations = [
migrations.AlterField(
model_name='userpreference',
name='user',
field=annoying.fields.AutoOneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to=settings.AUTH_USER_MODEL),
),
]

View File

@ -1,5 +1,6 @@
import re
from annoying.fields import AutoOneToOneField
from django.contrib import auth
from django.contrib.auth.models import User
from django.utils.translation import gettext as _
@ -54,7 +55,7 @@ class UserPreference(models.Model):
SEARCH_STYLE = ((SMALL, _('Small')), (LARGE, _('Large')),)
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
user = AutoOneToOneField(User, on_delete=models.CASCADE, primary_key=True)
theme = models.CharField(choices=THEMES, max_length=128, default=FLATLY)
nav_color = models.CharField(choices=COLORS, max_length=128, default=PRIMARY)
default_unit = models.CharField(max_length=32, default='g')
@ -62,7 +63,7 @@ class UserPreference(models.Model):
search_style = models.CharField(choices=SEARCH_STYLE, max_length=64, default=LARGE)
def __str__(self):
return self.user
return str(self.user)
class Storage(models.Model):

View File

@ -8,7 +8,8 @@ register = template.Library()
@register.simple_tag
def theme_url(request):
try:
if not request.user.is_authenticated:
return static('themes/flatly.min.css')
themes = {
UserPreference.BOOTSTRAP: 'themes/bootstrap.min.css',
UserPreference.FLATLY: 'themes/flatly.min.css',
@ -19,21 +20,19 @@ def theme_url(request):
return static(themes[request.user.userpreference.theme])
else:
raise AttributeError
except AttributeError:
return static('themes/flatly.min.css')
@register.simple_tag
def nav_color(request):
try:
return request.user.userpreference.nav_color
except AttributeError:
if not request.user.is_authenticated:
return 'primary'
return request.user.userpreference.nav_color
@register.simple_tag
def tabulator_theme_url(request):
try:
if not request.user.is_authenticated:
return static('tabulator/tabulator_bootstrap4.min.css')
themes = {
UserPreference.BOOTSTRAP: 'tabulator/tabulator_bootstrap4.min.css',
UserPreference.FLATLY: 'tabulator/tabulator_bootstrap4.min.css',
@ -44,5 +43,3 @@ def tabulator_theme_url(request):
return static(themes[request.user.userpreference.theme])
else:
raise AttributeError
except AttributeError:
return static('tabulator/tabulator_bootstrap4.min.css')

View File

@ -179,10 +179,7 @@ def shopping_list(request):
@group_required('guest')
def settings(request):
try:
up = request.user.userpreference
except UserPreference.DoesNotExist:
up = None
user_name_form = UserNameForm(instance=request.user)
password_form = PasswordChangeForm(request.user)

View File

@ -7,6 +7,7 @@ djangorestframework
django-autocomplete-light
django-emoji-picker
django-cleanup
django-annoying
bleach
bleach-whitelist
six