digitaleagenturnc/areas/views.py

73 lines
2.5 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
form_class= AreaAddAreaForm
template_name = 'areas/areas_update.html'
success_url = '/areas'
def get_context_data(self, **kwargs):
context = super(AreaUpdateView, self).get_context_data(**kwargs)
context['active_link'] = 'areasmanagement'
return context
def form_valid(self, form):
# Send message to the site
messages.success(self.request, f'Bereich aktualisiert!')
return super().form_valid(form)