From 2c1043c2dc08639b45b66b8fb5799a6f7ec44560 Mon Sep 17 00:00:00 2001 From: Ross Date: Thu, 10 Oct 2024 21:45:35 +0100 Subject: [PATCH] . --- oef/migrations/0005_entry_inactive.py | 18 ++++++++++++++++++ oef/models.py | 4 +++- oef/views.py | 14 +++++++------- 3 files changed, 28 insertions(+), 8 deletions(-) create mode 100644 oef/migrations/0005_entry_inactive.py diff --git a/oef/migrations/0005_entry_inactive.py b/oef/migrations/0005_entry_inactive.py new file mode 100644 index 00000000..8300f74d --- /dev/null +++ b/oef/migrations/0005_entry_inactive.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.2 on 2024-10-10 20:40 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('oef', '0004_specialty_formats_specialties'), + ] + + operations = [ + migrations.AddField( + model_name='entry', + name='inactive', + field=models.BooleanField(default=False), + ), + ] diff --git a/oef/models.py b/oef/models.py index fb73f4be..19a99116 100644 --- a/oef/models.py +++ b/oef/models.py @@ -15,6 +15,8 @@ class Entry(models.Model): comments = models.TextField(blank=True) + inactive = models.BooleanField(default=False) + #format = models.ForeignKey('Formats', on_delete=models.CASCADE, null=True, blank=True) def __str__(self): @@ -64,7 +66,7 @@ class Formats(models.Model): return "\n".join(formats) def get_entries(self): - return Entry.objects.filter(questions__icontains=self.get_format()) + return Entry.objects.filter(questions__icontains=self.get_format(), inactive=False) class Specialty(models.Model): name = models.CharField(max_length=200) diff --git a/oef/views.py b/oef/views.py index 736ddf2b..3504e8be 100644 --- a/oef/views.py +++ b/oef/views.py @@ -15,7 +15,7 @@ from django_tables2 import SingleTableView, SingleTableMixin class EntryUpdateView(UpdateView): model = Entry template_name = "oef/entry_update_view.html" - fields = ['modality', 'exam_code', 'exam_name', 'questions', 'comments'] + fields = ['modality', 'exam_code', 'exam_name', 'questions', 'comments', "inactive"] class EntryDetailView(DetailView): model = Entry @@ -48,7 +48,7 @@ def formats_apply(request, pk): search_text = format.get_format() - entries = Entry.objects.filter(questions__icontains=search_text) + entries = Entry.objects.filter(questions__icontains=search_text, inactive=False) entry_list = [] for entry in entries: @@ -79,9 +79,9 @@ def replace_questions(request): return HttpResponse("Please provide both search and replace values") if request.POST.get("exact", False): - entries = Entry.objects.filter(questions=search) + entries = Entry.objects.filter(questions=search, inactive=False) else: - entries = Entry.objects.filter(questions__contains=search) + entries = Entry.objects.filter(questions__contains=search, inactive=False) for entry in entries: entry.questions = entry.questions.replace(search, replace) @@ -92,7 +92,7 @@ def replace_questions(request): return render(request, "oef/replace_questions.html", {}) def questions(request): - questions = set(Entry.objects.all().values_list("questions", flat=True)) + questions = set(Entry.objects.filter(inactive=False).values_list("questions", flat=True)) questions = sorted(questions, key=lambda x: len(x)) @@ -111,7 +111,7 @@ def entries_by_question(request): if request.method == "POST": question = request.POST.get("question") - entries = Entry.objects.filter(questions=question) + entries = Entry.objects.filter(questions=question, inactive=False) return render(request, "oef/entries_by_question.html", {"entries": entries}) @@ -121,7 +121,7 @@ def entries_by_question_codes(request): if request.method == "POST": question = request.POST.get("question") - entries = Entry.objects.filter(questions=question) + entries = Entry.objects.filter(questions=question, inactive=False) return render(request, "oef/entries_by_question_codes.html", {"entries": entries})