mirror of
https://github.com/lemeow125/DocManagerBackend.git
synced 2025-04-27 18:21:23 +08:00
Add Ollama JSON schema for categorization
This commit is contained in:
parent
844113d44f
commit
b24646d42d
5 changed files with 88 additions and 40 deletions
|
@ -0,0 +1,25 @@
|
|||
# Generated by Django 5.1.3 on 2024-12-18 07:58
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("document_requests", "0001_initial"),
|
||||
("questionnaires", "0001_initial"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="documentrequest",
|
||||
name="questionnaire",
|
||||
field=models.ForeignKey(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.SET_NULL,
|
||||
to="questionnaires.questionnaire",
|
||||
),
|
||||
),
|
||||
]
|
|
@ -6,12 +6,16 @@ class DocumentRequestUnit(models.Model):
|
|||
document_request = models.ForeignKey(
|
||||
"document_requests.DocumentRequest", on_delete=models.CASCADE
|
||||
)
|
||||
document = models.ForeignKey("documents.Document", on_delete=models.CASCADE)
|
||||
document = models.ForeignKey(
|
||||
"documents.Document", on_delete=models.CASCADE)
|
||||
copies = models.IntegerField(default=1, null=False, blank=False)
|
||||
|
||||
|
||||
class DocumentRequest(models.Model):
|
||||
requester = models.ForeignKey("accounts.CustomUser", on_delete=models.CASCADE)
|
||||
requester = models.ForeignKey(
|
||||
"accounts.CustomUser", on_delete=models.CASCADE)
|
||||
questionnaire = models.ForeignKey(
|
||||
"questionnaires.Questionnaire", on_delete=models.SET_NULL, null=True, blank=True)
|
||||
documents = models.ManyToManyField("document_requests.DocumentRequestUnit")
|
||||
date_requested = models.DateTimeField(default=now, editable=False)
|
||||
college = models.CharField(max_length=64, blank=False, null=False)
|
||||
|
@ -23,11 +27,13 @@ class DocumentRequest(models.Model):
|
|||
("denied", "Denied"),
|
||||
)
|
||||
|
||||
status = models.CharField(max_length=32, choices=STATUS_CHOICES, default="pending")
|
||||
status = models.CharField(
|
||||
max_length=32, choices=STATUS_CHOICES, default="pending")
|
||||
|
||||
TYPE_CHOICES = (
|
||||
("softcopy", "Softcopy"),
|
||||
("hardcopy", "Hardcopy"),
|
||||
)
|
||||
|
||||
type = models.CharField(max_length=16, choices=TYPE_CHOICES, default="softcopy")
|
||||
type = models.CharField(
|
||||
max_length=16, choices=TYPE_CHOICES, default="softcopy")
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
from rest_framework import serializers
|
||||
from documents.models import Document
|
||||
from documents.serializers import DocumentSerializer, DocumentFileSerializer
|
||||
from questionnaires.models import Questionnaire
|
||||
from accounts.models import CustomUser
|
||||
from emails.templates import RequestUpdateEmail
|
||||
from .models import DocumentRequest, DocumentRequestUnit
|
||||
|
@ -24,7 +25,8 @@ class DocumentRequestCreationSerializer(serializers.ModelSerializer):
|
|||
documents = DocumentRequestUnitCreationSerializer(many=True, required=True)
|
||||
college = serializers.CharField(max_length=64)
|
||||
purpose = serializers.CharField(max_length=512)
|
||||
type = serializers.ChoiceField(choices=DocumentRequest.TYPE_CHOICES, required=True)
|
||||
type = serializers.ChoiceField(
|
||||
choices=DocumentRequest.TYPE_CHOICES, required=True)
|
||||
|
||||
class Meta:
|
||||
model = DocumentRequest
|
||||
|
@ -79,6 +81,12 @@ class DocumentRequestSerializer(serializers.ModelSerializer):
|
|||
queryset=CustomUser.objects.all(),
|
||||
required=False,
|
||||
)
|
||||
requester = serializers.SlugRelatedField(
|
||||
many=False,
|
||||
slug_field="id",
|
||||
queryset=CustomUser.objects.all(),
|
||||
required=False,
|
||||
)
|
||||
purpose = serializers.CharField(max_length=512)
|
||||
date_requested = serializers.DateTimeField(
|
||||
format="%m-%d-%Y %I:%M %p", read_only=True
|
||||
|
@ -108,10 +116,10 @@ class DocumentRequestSerializer(serializers.ModelSerializer):
|
|||
]
|
||||
|
||||
def get_documents(self, obj):
|
||||
if obj.status != "approved":
|
||||
serializer_class = DocumentRequestUnitSerializer
|
||||
else:
|
||||
if obj.questionnaire and obj.status == "approved":
|
||||
serializer_class = DocumentRequestUnitWithFileSerializer
|
||||
else:
|
||||
serializer_class = DocumentRequestUnitSerializer
|
||||
return serializer_class(obj.documents, many=True).data
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue