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)