user preference fixes and improvements
This commit is contained in:
parent
349b9629f8
commit
4620c78f5a
@ -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):
|
||||
|
22
cookbook/migrations/0040_auto_20200502_1433.py
Normal file
22
cookbook/migrations/0040_auto_20200502_1433.py
Normal 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),
|
||||
),
|
||||
]
|
@ -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):
|
||||
|
@ -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')
|
||||
|
@ -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)
|
||||
|
@ -7,6 +7,7 @@ djangorestframework
|
||||
django-autocomplete-light
|
||||
django-emoji-picker
|
||||
django-cleanup
|
||||
django-annoying
|
||||
bleach
|
||||
bleach-whitelist
|
||||
six
|
||||
|
Loading…
Reference in New Issue
Block a user