- 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 .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']
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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'),
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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')
|
||||
]
|
||||
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Reference in New Issue