diff --git a/invsystem/invsystem/settings.py b/invsystem/invsystem/settings.py index 8566800..6ef0072 100644 --- a/invsystem/invsystem/settings.py +++ b/invsystem/invsystem/settings.py @@ -31,6 +31,7 @@ ALLOWED_HOSTS = [] # Application definition INSTALLED_APPS = [ + 'settings_app', 'user_manager', 'object_adder', 'django.contrib.admin', diff --git a/invsystem/invsystem/urls.py b/invsystem/invsystem/urls.py index 7eca499..3e49086 100644 --- a/invsystem/invsystem/urls.py +++ b/invsystem/invsystem/urls.py @@ -21,6 +21,6 @@ urlpatterns = [ path('accounts/', include('django.contrib.auth.urls')), path('', include('user_manager.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')), ] diff --git a/invsystem/object_lister/views.py b/invsystem/object_lister/views.py index 79b08a3..cebda25 100644 --- a/invsystem/object_lister/views.py +++ b/invsystem/object_lister/views.py @@ -45,8 +45,12 @@ def objlist(request, orderstr=None): return render(request, 'object_lister/details.html', context) 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)} return render(request, 'object_lister/index.html', context) diff --git a/invsystem/settings_app/__init__.py b/invsystem/settings_app/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/invsystem/settings_app/admin.py b/invsystem/settings_app/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/invsystem/settings_app/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/invsystem/settings_app/apps.py b/invsystem/settings_app/apps.py new file mode 100644 index 0000000..6ab2f52 --- /dev/null +++ b/invsystem/settings_app/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class SettingsAppConfig(AppConfig): + name = 'settings_app' diff --git a/invsystem/settings_app/forms.py b/invsystem/settings_app/forms.py new file mode 100644 index 0000000..70e55e8 --- /dev/null +++ b/invsystem/settings_app/forms.py @@ -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') diff --git a/invsystem/settings_app/models.py b/invsystem/settings_app/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/invsystem/settings_app/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/invsystem/settings_app/tests.py b/invsystem/settings_app/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/invsystem/settings_app/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/invsystem/settings_app/urls.py b/invsystem/settings_app/urls.py new file mode 100644 index 0000000..cf3424e --- /dev/null +++ b/invsystem/settings_app/urls.py @@ -0,0 +1,6 @@ +from django.urls import path +from . import views + +urlpatterns = [ + path('', views.index, name='settings_index'), +] diff --git a/invsystem/settings_app/views.py b/invsystem/settings_app/views.py new file mode 100644 index 0000000..36438db --- /dev/null +++ b/invsystem/settings_app/views.py @@ -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) diff --git a/invsystem/user_manager/templates/bases/navbar.html b/invsystem/user_manager/templates/bases/navbar.html index 8918aad..0e2ef0b 100644 --- a/invsystem/user_manager/templates/bases/navbar.html +++ b/invsystem/user_manager/templates/bases/navbar.html @@ -43,7 +43,7 @@ {% if user.is_authenticated %}
{% else %}