- TasksListView implementiert und HiddenField vorbereitet

This commit is contained in:
holger.trampe 2019-12-04 14:54:43 +01:00
parent eb37423c5d
commit ed13bf155b
14 changed files with 87 additions and 27 deletions

View File

@ -3,7 +3,6 @@ from django.forms import ModelForm
from django.forms.widgets import TextInput
from .models import Areas
from django.contrib.auth.models import User
from django import forms
class AreaAddAreaForm(forms.ModelForm):
@ -17,15 +16,4 @@ class AreaAddAreaForm(forms.ModelForm):
}
fields = ['name', 'color', 'desc']
#def __init__(self, user=None, *args, **kwargs):
# super().__init__(*args, **kwargs)
# if(user != None):
# users_of_agency = User.objects.filter(profile__agency__pk=user.profile.agency.pk)
# self.fields['usersfield'].queryset = users_of_agency
class AjaxForm(forms.ModelForm):
field = forms.CharField(max_length=200)
class Meta:
model = Areas
fields = ['name', 'color', 'desc']

View File

@ -3,7 +3,7 @@ from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic import CreateView, ListView, UpdateView, DetailView, DeleteView, View
from .models import Areas
from django.contrib import messages
from .forms import AreaAddAreaForm, AjaxForm
from .forms import AreaAddAreaForm
from django.contrib.auth.models import User
from django.http import HttpResponse, JsonResponse

View File

@ -80,15 +80,16 @@ WSGI_APPLICATION = 'digitaleagentur.wsgi.application'
# Database
# https://docs.djangoproject.com/en/2.2/ref/settings/#databases
#DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.mysql',
# 'NAME' : 'digitaleagentur',
# 'USER' : 'digitaleagentur',
# 'PASSWORD' : 'H9hzbzyBqtUCnZlIwL1qSrzh',
# 'PORT' : 3306
# }
#}
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME' : 'digitaleagentur',
'USER' : 'digitaleagentur',
'PASSWORD' : 'H9hzbzyBqtUCnZlIwL1qSrzh',
'PORT' : 3306
}
}
'''
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
@ -98,7 +99,7 @@ DATABASES = {
'PORT' : 3306
}
}
'''
# Password validation
# https://docs.djangoproject.com/en/2.2/ref/settings/#auth-password-validators

View File

@ -17,6 +17,7 @@ urlpatterns = [
path('admin/', admin.site.urls),
path('dashboard/', include('users.urls'), name="dashboard"),
path('areas/', include('areas.urls'), name="areas-management"),
path('tasks/', include('tasks.urls'), name="tasks-management"),
path('password-reset/', auth_views.PasswordResetView.as_view(template_name='users/password_reset.html'), name='password-reset'),
path('password-reset/done/', auth_views.PasswordResetDoneView.as_view(template_name='users/password_reset_done.html'), name='password_reset_done'),
path('password-reset-confirm/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.as_view(template_name='users/password_reset_confirm.html'), name='password_reset_confirm'),

View File

@ -1,3 +1,32 @@
from django.db import models
from django.contrib.auth.models import User
from users.models import Agency
from django.urls import reverse
from areas.models import Areas
import datetime
'''
Model Tasks
'''
class Tasks(models.Model):
agency = models.ForeignKey(Agency, on_delete=models.PROTECT)
area = models.ForeignKey(Areas, on_delete=models.PROTECT)
name = models.CharField(max_length=200, blank=False, default="")
desc = models.TextField(max_length=3000, blank=True)
usersfield = models.ManyToManyField(User, blank=True, related_name='users_in_task')
created_area_by = models.ForeignKey(User, on_delete=models.PROTECT)
created_area_date = models.DateField(default=datetime.date.today, blank=True)
visible = models.BooleanField(default=True)
def __str__(self):
return f'{self.name}'
# Hier Path für Templates des Models mit Parametern
def get_absolute_url(self):
return reverse('tasks-update', kwargs={'pk':self.pk})
# Create your models here.

View File

@ -1,3 +1,43 @@
from django.shortcuts import render
from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic import CreateView, ListView, UpdateView, DetailView, DeleteView, View
from .models import Tasks
from .forms import TasksAddTaskForm
from django.contrib import messages
# Create your views here.
class TasksManagement(LoginRequiredMixin, ListView):
model = Tasks
# Adding active_link
# Loading only user same agency
# Change context and return for template-data
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
# # Get all Users of the Same Agency as logged user
tasks_of_agency = Tasks.objects.filter(agency__pk=self.request.user.profile.agency.pk)
context.update({'active_link' : 'tasksmanagement', 'tasks_of_agency':tasks_of_agency})
return context
class TasksAddTask(LoginRequiredMixin, CreateView):
model = Tasks
success_url = '/tasks'
form_class = TasksAddTaskForm
#def get(self,request,*args, **kwargs):
# # User ist der hier Aufgerufene, bzw. das Profil!
# return render (request, self.template_name, {'form':self.form_class(self.request.user), 'active_link': 'areasmanagement'})
# Adding active_link
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context.update({'active_link' : 'tasksmanagement'})
return context
def form_valid(self, form):
# Send message to the site
messages.success(self.request, f'Aufgabe angelegt!')
# SAVE OBJECTS TO SIGNALE!
form.instance.agency = self.request.user.profile.agency
form.instance.created_area_by = self.request.user
return super().form_valid(form)

View File

@ -102,6 +102,7 @@ class Profile(models.Model):
permissions = [
('agency_change', 'Agenturinformationen verändern'),
('users_usermanagement', 'Benutzer bearbeiten'),
('areas_management', 'Bereiche bearbeiten'),
('tasks_management', 'Aufgabenbereiche bearbeiten'),
('areas_management', 'Bereiche bearbeiten')
]
('standard_management', 'Standards bearbeiten und freischalten')
]

View File

@ -126,7 +126,7 @@
{% else%}
<li class="nav-item">
{%endif%}
<a class="nav-link " href="#" aria-expanded="true">
<a class="nav-link " href="{% url 'tasks-management' %}" aria-expanded="true">
<i class="fas fa-fw fa-tasks"></i>
<span>Aufgaben</span>
</a>