diff --git a/generic/migrations/0017_alter_ciduser_cid.py b/generic/migrations/0017_alter_ciduser_cid.py new file mode 100644 index 00000000..24066529 --- /dev/null +++ b/generic/migrations/0017_alter_ciduser_cid.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.8 on 2021-12-11 22:38 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('generic', '0016_ciduser_active'), + ] + + operations = [ + migrations.AlterField( + model_name='ciduser', + name='cid', + field=models.IntegerField(blank=True, null=True, unique=True), + ), + ] diff --git a/generic/models.py b/generic/models.py index ba6dad4e..7adf2cbb 100644 --- a/generic/models.py +++ b/generic/models.py @@ -188,7 +188,7 @@ class QuestionNote(models.Model): class CidUser(models.Model): - cid = models.IntegerField(blank=True, null=True) + cid = models.IntegerField(blank=True, null=True, unique=True) passcode = models.CharField(blank=True, max_length=50) active = models.BooleanField(default=True) diff --git a/generic/templates/generic/cid_view.html b/generic/templates/generic/cid_view.html new file mode 100644 index 00000000..4c70e447 --- /dev/null +++ b/generic/templates/generic/cid_view.html @@ -0,0 +1,56 @@ +{% extends 'base.html' %} + +{% load render_table from django_tables2 %} +{% block css %} +{% endblock %} + +{% block content %} + +
+

Filter CID Users

+
+ {{ filter.form }} + +
+
+ + {% render_table table %} + + + + +{% endblock %} + +{% block js %} + +{% endblock %} diff --git a/generic/templates/generic/question_view.html b/generic/templates/generic/question_view.html deleted file mode 100644 index 78c5773f..00000000 --- a/generic/templates/generic/question_view.html +++ /dev/null @@ -1,21 +0,0 @@ -{% extends 'base.html' %} - -{% load render_table from django_tables2 %} -{% block css %} -{% endblock %} - -{% block content %} - -
-

Filter CID Users

-
- {{ filter.form }} - -
-
-{% render_table table %} - -{% endblock %} - -{% block js %} -{% endblock %} \ No newline at end of file diff --git a/generic/urls.py b/generic/urls.py index c9749411..1c35ebb8 100755 --- a/generic/urls.py +++ b/generic/urls.py @@ -27,4 +27,5 @@ urlpatterns = [ name="examination-autocomplete", ), path("cids/manage/", views.CidUserView.as_view(), name="manage_cids"), + path("cids/create", views.create_cid_users, name="create_cid_users"), ] diff --git a/generic/views.py b/generic/views.py index e184a21b..44915d61 100644 --- a/generic/views.py +++ b/generic/views.py @@ -1,6 +1,7 @@ from dal import autocomplete from django.contrib.auth.models import User from django.contrib.contenttypes.models import ContentType +from django.db.models.expressions import Random from django.forms.models import model_to_dict from django.shortcuts import render, get_object_or_404, redirect @@ -51,6 +52,7 @@ from django.conf import settings from datetime import datetime import os +import string #from rad.views import get_question_and_content_type @@ -841,6 +843,18 @@ class ExaminationAutocomplete(autocomplete.Select2QuerySetView): class CidUserView(LoginRequiredMixin, SingleTableMixin, FilterView): model = CidUser table_class = CidUserTable - template_name = "generic/question_view.html" + template_name = "generic/cid_view.html" - filterset_class = CidUserFilter \ No newline at end of file + filterset_class = CidUserFilter + +def create_cid_users(request): + if request.is_ajax() and request.method == "POST": + number = request.POST.get("number") + + new_cid = max(CidUser.objects.all().order_by("-cid")[0].cid+1, 50000) + + for n in range(number): + passcode = Random.choice(string.aschii_uppercase) + c = CidUser(cid=new_cid, passcode=passcode) + c.save() + new_cid = new_cid + 1 \ No newline at end of file