mirror of
https://github.com/lemeow125/DocManagerBackend.git
synced 2025-04-20 08:51:31 +08:00
Compare commits
No commits in common. "8655a79e8b74adab8c3b001a7d37907c0de288ed" and "b24646d42df516499a45579ce081be9f4dead7af" have entirely different histories.
8655a79e8b
...
b24646d42d
5 changed files with 14 additions and 40 deletions
|
@ -105,7 +105,7 @@ class PDFHandler(FileSystemEventHandler):
|
||||||
prompt = f"""
|
prompt = f"""
|
||||||
Read the text from the image and provide a category. Return as JSON.
|
Read the text from the image and provide a category. Return as JSON.
|
||||||
|
|
||||||
Possible categories are: {possible_categories}. You are free to create a new one if none are suitable.
|
Possible categories are: {possible_categories}
|
||||||
"""
|
"""
|
||||||
response = client.chat(
|
response = client.chat(
|
||||||
model=get_secret("OLLAMA_MODEL"),
|
model=get_secret("OLLAMA_MODEL"),
|
||||||
|
|
|
@ -75,15 +75,17 @@ class DocumentRequestUnitWithFileSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
class DocumentRequestSerializer(serializers.ModelSerializer):
|
class DocumentRequestSerializer(serializers.ModelSerializer):
|
||||||
documents = serializers.SerializerMethodField()
|
documents = serializers.SerializerMethodField()
|
||||||
questionnaire = serializers.SlugRelatedField(
|
|
||||||
many=False,
|
|
||||||
slug_field="id",
|
|
||||||
queryset=Questionnaire.objects.all(),
|
|
||||||
)
|
|
||||||
requester = serializers.SlugRelatedField(
|
requester = serializers.SlugRelatedField(
|
||||||
many=False,
|
many=False,
|
||||||
slug_field="email",
|
slug_field="email",
|
||||||
queryset=CustomUser.objects.all(),
|
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)
|
purpose = serializers.CharField(max_length=512)
|
||||||
date_requested = serializers.DateTimeField(
|
date_requested = serializers.DateTimeField(
|
||||||
|
@ -94,7 +96,6 @@ class DocumentRequestSerializer(serializers.ModelSerializer):
|
||||||
model = DocumentRequest
|
model = DocumentRequest
|
||||||
fields = [
|
fields = [
|
||||||
"id",
|
"id",
|
||||||
"questionnaire",
|
|
||||||
"requester",
|
"requester",
|
||||||
"college",
|
"college",
|
||||||
"type",
|
"type",
|
||||||
|
@ -105,7 +106,6 @@ class DocumentRequestSerializer(serializers.ModelSerializer):
|
||||||
]
|
]
|
||||||
read_only_fields = [
|
read_only_fields = [
|
||||||
"id",
|
"id",
|
||||||
"questionnaire",
|
|
||||||
"requester",
|
"requester",
|
||||||
"college",
|
"college",
|
||||||
"type",
|
"type",
|
||||||
|
|
|
@ -17,8 +17,7 @@ class Questionnaire(models.Model):
|
||||||
|
|
||||||
date_submitted = models.DateTimeField(default=now, editable=False)
|
date_submitted = models.DateTimeField(default=now, editable=False)
|
||||||
|
|
||||||
region_of_residence = models.CharField(
|
region_of_residence = models.CharField(max_length=64, null=False, blank=False)
|
||||||
max_length=64, null=False, blank=False)
|
|
||||||
service_availed = models.CharField(max_length=64, null=False, blank=False)
|
service_availed = models.CharField(max_length=64, null=False, blank=False)
|
||||||
I_AM_I_CHOICES = (
|
I_AM_I_CHOICES = (
|
||||||
("faculty", "Faculty"),
|
("faculty", "Faculty"),
|
||||||
|
|
|
@ -1,25 +1,16 @@
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
from accounts.models import CustomUser
|
from accounts.models import CustomUser
|
||||||
from document_requests.models import DocumentRequest
|
|
||||||
from .models import Questionnaire
|
from .models import Questionnaire
|
||||||
|
|
||||||
|
|
||||||
class QuestionnaireSerializer(serializers.ModelSerializer):
|
class QuestionnaireSerializer(serializers.ModelSerializer):
|
||||||
document_request = serializers.SlugRelatedField(
|
|
||||||
many=False,
|
|
||||||
slug_field="id",
|
|
||||||
queryset=DocumentRequest.objects.all(),
|
|
||||||
required=True,
|
|
||||||
allow_null=True,
|
|
||||||
)
|
|
||||||
client = serializers.SlugRelatedField(
|
client = serializers.SlugRelatedField(
|
||||||
many=False,
|
many=False,
|
||||||
slug_field="email",
|
slug_field="email",
|
||||||
queryset=CustomUser.objects.all(),
|
queryset=CustomUser.objects.all(),
|
||||||
required=False,
|
required=False,
|
||||||
)
|
)
|
||||||
client_type = serializers.ChoiceField(
|
client_type = serializers.ChoiceField(choices=Questionnaire.CLIENT_TYPE_CHOICES)
|
||||||
choices=Questionnaire.CLIENT_TYPE_CHOICES)
|
|
||||||
|
|
||||||
date_submitted = serializers.DateTimeField(
|
date_submitted = serializers.DateTimeField(
|
||||||
format="%m-%d-%Y %I:%M %p", read_only=True
|
format="%m-%d-%Y %I:%M %p", read_only=True
|
||||||
|
@ -29,7 +20,7 @@ class QuestionnaireSerializer(serializers.ModelSerializer):
|
||||||
region_of_residence = serializers.CharField(max_length=64)
|
region_of_residence = serializers.CharField(max_length=64)
|
||||||
service_availed = serializers.CharField(max_length=64)
|
service_availed = serializers.CharField(max_length=64)
|
||||||
i_am_a = serializers.ChoiceField(choices=Questionnaire.I_AM_I_CHOICES)
|
i_am_a = serializers.ChoiceField(choices=Questionnaire.I_AM_I_CHOICES)
|
||||||
i_am_a_other = serializers.CharField(required=False, allow_blank=True)
|
i_am_a_other = serializers.CharField(required=False)
|
||||||
q1_answer = serializers.ChoiceField(choices=Questionnaire.Q1_CHOICES)
|
q1_answer = serializers.ChoiceField(choices=Questionnaire.Q1_CHOICES)
|
||||||
q2_answer = serializers.ChoiceField(choices=Questionnaire.Q2_CHOICES)
|
q2_answer = serializers.ChoiceField(choices=Questionnaire.Q2_CHOICES)
|
||||||
q3_answer = serializers.ChoiceField(choices=Questionnaire.Q3_CHOICES)
|
q3_answer = serializers.ChoiceField(choices=Questionnaire.Q3_CHOICES)
|
||||||
|
@ -41,8 +32,7 @@ class QuestionnaireSerializer(serializers.ModelSerializer):
|
||||||
sqd6_answer = serializers.ChoiceField(choices=Questionnaire.SQD_CHOICES)
|
sqd6_answer = serializers.ChoiceField(choices=Questionnaire.SQD_CHOICES)
|
||||||
sqd7_answer = serializers.ChoiceField(choices=Questionnaire.SQD_CHOICES)
|
sqd7_answer = serializers.ChoiceField(choices=Questionnaire.SQD_CHOICES)
|
||||||
sqd8_answer = serializers.ChoiceField(choices=Questionnaire.SQD_CHOICES)
|
sqd8_answer = serializers.ChoiceField(choices=Questionnaire.SQD_CHOICES)
|
||||||
extra_suggestions = serializers.CharField(
|
extra_suggestions = serializers.CharField(max_length=512, required=False)
|
||||||
max_length=512, required=False, allow_blank=True)
|
|
||||||
|
|
||||||
def get_age(self, obj):
|
def get_age(self, obj):
|
||||||
return obj.client.age
|
return obj.client.age
|
||||||
|
@ -68,35 +58,20 @@ class QuestionnaireSerializer(serializers.ModelSerializer):
|
||||||
{"error": "Missing description for client type: Other"}
|
{"error": "Missing description for client type: Other"}
|
||||||
)
|
)
|
||||||
|
|
||||||
if "document_request" in validated_data:
|
# Create the instance without calling super().create()
|
||||||
if validated_data["document_request"]:
|
|
||||||
document_request_id = validated_data["document_request"].id
|
|
||||||
else:
|
|
||||||
document_request_id = None
|
|
||||||
del validated_data["document_request"]
|
|
||||||
|
|
||||||
instance = self.Meta.model(**validated_data)
|
instance = self.Meta.model(**validated_data)
|
||||||
|
|
||||||
# Explicitly set the client_type attribute
|
# Explicitly set the client_type attribute
|
||||||
instance.client_type = validated_data.get("client_type")
|
instance.client_type = validated_data.get("client_type")
|
||||||
|
|
||||||
# Save the instance
|
# Save the instance
|
||||||
instance.save()
|
instance.save()
|
||||||
|
|
||||||
# Update associated document request if it exists
|
|
||||||
if document_request_id:
|
|
||||||
DOCUMENT_REQUEST = DocumentRequest.objects.get(
|
|
||||||
id=document_request_id
|
|
||||||
)
|
|
||||||
DOCUMENT_REQUEST.questionnaire = instance
|
|
||||||
DOCUMENT_REQUEST.save()
|
|
||||||
|
|
||||||
return instance
|
return instance
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Questionnaire
|
model = Questionnaire
|
||||||
fields = [
|
fields = [
|
||||||
"id",
|
"id",
|
||||||
"document_request",
|
|
||||||
"client",
|
"client",
|
||||||
"client_type",
|
"client_type",
|
||||||
"date_submitted",
|
"date_submitted",
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 147 KiB After Width: | Height: | Size: 132 KiB |
Loading…
Add table
Reference in a new issue