- TasksListView implementiert und HiddenField vorbereitet
This commit is contained in:
parent
eb37423c5d
commit
ed13bf155b
Binary file not shown.
Binary file not shown.
|
|
@ -3,7 +3,6 @@ from django.forms import ModelForm
|
||||||
from django.forms.widgets import TextInput
|
from django.forms.widgets import TextInput
|
||||||
from .models import Areas
|
from .models import Areas
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django import forms
|
|
||||||
|
|
||||||
class AreaAddAreaForm(forms.ModelForm):
|
class AreaAddAreaForm(forms.ModelForm):
|
||||||
|
|
||||||
|
|
@ -17,15 +16,4 @@ class AreaAddAreaForm(forms.ModelForm):
|
||||||
|
|
||||||
}
|
}
|
||||||
fields = ['name', 'color', 'desc']
|
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']
|
|
||||||
|
|
@ -3,7 +3,7 @@ from django.contrib.auth.mixins import LoginRequiredMixin
|
||||||
from django.views.generic import CreateView, ListView, UpdateView, DetailView, DeleteView, View
|
from django.views.generic import CreateView, ListView, UpdateView, DetailView, DeleteView, View
|
||||||
from .models import Areas
|
from .models import Areas
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from .forms import AreaAddAreaForm, AjaxForm
|
from .forms import AreaAddAreaForm
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.http import HttpResponse, JsonResponse
|
from django.http import HttpResponse, JsonResponse
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -80,15 +80,16 @@ WSGI_APPLICATION = 'digitaleagentur.wsgi.application'
|
||||||
# Database
|
# Database
|
||||||
# https://docs.djangoproject.com/en/2.2/ref/settings/#databases
|
# https://docs.djangoproject.com/en/2.2/ref/settings/#databases
|
||||||
|
|
||||||
#DATABASES = {
|
DATABASES = {
|
||||||
# 'default': {
|
'default': {
|
||||||
# 'ENGINE': 'django.db.backends.mysql',
|
'ENGINE': 'django.db.backends.mysql',
|
||||||
# 'NAME' : 'digitaleagentur',
|
'NAME' : 'digitaleagentur',
|
||||||
# 'USER' : 'digitaleagentur',
|
'USER' : 'digitaleagentur',
|
||||||
# 'PASSWORD' : 'H9hzbzyBqtUCnZlIwL1qSrzh',
|
'PASSWORD' : 'H9hzbzyBqtUCnZlIwL1qSrzh',
|
||||||
# 'PORT' : 3306
|
'PORT' : 3306
|
||||||
# }
|
}
|
||||||
#}
|
}
|
||||||
|
'''
|
||||||
DATABASES = {
|
DATABASES = {
|
||||||
'default': {
|
'default': {
|
||||||
'ENGINE': 'django.db.backends.mysql',
|
'ENGINE': 'django.db.backends.mysql',
|
||||||
|
|
@ -98,7 +99,7 @@ DATABASES = {
|
||||||
'PORT' : 3306
|
'PORT' : 3306
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
'''
|
||||||
# Password validation
|
# Password validation
|
||||||
# https://docs.djangoproject.com/en/2.2/ref/settings/#auth-password-validators
|
# https://docs.djangoproject.com/en/2.2/ref/settings/#auth-password-validators
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ urlpatterns = [
|
||||||
path('admin/', admin.site.urls),
|
path('admin/', admin.site.urls),
|
||||||
path('dashboard/', include('users.urls'), name="dashboard"),
|
path('dashboard/', include('users.urls'), name="dashboard"),
|
||||||
path('areas/', include('areas.urls'), name="areas-management"),
|
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/', 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/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'),
|
path('password-reset-confirm/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.as_view(template_name='users/password_reset_confirm.html'), name='password_reset_confirm'),
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -1,3 +1,32 @@
|
||||||
from django.db import models
|
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.
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,43 @@
|
||||||
from django.shortcuts import render
|
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.
|
# 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)
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -102,6 +102,7 @@ class Profile(models.Model):
|
||||||
permissions = [
|
permissions = [
|
||||||
('agency_change', 'Agenturinformationen verändern'),
|
('agency_change', 'Agenturinformationen verändern'),
|
||||||
('users_usermanagement', 'Benutzer bearbeiten'),
|
('users_usermanagement', 'Benutzer bearbeiten'),
|
||||||
|
('areas_management', 'Bereiche bearbeiten'),
|
||||||
('tasks_management', 'Aufgabenbereiche bearbeiten'),
|
('tasks_management', 'Aufgabenbereiche bearbeiten'),
|
||||||
('areas_management', 'Bereiche bearbeiten')
|
('standard_management', 'Standards bearbeiten und freischalten')
|
||||||
]
|
]
|
||||||
|
|
@ -126,7 +126,7 @@
|
||||||
{% else%}
|
{% else%}
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
{%endif%}
|
{%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>
|
<i class="fas fa-fw fa-tasks"></i>
|
||||||
<span>Aufgaben</span>
|
<span>Aufgaben</span>
|
||||||
</a>
|
</a>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue