JourneyJoker/clients/views.py

62 lines
No EOL
2.1 KiB
Python

from django.views.generic import CreateView, UpdateView, TemplateView
from django.urls import reverse_lazy
from django.shortcuts import redirect
from django.contrib import messages
from .models import ClientProfile
from localauth.mixins import LoginRequiredMixin
from public.mixins import InConstructionMixin
class ClientRegistrationView(InConstructionMixin, LoginRequiredMixin, CreateView):
model = ClientProfile
exclude = ["user"]
template_name = "clients/signup.html"
fields = ["company", "vat_id", "first_name", "last_name", "street", "city", "zip", "state", "country"]
def form_valid(self, form):
form.instance.user = self.request.user
return super().form_valid(form)
def get_success_url(self):
messages.success(self.request, "Profil erfolgreich angelegt!")
return reverse_lazy("clients:profile")
def get_initial(self):
try:
partner = self.request.user.partnerprofile
return {
"company": partner.company,
"vat_id": partner.vat_id,
"first_name": partner.first_name,
"last_name": partner.last_name,
"street": partner.street,
"city": partner.city,
"zip": partner.zip,
"state": partner.state,
"country": partner.country
}
except:
return {}
class ClientProfileView(InConstructionMixin, LoginRequiredMixin, UpdateView):
model = ClientProfile
exclude = ["user"]
template_name = "clients/profile.html"
fields = ["company", "vat_id", "first_name", "last_name", "street", "city", "zip", "state", "country"]
def get_success_url(self):
return reverse_lazy("clients:profile")
def get_object(self, queryset=None):
return self.request.user.clientprofile
def get(self, request, *args, **kwargs):
try:
return super().get(request, *args, **kwargs)
except ClientProfile.DoesNotExist:
return redirect("clients:register")
class ClientDashboardView(InConstructionMixin, LoginRequiredMixin, TemplateView):
template_name = "clients/dashboard.html"