273 lines
9.9 KiB
Python
273 lines
9.9 KiB
Python
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, AGContactsCagetory
|
|
from .forms import OrganizerAddQlForm, OrganizerAddContact, OrganizerUpdateContact, AddAGPassword, OrganizerAddCategoryForm
|
|
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
|
|
|
|
|
|
|
|
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('personname'), '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'), 'categorys' : AGContactsCagetory.objects.filter(agency__pk=self.request.user.profile.agency.pk).order_by('name')})
|
|
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
|
|
|
|
# Pass User to Form to get only categorys from agency
|
|
def get_form_kwargs(self):
|
|
kwargs = super(OrganizerAddContact, self).get_form_kwargs()
|
|
kwargs.update({'user': self.request.user})
|
|
return kwargs
|
|
|
|
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)
|
|
|
|
# Pass User to Form to get only categorys from agency
|
|
def get_form_kwargs(self):
|
|
kwargs = super(OrganizerUpdateContact, self).get_form_kwargs()
|
|
kwargs.update({'user': self.request.user})
|
|
return kwargs
|
|
|
|
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")
|
|
|
|
@login_required
|
|
def ajaxorganizer(request):
|
|
data = {'success' : False}
|
|
|
|
if request.method == 'GET':
|
|
#UPDATE CATEGORYNAME
|
|
if request.GET['action'] == 'update_category':
|
|
workingcat = AGContactsCagetory.objects.get(pk=request.GET['id'])
|
|
if(request.user.profile.agency == workingcat.agency):
|
|
workingcat.name = request.GET["newvalue"]
|
|
workingcat.save()
|
|
data["success"] = True
|
|
else:
|
|
data["success"] = False
|
|
return JsonResponse(data)
|
|
# GET CATEGORY NAME
|
|
elif request.GET['action'] == 'get_catname':
|
|
workingcat = AGContactsCagetory.objects.get(pk=request.GET['id'])
|
|
data["catname"] = workingcat.name
|
|
return JsonResponse(data)
|
|
# DELETE A CATEGORY
|
|
elif request.GET['action'] == 'delete_category':
|
|
workingcat = AGContactsCagetory.objects.get(pk=request.GET['id'])
|
|
if(request.user.profile.agency == workingcat.agency):
|
|
workingcat.delete()
|
|
data["success"] = True
|
|
else:
|
|
data["success"] = False
|
|
return JsonResponse(data)
|
|
# ADD CATEGORY
|
|
elif request.GET['action'] == 'add_category':
|
|
workingcat = AGContactsCagetory(name="", agency=request.user.profile.agency)
|
|
workingcat.save()
|
|
data["new_id"] = workingcat.pk
|
|
return JsonResponse(data)
|
|
|
|
|
|
else:
|
|
return JsonResponse(data) |