This commit is contained in:
Ross
2024-12-09 16:57:37 +00:00
parent 91ad134115
commit 695e651ea5
3 changed files with 81 additions and 12 deletions
+66 -2
View File
@@ -1,3 +1,4 @@
from dataclasses import dataclass
from difflib import HtmlDiff, SequenceMatcher
from django import forms
from django.http import HttpResponse, JsonResponse
@@ -52,14 +53,77 @@ class EntryTableView(SingleTableMixin, FilterView):
filterset_class = EntryFilter
@dataclass
class FormatOutput:
name: str
action: str=""
field_seq: int=100
field_label:str=""
field_name:str=""
field_status:str=""
field_type:str=""
field_codeset:str=""
def output(request):
formats = Formats.objects.all()
formats = sorted(formats, key=lambda x: len(x.format))
outputs = []
codesets = []
codeset_start = 100000
for format in formats:
questions = format.format
seq = 100
questions = format.format.strip().split("---")
for question in questions:
print(question)
if not question:
continue
name, *other = question.strip().splitlines()
status = "OPTIONAL"
if name.endswith("*"):
status = "REQUIRED"
name = name[:-1]
field_type = ""
match other:
case ["Yes", "No"]:
field_type = "YES/NO"
case ["Date/Time"]:
field_type = "DATE/TIME"
case ["Freetext"]:
field_type = "ALPHANUMERIC"
case [*codeset]:
field_type = "CODESET"
case _:
field_type = "unknown"
o = FormatOutput(format.name, field_label=name, field_name=name, field_seq=seq, field_status=status, field_type=field_type)
return render(request, "oef/output.html", {"formats": formats})
if field_type == "CODESET":
o.field_codeset = codeset_start
codeset_start = codeset_start + 1
outputs.append(o)
seq = seq + 100
return render(request, "oef/output.html", {"formats": formats, "outputs": outputs})
def formats_view(request):
formats = Formats.objects.all()