summaryrefslogtreecommitdiff
path: root/app/accounts/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/accounts/views.py')
-rw-r--r--app/accounts/views.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/app/accounts/views.py b/app/accounts/views.py
new file mode 100644
index 0000000..75bb933
--- /dev/null
+++ b/app/accounts/views.py
@@ -0,0 +1,32 @@
+from django.views.generic import UpdateView, DetailView
+from django.utils.decorators import method_decorator
+from django.contrib.auth.decorators import login_required
+
+from .models import UserProfile
+from .forms import ProfileForm
+
+
+@method_decorator(login_required, name='dispatch')
+class UpdateViewWithUser(UpdateView):
+
+ def get_form_kwargs(self, **kwargs):
+ kwargs = super().get_form_kwargs(**kwargs)
+ kwargs.update({'user': self.request.user})
+ return kwargs
+
+
+class ProfileView(UpdateViewWithUser):
+ model = UserProfile
+ form_class = ProfileForm
+ template_name = "accounts/change-settings.html"
+
+ def get_object(self):
+ return self.request.user.profile
+
+
+class SettingsListView(DetailView):
+ model = UserProfile
+ template_name = "accounts/profile.html"
+
+ def get_object(self):
+ return self.request.user.profile