.
This commit is contained in:
+6
-1
@@ -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"]
|
||||
@@ -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
@@ -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',
|
||||
|
||||
@@ -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> /
|
||||
|
||||
Executable
+26
@@ -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 %}
|
||||
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user