This commit is contained in:
Ross
2022-05-24 12:30:11 +01:00
parent bbcbc02e0d
commit 41a09ea30d
29 changed files with 506 additions and 247 deletions
+72 -4
View File
@@ -1,6 +1,6 @@
from atlas.models import CaseCollection, CidReportAnswer
from generic.decorators import user_is_cid_user_manager
from generic.views import get_question_and_content_type
from generic.views import CidManagerRequiredMixin, get_question_and_content_type
from django.core.exceptions import PermissionDenied
from django.shortcuts import render, get_object_or_404, redirect
from django.views.decorators.csrf import csrf_exempt
@@ -15,7 +15,7 @@ from django.contrib.contenttypes.models import ContentType
from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from django.views.generic import ListView
from django.views.generic import ListView, TemplateView
from django.db.models.functions import Lower
@@ -54,7 +54,7 @@ from rapids.views import GenericExamViews as RapidsExamsViews
from longs.views import GenericExamViews as LongsExamViews
from generic.forms import QuestionNoteForm
from generic.models import CidUser, QuestionNote
from generic.models import CidUser, QuestionNote, UserProfile
import json
@@ -71,6 +71,12 @@ def profile(request):
return render(request, "profile.html", {"user": user})
@user_is_cid_user_manager
def account_profile(request, slug):
user = get_object_or_404(User, username=slug)
return render(request, "profile.html", {"user": user})
def cid_selector(request):
return render(
request,
@@ -87,7 +93,7 @@ def cid_scores_admin(request, cid):
@login_required
#@user_passes_test(lambda u: u.is_superuser)
# @user_passes_test(lambda u: u.is_superuser)
@user_is_cid_user_manager
def cid_results(request, cid):
cid_user = CidUser.objects.filter(cid=cid).first()
@@ -432,3 +438,65 @@ def server_error(request):
# response.status_code = 404
return response
class UserListView(CidManagerRequiredMixin, ListView):
model = User
template_name = "user_list_view.html"
class UpdateUserView(CidManagerRequiredMixin, UpdateView):
model = User
fields = ["first_name", "last_name", "email"] # Keep listing whatever fields
# the combined UserProfile and User exposes.
template_name = "user_update.html"
slug_field = "username"
slug_url_kwarg = "slug"
success_url = reverse_lazy("profile")
class UpdateUserProfileView(CidManagerRequiredMixin, UpdateView):
model = UserProfile
fields = [
"supervisor_name",
"supervisor_email",
"grade",
"registration_number",
"peninsula_trainee",
] # Keep listing whatever fields
template_name = "user_update.html"
slug_field = "user__username"
slug_url_kwarg = "slug"
success_url = reverse_lazy("profile")
# class UpdateUser(TemplateView):
#
# user_form_class = UserForm
# comment_form_class = UserProfileForm
# template_name = 'user_update.html'
# slug_field = 'username'
# slug_url_kwarg = 'slug'
#
# def post(self, request):
# post_data = request.POST or None
# user_form = self.user_form_class(post_data, prefix='user')
# profile_form = self.profile_form_class(post_data, prefix='userprofile')
#
# context = self.get_context_data(post_form=user_form,
# profile_form=profile_form)
#
# if user_form.is_valid():
# self.form_save(user_form)
# if profile_form.is_valid():
# self.form_save(profile_form)
#
# return self.render_to_response(context)
#
# def form_save(self, form):
# obj = form.save()
# #messages.success(self.request, "{} saved successfully".format(obj))
# return obj
#
# def get(self, request, *args, **kwargs):
# return self.post(request, *args, **kwargs)