onboard/accounts/views.py
2021-07-21 20:58:18 -06:00

59 lines
1.9 KiB
Python
Executable File

import pytz
from django.utils import timezone
from django.shortcuts import render, reverse, redirect
from django.urls import reverse_lazy
from django.views.generic.base import TemplateView
from django.views.generic.edit import FormView, CreateView, UpdateView, DeleteView
from django.views.generic.detail import DetailView
from django.views.generic.list import ListView
from django.contrib.auth.mixins import LoginRequiredMixin
from django.contrib.auth.models import User
from .models import Profile
from .forms import AccountUpdateForm, ProfileUpdateForm
class ProfileView(LoginRequiredMixin, TemplateView):
template_name = 'accounts/profile.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['profile'] = self.request.user.profile
return context
class ProfileUpdateView(LoginRequiredMixin, UpdateView):
model = Profile
form_class = ProfileUpdateForm
def get_success_url(self):
return reverse('account-update', kwargs={'pk': self.request.user.pk})
class AccountDetailView(LoginRequiredMixin, DetailView):
model = User
template_name = 'accounts/account_detail.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
return context
class AccountUpdateView(LoginRequiredMixin, UpdateView):
model = User
form_class = AccountUpdateForm
template_name = 'accounts/account_form.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['profile_form'] = ProfileUpdateForm(instance=self.object.profile)
context['timezones'] = pytz.common_timezones
return context
def get_success_url(self):
pk = self.kwargs["pk"]
return reverse('account-detail', kwargs={'pk': pk})
class AccountDeleteView(LoginRequiredMixin, DeleteView):
model = User
success_url = reverse_lazy('account-list')