88 lines
3.0 KiB
Python
88 lines
3.0 KiB
Python
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 Areas
|
|
from django.contrib import messages
|
|
from .forms import AreaAddAreaForm
|
|
from django.contrib.auth.models import User
|
|
|
|
|
|
|
|
|
|
class AreasManagement(LoginRequiredMixin, ListView):
|
|
model = Areas
|
|
# 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
|
|
areas_of_agency = Areas.objects.filter(agency__pk=self.request.user.profile.agency.pk)
|
|
|
|
context.update({'active_link' : 'areasmanagement', 'areas_of_agency':areas_of_agency})
|
|
return context
|
|
|
|
class AreasAddArea(LoginRequiredMixin, CreateView):
|
|
model = Areas
|
|
success_url = '/areas'
|
|
#fields = ['name', 'color', 'desc', 'usersfield']
|
|
form_class = AreaAddAreaForm
|
|
|
|
#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' : 'areasmanagement'})
|
|
return context
|
|
|
|
def form_valid(self, form):
|
|
# Send message to the site
|
|
messages.success(self.request, f'Bereich 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)
|
|
|
|
|
|
class AreaDeleteView(LoginRequiredMixin, DeleteView):
|
|
model = Areas
|
|
success_url = '/areas'
|
|
template_name = 'areas/area_confirm_delete.html'
|
|
|
|
def get_context_data(self, **kwargs):
|
|
context = super(AreaDeleteView, self).get_context_data(**kwargs)
|
|
context['active_link'] = 'areasmanagement'
|
|
return context
|
|
|
|
# Hier andere Nutzer ändern, wenn man Usersmanagement darf!
|
|
class AreaUpdateView(LoginRequiredMixin, UpdateView):
|
|
model = Areas
|
|
template_name = 'areas/areas_update.html'
|
|
success_url = '/areas'
|
|
form_class = AreaAddAreaForm
|
|
|
|
def form_valid(self, form):
|
|
# Send message to the site
|
|
messages.success(self.request, f'Bereich aktualisiert!')
|
|
return super().form_valid(form)
|
|
|
|
# Form wird geladen; Checkboxen werden vorbereitet und hier rausgerendert.
|
|
def get(self,request,*args, **kwargs):
|
|
# User ist der hier Aufgerufene, bzw. das Profil!
|
|
loggeduser = request.user
|
|
|
|
return render (request, self.template_name, {'form':self.form_class(loggeduser), 'active_link': 'usersmanagement'})
|
|
|
|
|
|
|
|
|
|
#def get_context_data(self, **kwargs):
|
|
# context = super(AreaUpdateView, self).get_context_data(**kwargs)
|
|
# users_of_agency = User.objects.filter(profile__agency__pk=self.request.user.profile.agency.pk)
|
|
# context['possible_users'] = users_of_agency
|
|
# context['active_link'] = 'areasmanagement'
|
|
# return context |