This commit is contained in:
Ross
2021-12-20 10:22:39 +00:00
parent e3ea5e9a6f
commit 5f32cce58d
20 changed files with 192 additions and 43 deletions
+6 -1
View File
@@ -10,7 +10,7 @@ from django.forms import (
from django.forms import inlineformset_factory
from generic.models import (
Examination, QuestionNote
CidUser, Examination, QuestionNote
)
from django.contrib.admin.widgets import FilteredSelectMultiple
@@ -66,3 +66,8 @@ class QuestionNoteForm(ModelForm):
##initial["content_id"] = pk
#self.fields["content_type"].initial = content_type
#self.fields["object_id"].initial = pk
class CidUserForm(ModelForm):
class Meta:
model = CidUser
fields = ["cid", "passcode", "active", "internal_candidate", "name", "email", "supervisor_email"]
+3
View File
@@ -1,8 +1,11 @@
from django.contrib.auth.mixins import LoginRequiredMixin
from django.db import models
from django.http import HttpRequest
from smtplib import SMTPException
from django.urls import reverse
from django.views.generic.edit import CreateView
from reversion.views import RevisionMixin
import tagulous
import tagulous.models
+4 -1
View File
@@ -23,7 +23,10 @@ class CidUserTable(tables.Table):
# edit = tables.LinkColumn(
# "anatomy:anatomy_question_update", text="Edit", args=[A("pk")], orderable=False
# )
cid = tables.LinkColumn("cid_scores", args=[A("cid"), A("passcode")], orderable=True)
cid = tables.LinkColumn(
"cid_scores", args=[A("cid"), A("passcode")], orderable=True
)
edit = tables.LinkColumn("generic:update_cid", text="Edit", args=[A("pk")], orderable=True)
# image = ImageColumn("image", orderable=False)
# clone = tables.LinkColumn('anatomy:anatomy_question_clone',
# text='Clone',
+2 -2
View File
@@ -1,7 +1,7 @@
{% extends 'base.html' %}
{% block title %}
CIDs
Candidates
{% endblock %}
{% block css %}
@@ -15,7 +15,7 @@ CIDs
{% block content %}
{% endblock %}
{% block navigation %}
CIDs:
Candidates:
{% if request.user.is_authenticated %}
<a href="{% url 'generic:manage_cids' %}">Cids</a> /
<a href="{% url 'generic:group_view' %}">Groups</a> /
+26
View File
@@ -0,0 +1,26 @@
{% extends "atlas/base.html" %}
<!-- {% load static from static %} -->
{% block css %}
{% endblock %}
{% block js %}
<!--<script type="text/javascript" src="/admin/jsi18n/"></script>-->
{{form.media}}
<script type="text/javascript">
</script>
<!-- {{ form.media }} -->
{% endblock %}
{% block content %}
<h2>Edit CID User</h2>
Use this form to create or edit a CID user.
<form action="" method="post" enctype="multipart/form-data" id="condition-form">
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" class="submit-button" value="Submit" name="submit">
</form>
{% endblock %}
+1
View File
@@ -26,6 +26,7 @@ urlpatterns = [
),
name="examination-autocomplete",
),
path("cids/manage/<int:pk>/update", views.CidUserUpdate.as_view(), name="update_cid"),
path("cids/manage/", views.CidUserView.as_view(), name="manage_cids"),
path("cids/group/", views.group_view, name="group_view"),
path("cids/group/<int:pk>/email", views.group_email, name="group_email"),
+32 -4
View File
@@ -25,14 +25,17 @@ import json
import urllib
from django.views import View
from django.views.generic.edit import CreateView, UpdateView
from django_filters.views import FilterView
from django_tables2.views import SingleTableMixin
from reversion.views import RevisionMixin
from generic.decorators import user_is_cid_user_manager
from generic.filters import CidUserFilter
from generic.tables import CidUserTable
from .forms import (
CidUserForm,
ExaminationForm,
)
@@ -414,10 +417,20 @@ class ExamViews(View, LoginRequiredMixin):
if not self.check_user_access(request.user):
raise PermissionDenied
marking = False
if self.app_name in ("rapids", "anatomy", "longs"):
marking = True
return render(
request,
"exam_list.html".format(self.app_name),
{"exams": exams, "app_name": self.app_name, "view_all": all},
{
"exams": exams,
"app_name": self.app_name,
"view_all": all,
"marking": marking,
},
)
@method_decorator(login_required)
@@ -526,8 +539,13 @@ class ExamViews(View, LoginRequiredMixin):
return render(
request,
"{}/exam_cids.html".format(self.app_name),
{"exam": exam, "cid_users": cid_users, "cid_user_count": cid_user_count},
"exam_cids.html",
{
"exam": exam,
"cid_users": cid_users,
"cid_user_count": cid_user_count,
"app_name": self.app_name,
},
)
# @method_decorator(login_required)
@@ -1287,7 +1305,7 @@ def group_email(request, pk, resend=False):
if resend:
users = group.ciduser_set.filter()
else:
users = group.ciduser_set.filter(login_email_sent=False)
users = gGroup.ciduser_set.filter(login_email_sent=False)
sent = []
not_sent = []
@@ -1449,3 +1467,13 @@ def manage_cid_users(request):
return JsonResponse({"status": "success"})
return JsonResponse({"status": "fail"})
class CidUserCreate(RevisionMixin, LoginRequiredMixin, CreateView):
model = CidUser
form_class = CidUserForm
class CidUserUpdate(RevisionMixin, LoginRequiredMixin, UpdateView):
model = CidUser
form_class = CidUserForm