added user name change
This commit is contained in:
parent
a8a7d4e0f4
commit
9e524a8f22
@ -2,19 +2,12 @@ from django.contrib import admin
|
|||||||
from .models import *
|
from .models import *
|
||||||
|
|
||||||
|
|
||||||
def get_user_name(user):
|
|
||||||
if (name := f"{user.first_name} {user.last_name}") == "":
|
|
||||||
return name
|
|
||||||
else:
|
|
||||||
return user.username
|
|
||||||
|
|
||||||
|
|
||||||
class UserPreferenceAdmin(admin.ModelAdmin):
|
class UserPreferenceAdmin(admin.ModelAdmin):
|
||||||
list_display = ('name', 'theme', 'nav_color')
|
list_display = ('name', 'theme', 'nav_color')
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def name(obj):
|
def name(obj):
|
||||||
return get_user_name(obj.user)
|
return obj.user.get_user_name()
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(UserPreference, UserPreferenceAdmin)
|
admin.site.register(UserPreference, UserPreferenceAdmin)
|
||||||
@ -48,7 +41,7 @@ class RecipeAdmin(admin.ModelAdmin):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def created_by(obj):
|
def created_by(obj):
|
||||||
return get_user_name(obj.created_by)
|
return obj.created_by.get_user_name()
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(Recipe, RecipeAdmin)
|
admin.site.register(Recipe, RecipeAdmin)
|
||||||
@ -69,10 +62,10 @@ class CommentAdmin(admin.ModelAdmin):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def name(obj):
|
def name(obj):
|
||||||
return get_user_name(obj.created_by)
|
return obj.created_by.get_user_name()
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(Comment)
|
admin.site.register(Comment, CommentAdmin)
|
||||||
|
|
||||||
|
|
||||||
class RecipeImportAdmin(admin.ModelAdmin):
|
class RecipeImportAdmin(admin.ModelAdmin):
|
||||||
@ -83,11 +76,11 @@ admin.site.register(RecipeImport, RecipeImportAdmin)
|
|||||||
|
|
||||||
|
|
||||||
class RecipeBookAdmin(admin.ModelAdmin):
|
class RecipeBookAdmin(admin.ModelAdmin):
|
||||||
list_display = ('name', 'user')
|
list_display = ('name', 'user_name')
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def user(obj):
|
def user_name(obj):
|
||||||
return get_user_name(obj.user)
|
return obj.user.get_user_name()
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(RecipeBook, RecipeBookAdmin)
|
admin.site.register(RecipeBook, RecipeBookAdmin)
|
||||||
@ -105,7 +98,7 @@ class MealPlanAdmin(admin.ModelAdmin):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def user(obj):
|
def user(obj):
|
||||||
return get_user_name(obj.user)
|
return obj.user.get_user_name()
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(MealPlan, MealPlanAdmin)
|
admin.site.register(MealPlan, MealPlanAdmin)
|
||||||
|
@ -27,6 +27,8 @@ class DateWidget(forms.DateInput):
|
|||||||
|
|
||||||
|
|
||||||
class UserPreferenceForm(forms.ModelForm):
|
class UserPreferenceForm(forms.ModelForm):
|
||||||
|
prefix = 'preference'
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = UserPreference
|
model = UserPreference
|
||||||
fields = ('theme', 'nav_color')
|
fields = ('theme', 'nav_color')
|
||||||
@ -36,6 +38,18 @@ class UserPreferenceForm(forms.ModelForm):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class UserNameForm(forms.ModelForm):
|
||||||
|
prefix = 'name'
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = User
|
||||||
|
fields = ('first_name', 'last_name')
|
||||||
|
|
||||||
|
help_texts = {
|
||||||
|
'first_name': _('Both fields are optional. If none are given the username will be displayed instead')
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class ExternalRecipeForm(forms.ModelForm):
|
class ExternalRecipeForm(forms.ModelForm):
|
||||||
file_path = forms.CharField(disabled=True, required=False)
|
file_path = forms.CharField(disabled=True, required=False)
|
||||||
storage = forms.ModelChoiceField(queryset=Storage.objects.all(), disabled=True, required=False)
|
storage = forms.ModelChoiceField(queryset=Storage.objects.all(), disabled=True, required=False)
|
||||||
|
@ -1,10 +1,21 @@
|
|||||||
import re
|
import re
|
||||||
|
|
||||||
|
from django.contrib import auth
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.utils.translation import gettext as _
|
from django.utils.translation import gettext as _
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
|
|
||||||
|
def get_user_name(self):
|
||||||
|
if not (name := f"{self.first_name} {self.last_name}") == " ":
|
||||||
|
return name
|
||||||
|
else:
|
||||||
|
return self.username
|
||||||
|
|
||||||
|
|
||||||
|
auth.models.User.add_to_class('get_user_name', get_user_name)
|
||||||
|
|
||||||
|
|
||||||
def get_model_name(model):
|
def get_model_name(model):
|
||||||
return ('_'.join(re.findall('[A-Z][^A-Z]*', model.__name__))).lower()
|
return ('_'.join(re.findall('[A-Z][^A-Z]*', model.__name__))).lower()
|
||||||
|
|
||||||
|
@ -137,7 +137,7 @@
|
|||||||
{% if user.is_authenticated %}
|
{% if user.is_authenticated %}
|
||||||
<li class="nav-item dropdown {% if request.resolver_match.url_name in 'view_settings' %}active{% endif %}">
|
<li class="nav-item dropdown {% if request.resolver_match.url_name in 'view_settings' %}active{% endif %}">
|
||||||
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown"
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown"
|
||||||
aria-haspopup="true" aria-expanded="false"><i class="fas fa-user-alt"></i> {{ user.username }}
|
aria-haspopup="true" aria-expanded="false"><i class="fas fa-user-alt"></i> {{ user.get_user_name }}
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownMenuLink">
|
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownMenuLink">
|
||||||
|
@ -69,7 +69,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if recipe.internal %}
|
{% if recipe.internal %}
|
||||||
<small>{% trans 'by' %} {{ recipe.created_by.username }}<br/></small>
|
<small>{% trans 'by' %} {{ recipe.created_by.get_user_name }}<br/></small>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if recipe.keywords %}
|
{% if recipe.keywords %}
|
||||||
|
@ -14,7 +14,18 @@
|
|||||||
<br/>
|
<br/>
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
<h4><i class="fas fa-language"></i> {% trans 'Language' %}</h4>
|
<h4><i class="fas fa-user-edit fa-fw"></i> {% trans 'Account' %}</h4>
|
||||||
|
|
||||||
|
<form action="." method="post">
|
||||||
|
{% csrf_token %}
|
||||||
|
{{ user_name_form|crispy }}
|
||||||
|
<button class="btn btn-success" type="submit"><i class="fas fa-save"></i> {% trans 'Save' %}</button>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
<h4><i class="fas fa-language fa-fw"></i> {% trans 'Language' %}</h4>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<form action="{% url 'set_language' %}" method="post">{% csrf_token %}
|
<form action="{% url 'set_language' %}" method="post">{% csrf_token %}
|
||||||
@ -39,11 +50,11 @@
|
|||||||
<br/>
|
<br/>
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
<h4><i class="fas fa-palette"></i>{% trans 'Style' %}</h4>
|
<h4><i class="fas fa-palette fa-fw"></i> {% trans 'Style' %}</h4>
|
||||||
|
|
||||||
<form action="." method="post">
|
<form action="." method="post">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{{ form|crispy }}
|
{{ preference_form|crispy }}
|
||||||
<button class="btn btn-success" type="submit"><i class="fas fa-save"></i> {% trans 'Save' %}</button>
|
<button class="btn btn-success" type="submit"><i class="fas fa-save"></i> {% trans 'Save' %}</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
@ -162,7 +162,7 @@ def settings(request):
|
|||||||
up = None
|
up = None
|
||||||
|
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
form = UserPreferenceForm(request.POST)
|
form = UserPreferenceForm(request.POST, prefix='preference')
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
if not up:
|
if not up:
|
||||||
up = UserPreference(user=request.user)
|
up = UserPreference(user=request.user)
|
||||||
@ -170,9 +170,17 @@ def settings(request):
|
|||||||
up.nav_color = form.cleaned_data['nav_color']
|
up.nav_color = form.cleaned_data['nav_color']
|
||||||
up.save()
|
up.save()
|
||||||
|
|
||||||
if up:
|
form = UserNameForm(request.POST, prefix='name')
|
||||||
form = UserPreferenceForm(instance=up)
|
if form.is_valid():
|
||||||
else:
|
request.user.first_name = form.cleaned_data['first_name']
|
||||||
form = UserPreferenceForm()
|
request.user.last_name = form.cleaned_data['last_name']
|
||||||
|
request.user.save()
|
||||||
|
|
||||||
return render(request, 'settings.html', {'form': form})
|
if up:
|
||||||
|
preference_form = UserPreferenceForm(instance=up)
|
||||||
|
else:
|
||||||
|
preference_form = UserPreferenceForm()
|
||||||
|
|
||||||
|
user_name_form = UserNameForm(instance=request.user)
|
||||||
|
|
||||||
|
return render(request, 'settings.html', {'preference_form': preference_form, 'user_name_form': user_name_form})
|
||||||
|
Loading…
Reference in New Issue
Block a user