from django.shortcuts import render from django.contrib.auth.mixins import LoginRequiredMixin from django.views.generic import CreateView, ListView, UpdateView, DetailView, DeleteView from .models import QuickLinks, AGContacts, AGPassword from .forms import OrganizerAddQlForm, OrganizerAddContact, OrganizerUpdateContact, AddAGPassword from django.contrib import messages from django.shortcuts import redirect from django.http import HttpResponse, HttpResponseRedirect, JsonResponse from django.contrib.auth.decorators import login_required from django.urls import reverse_lazy from users.models import AgencyGroup # Create your views here. class OrganizerManagement(LoginRequiredMixin, ListView): model = QuickLinks # 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) quicklinks = QuickLinks.objects.filter(agency__pk=self.request.user.profile.agency.pk).order_by('name') context.update({'active_link' : 'organizer', 'quicklinks' : quicklinks, 'contacts' : AGContacts.objects.filter(agency__pk=self.request.user.profile.agency.pk).order_by('last_name'), 'agpass' : AGPassword.objects.filter(agency__pk=self.request.user.profile.agency.pk).order_by('name'), 'agencygroups' : AgencyGroup.objects.filter(agency__pk=self.request.user.profile.agency.pk).order_by('agencygroupname') }) return context class OrganizerAdd(LoginRequiredMixin, CreateView): model = QuickLinks success_url = reverse_lazy('organizer-management') form_class = OrganizerAddQlForm def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context.update({'active_link' : 'organizer'}) return context def form_valid(self, form): # Send message to the site messages.success(self.request, f'Quicklink angelegt!') # SAVE OBJECTS TO SIGNALE! form.instance.agency = self.request.user.profile.agency return super().form_valid(form) class OrganizerDeleteView(LoginRequiredMixin, DeleteView): model = QuickLinks success_url = reverse_lazy('organizer-management') template_name = 'organizer/ql_confirm_delete.html' def delete(self, request, *args, **kwargs): response = super(OrganizerDeleteView, self).delete(request, *args, **kwargs) messages.success(request, f'Quicklink wurde gelöscht!') return response def get_context_data(self, **kwargs): context = super(OrganizerDeleteView, self).get_context_data(**kwargs) context['active_link'] = 'organizer' return context class OrganizerUpdateView(LoginRequiredMixin, UpdateView): model = QuickLinks template_name = 'organizer/ql_update.html' success_url = reverse_lazy('organizer-management') form_class = OrganizerAddQlForm def form_valid(self, form): # Send message to the site messages.success(self.request, f'Quicklink aktualisiert!') return super().form_valid(form) def get_context_data(self, **kwargs): context = super(OrganizerUpdateView, self).get_context_data(**kwargs) context['active_link'] = 'organizer' return context # CONTACTS class OrganizerAddContact(LoginRequiredMixin, CreateView): model = AGContacts success_url = reverse_lazy('organizer-management') form_class = OrganizerAddContact def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context.update({'active_link' : 'organizer'}) return context def form_valid(self, form): # Send message to the site messages.success(self.request, f'Kontakt angelegt!') # SAVE OBJECTS TO SIGNALE! form.instance.agency = self.request.user.profile.agency return super().form_valid(form) class OrganizerDelContact(LoginRequiredMixin, DeleteView): model = AGContacts success_url = reverse_lazy('organizer-management') template_name = 'organizer/contact_delete.html' def delete(self, request, *args, **kwargs): response = super(OrganizerDelContact, self).delete(request, *args, **kwargs) messages.success(request, f'Kontakt wurde gelöscht!') return response def get_context_data(self, **kwargs): context = super(OrganizerDelContact, self).get_context_data(**kwargs) context['active_link'] = 'organizer' return context class OrganizerUpdateContact(LoginRequiredMixin, UpdateView): model = AGContacts template_name = 'organizer/contact_update.html' success_url = reverse_lazy('organizer-management') form_class = OrganizerUpdateContact def form_valid(self, form): # Send message to the site messages.success(self.request, f'Kontakt aktualisiert!') return super().form_valid(form) def get_context_data(self, **kwargs): context = super(OrganizerUpdateContact, self).get_context_data(**kwargs) context['active_link'] = 'organizer' return context # PASSWORDS class OrganizerAddPassword(LoginRequiredMixin, CreateView): model = AGPassword success_url = reverse_lazy('organizer-management') form_class = AddAGPassword def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context.update({'active_link' : 'organizer'}) return context def form_valid(self, form): # Send message to the site messages.success(self.request, f'Passwort angelegt!') # SAVE OBJECTS TO SIGNALE! form.instance.agency = self.request.user.profile.agency return super().form_valid(form) class OrganizerDelPassword(LoginRequiredMixin, DeleteView): model = AGPassword success_url = reverse_lazy('organizer-management') template_name = 'organizer/agpass_delete.html' def delete(self, request, *args, **kwargs): response = super(OrganizerDelPassword, self).delete(request, *args, **kwargs) messages.success(request, f'Passwort wurde gelöscht!') return response def get_context_data(self, **kwargs): context = super(OrganizerDelPassword, self).get_context_data(**kwargs) context['active_link'] = 'organizer' return context class OrganizerUpdatePassword(LoginRequiredMixin, UpdateView): model = AGPassword template_name = 'organizer/agpass_update.html' success_url = reverse_lazy('organizer-management') form_class = AddAGPassword def form_valid(self, form): # Send message to the site messages.success(self.request, f'Kontakt aktualisiert!') return super().form_valid(form) def get_context_data(self, **kwargs): context = super(OrganizerUpdatePassword, self).get_context_data(**kwargs) context['active_link'] = 'organizer' return context @login_required def loaddefaultql(request): if request.method == 'GET': if request.GET['action'] == 'adddefql': defaultlinks = [ ["EASY", "https://easy.ergo.com "], ["ERGO Ansprechpartner Navigator", "http://ansprechpartner-navigator.de/ "], ["ERGO Lokales Marketing", "https://ergo.ergo-mein-lokales-marketing.de/marcapo_platform/WelcomePre.cms "], ["ERGO Meine Druckstücke", "https://www.ergo-meine-druckstuecke.de/?client-check=2 "], ["ERGO Vertriebsportal", "https://vertriebsportal.ergo.com/"], ["myVVE", "https://www.myvve.de/"], ["Wiki", "https://wiki.digitale-agentur.com/"] ] for ele in defaultlinks: print(ele[0] + " " + ele[1]) tempql = QuickLinks(agency=request.user.profile.agency, name=ele[0], link=ele[1]) tempql.save() return redirect("ql-addql") elif request.GET["action"] == "loadpassg": data = {} agpass = list(AGPassword.objects.filter(pk=request.GET["passid"], agency=request.user.profile.agency)) if(len(agpass) == 1): agpass_ele = agpass[0] groupsid = [] for ag in agpass_ele.visibleby.all(): groupsid.append({"id" : ag.pk}) data = {'success' : True, 'passgroups' : groupsid} else: data = {'success' : False} return JsonResponse(data) elif request.GET["action"] == "changepassg": groupid = request.GET.get('groupid') workingpass = request.GET.get('workingpass') value = request.GET.get('value') if(value == "true"): AGPassword.objects.get(pk=workingpass, agency=request.user.profile.agency).visibleby.add(AgencyGroup.objects.get(pk=groupid, agency=request.user.profile.agency)) else: AGPassword.objects.get(pk=workingpass, agency=request.user.profile.agency).visibleby.remove(AgencyGroup.objects.get(pk=groupid, agency=request.user.profile.agency)) data = {'success' : False} return JsonResponse(data) return redirect("ql-addql")