settings
+ change data (username, name, email)
This commit is contained in:
parent
05ee124c6d
commit
ed52d5c8c4
13 changed files with 130 additions and 4 deletions
|
|
@ -31,6 +31,7 @@ ALLOWED_HOSTS = []
|
||||||
# Application definition
|
# Application definition
|
||||||
|
|
||||||
INSTALLED_APPS = [
|
INSTALLED_APPS = [
|
||||||
|
'settings_app',
|
||||||
'user_manager',
|
'user_manager',
|
||||||
'object_adder',
|
'object_adder',
|
||||||
'django.contrib.admin',
|
'django.contrib.admin',
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,6 @@ urlpatterns = [
|
||||||
path('accounts/', include('django.contrib.auth.urls')),
|
path('accounts/', include('django.contrib.auth.urls')),
|
||||||
path('', include('user_manager.urls')),
|
path('', include('user_manager.urls')),
|
||||||
path('add/', include('object_adder.urls')),
|
path('add/', include('object_adder.urls')),
|
||||||
path('list/', include('object_lister.urls'))
|
path('list/', include('object_lister.urls')),
|
||||||
|
path('settings/', include('settings_app.urls')),
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -45,8 +45,12 @@ def objlist(request, orderstr=None):
|
||||||
return render(request, 'object_lister/details.html', context)
|
return render(request, 'object_lister/details.html', context)
|
||||||
|
|
||||||
categories = Category.categories.all()
|
categories = Category.categories.all()
|
||||||
|
count = 0
|
||||||
|
for obj in objects:
|
||||||
|
if obj.removed_date is None:
|
||||||
|
count +=1
|
||||||
|
|
||||||
context = {'title': 'Inventar', 'objects': objects, 'objammout': len(objects), 'categories': categories,
|
context = {'title': 'Inventar', 'objects': objects, 'objammout': count, 'categories': categories,
|
||||||
'ncats': len(categories)}
|
'ncats': len(categories)}
|
||||||
return render(request, 'object_lister/index.html', context)
|
return render(request, 'object_lister/index.html', context)
|
||||||
|
|
||||||
|
|
|
||||||
0
invsystem/settings_app/__init__.py
Normal file
0
invsystem/settings_app/__init__.py
Normal file
3
invsystem/settings_app/admin.py
Normal file
3
invsystem/settings_app/admin.py
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
from django.contrib import admin
|
||||||
|
|
||||||
|
# Register your models here.
|
||||||
5
invsystem/settings_app/apps.py
Normal file
5
invsystem/settings_app/apps.py
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
|
class SettingsAppConfig(AppConfig):
|
||||||
|
name = 'settings_app'
|
||||||
13
invsystem/settings_app/forms.py
Normal file
13
invsystem/settings_app/forms.py
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
from django.forms import CharField,Form
|
||||||
|
from django.contrib.auth.models import User
|
||||||
|
|
||||||
|
|
||||||
|
class SettingsForm(Form):
|
||||||
|
username = CharField(required=False)
|
||||||
|
last_name = CharField(required=True)
|
||||||
|
first_name = CharField(required=True)
|
||||||
|
email = CharField(required=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = User
|
||||||
|
fields = ('username', 'first_name', 'last_name', 'email')
|
||||||
3
invsystem/settings_app/models.py
Normal file
3
invsystem/settings_app/models.py
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
from django.db import models
|
||||||
|
|
||||||
|
# Create your models here.
|
||||||
3
invsystem/settings_app/tests.py
Normal file
3
invsystem/settings_app/tests.py
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
# Create your tests here.
|
||||||
6
invsystem/settings_app/urls.py
Normal file
6
invsystem/settings_app/urls.py
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
from django.urls import path
|
||||||
|
from . import views
|
||||||
|
|
||||||
|
urlpatterns = [
|
||||||
|
path('', views.index, name='settings_index'),
|
||||||
|
]
|
||||||
42
invsystem/settings_app/views.py
Normal file
42
invsystem/settings_app/views.py
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
from django.shortcuts import render
|
||||||
|
from .forms import SettingsForm
|
||||||
|
from django.contrib.auth.decorators import login_required
|
||||||
|
from django.contrib.auth.models import User
|
||||||
|
|
||||||
|
|
||||||
|
# Create your views here.
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
def index(request):
|
||||||
|
if request.method == 'GET':
|
||||||
|
user = request.user
|
||||||
|
default = {'username': user.username, 'first_name': user.first_name, 'last_name': user.last_name,
|
||||||
|
'email': user.email}
|
||||||
|
form = SettingsForm(initial=default)
|
||||||
|
context = {'title': 'Einstellungen', 'form': form}
|
||||||
|
return render(request, 'settings_app/settings.html', context)
|
||||||
|
|
||||||
|
elif request.method == 'POST':
|
||||||
|
user = User.objects.get(username=request.user.username)
|
||||||
|
form = SettingsForm(request.POST)
|
||||||
|
|
||||||
|
if form.is_valid():
|
||||||
|
user.username = form.cleaned_data.get('username')
|
||||||
|
user.first_name = form.cleaned_data.get('first_name')
|
||||||
|
user.last_name = form.cleaned_data.get('last_name')
|
||||||
|
user.email = form.cleaned_data.get('email')
|
||||||
|
user.save()
|
||||||
|
|
||||||
|
default = {'username': user.username, 'first_name': user.first_name, 'last_name': user.last_name,
|
||||||
|
'email': user.email}
|
||||||
|
form = SettingsForm(initial=default)
|
||||||
|
context = {'title': 'Einstellungen', 'form': form, 'edited': True}
|
||||||
|
return render(request, 'settings_app/settings.html', context)
|
||||||
|
|
||||||
|
else:
|
||||||
|
default = {'username': user.username, 'first_name': user.first_name, 'last_name': user.last_name,
|
||||||
|
'email': user.email}
|
||||||
|
form = SettingsForm(initial=default)
|
||||||
|
context = {'title': 'Einstellungen', 'form': form}
|
||||||
|
return render(request, 'settings_app/settings.html', context)
|
||||||
|
|
@ -43,7 +43,7 @@
|
||||||
{% if user.is_authenticated %}
|
{% if user.is_authenticated %}
|
||||||
<ul class="nav navbar-nav navbar-right">
|
<ul class="nav navbar-nav navbar-right">
|
||||||
<li><a href="{% url 'logout' %}"><span class="glyphicon glyphicon-log-out"></span> Ausloggen</a></li>
|
<li><a href="{% url 'logout' %}"><span class="glyphicon glyphicon-log-out"></span> Ausloggen</a></li>
|
||||||
<li><a href="#"><span class="glyphicon glyphicon-cog"></span> Einstellungen</a></li>
|
<li><a href="{% url 'settings_index' %}"><span class="glyphicon glyphicon-cog"></span> Einstellungen</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
{% else %}
|
{% else %}
|
||||||
<ul class="nav navbar-nav navbar-right">
|
<ul class="nav navbar-nav navbar-right">
|
||||||
|
|
|
||||||
46
invsystem/user_manager/templates/settings_app/settings.html
Normal file
46
invsystem/user_manager/templates/settings_app/settings.html
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
{% extends 'bases/navbar.html' %}
|
||||||
|
<html>
|
||||||
|
{% block content %}
|
||||||
|
<body>
|
||||||
|
<div class="container shadow">
|
||||||
|
{% if edited %}
|
||||||
|
<div class="alert alert-info alert-dismissible">
|
||||||
|
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
|
||||||
|
Änderung wurde gespeichert
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
<h1>Einstellungen</h1>
|
||||||
|
<form method="post" action="{% url 'settings_index' %}" class="registerformcontainer">
|
||||||
|
{% csrf_token %}
|
||||||
|
|
||||||
|
{% if form.errors %}
|
||||||
|
<p>There are errors in the form</p>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div class="username-wrapper">
|
||||||
|
{{ form.username.errors }}
|
||||||
|
<label for="{{ form.username.id_for_lable }}">Nutzername:</label>
|
||||||
|
{{ form.username }}
|
||||||
|
</div>
|
||||||
|
<div class="first_name-wrapper">
|
||||||
|
{{ form.first_name.errors }}
|
||||||
|
<label for="{{ form.first_name.id_for_lable }}">Vorname:</label>
|
||||||
|
{{ form.first_name }}
|
||||||
|
</div>
|
||||||
|
<div class="last_name-wrapper">
|
||||||
|
{{ form.last_name.errors }}
|
||||||
|
<label for="{{ form.last_name.id_for_lable }}">Nachname:</label>
|
||||||
|
{{ form.last_name }}
|
||||||
|
</div>
|
||||||
|
<div class="email-wrapper">
|
||||||
|
{{ form.email.errors }}
|
||||||
|
<label for="{{ form.email.id_for_lable }}">E-mail:</label>
|
||||||
|
{{ form.email }}
|
||||||
|
</div>
|
||||||
|
<input type="submit" value="Speichern" class="btn btn-success nomarg">
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
{% endblock %}
|
||||||
|
</html>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue