Add in requested changes

This commit is contained in:
Keannu Bernasol 2024-12-16 14:58:50 +08:00
parent d81319c8ec
commit 844113d44f
7 changed files with 54 additions and 25 deletions

View file

@ -8,7 +8,8 @@ class IsStaff(BasePermission):
def has_permission(self, request, view): def has_permission(self, request, view):
return bool( return bool(
request.user and request.user.role in ("head", "admin", "planning", "staff") request.user and request.user.role in (
"head", "admin", "planning", "staff")
) )
@ -18,7 +19,7 @@ class IsPlanning(BasePermission):
""" """
def has_permission(self, request, view): def has_permission(self, request, view):
return bool(request.user and request.user.role in ("head", "admin", "planning")) return bool(request.user and request.user.role == "planning")
class IsHead(BasePermission): class IsHead(BasePermission):

View file

@ -6,7 +6,7 @@ from rest_framework.settings import api_settings
class CustomUserSerializer(serializers.ModelSerializer): class CustomUserSerializer(serializers.ModelSerializer):
birthday = serializers.DateField(format="%m-%d-%Y") birthday = serializers.DateField(format="%Y-%m-%d")
class Meta: class Meta:
model = CustomUser model = CustomUser

View file

@ -10,19 +10,48 @@ from .models import CustomUser
def create_admin_user(sender, **kwargs): def create_admin_user(sender, **kwargs):
# Programatically creates the administrator account # Programatically creates the administrator account
if sender.name == "accounts": if sender.name == "accounts":
ADMIN_USER = CustomUser.objects.filter( users = [{
email=get_secret("ADMIN_EMAIL")).first() "email": get_secret("ADMIN_EMAIL"),
if not ADMIN_USER: "role": "head",
ADMIN_USER = CustomUser.objects.create_superuser( "admin": True,
username=get_secret("ADMIN_EMAIL"), }, {
email=get_secret("ADMIN_EMAIL"), "email": "staff@test.com",
password=get_secret("ADMIN_PASSWORD"), "role": "staff",
sex="male", "admin": False,
birthday=localdate(now()), }, {
) "email": "planning@test.com",
"role": "planning",
"admin": False,
}, {
"email": "client@test.com",
"role": "client",
"admin": False,
},]
for user in users:
USER = CustomUser.objects.filter(
email=user["email"]).first()
if not USER:
if user["admin"]:
USER = CustomUser.objects.create_superuser(
username=user["email"],
email=user["email"],
password=get_secret("ADMIN_PASSWORD"),
sex="male",
birthday=localdate(now()),
role=user["role"]
)
else:
USER = CustomUser.objects.create_user(
username=user["email"],
email=user["email"],
password=get_secret("ADMIN_PASSWORD"),
sex="male",
birthday=localdate(now()),
role=user["role"]
print("Created administrator account:", ADMIN_USER.email) )
print(f"Created {user['role']} account: {USER.email}")
ADMIN_USER.first_name = "Administrator" USER.first_name = f"DEBUG_USER:{USER.email}"
ADMIN_USER.is_active = True USER.is_active = True
ADMIN_USER.save() USER.save()

View file

@ -124,7 +124,7 @@ class PDFHandler(FileSystemEventHandler):
# A few safety checks if the model does not follow through with output instructions # A few safety checks if the model does not follow through with output instructions
if len(document_type) > 16: if len(document_type) > 16:
self.logger.warning( self.logger.warning(
f"Ollama API gave incorrect document category: {response["message"]["content"]}. Retrying...") f"Ollama API gave incorrect document category: {response['message']['content']}. Retrying...")
break break
# If that fails, just use regular OCR read the title as a dirty fix/fallback # If that fails, just use regular OCR read the title as a dirty fix/fallback
@ -146,7 +146,7 @@ class PDFHandler(FileSystemEventHandler):
# Open the file for instance creation # Open the file for instance creation
DOCUMENT, created = Document.objects.get_or_create( DOCUMENT, created = Document.objects.get_or_create(
name=filename, name=filename.replace(".pdf", ""),
defaults={ defaults={
"number_pages": num_pages, "number_pages": num_pages,
"ocr_metadata": metadata, "ocr_metadata": metadata,
@ -158,8 +158,7 @@ class PDFHandler(FileSystemEventHandler):
DOCUMENT.file.save( DOCUMENT.file.save(
name=filename, content=File(open(file_path, "rb"))) name=filename, content=File(open(file_path, "rb")))
self.logger.info( self.logger.info(
f"Document '{filename}' created successfully with type '{ f"Document '{filename}' created successfully with type '{document_type}'."
document_type}'."
) )
else: else:

View file

@ -8,4 +8,4 @@ from .models import Document
class DocumentAdmin(ModelAdmin): class DocumentAdmin(ModelAdmin):
model = Document model = Document
search_fields = ["id", "name", "document_type"] search_fields = ["id", "name", "document_type"]
list_display = ["id", "name", "document_type"] list_display = ["id", "name", "document_type", "date_uploaded"]

View file

@ -51,7 +51,7 @@ class DocumentListView(generics.ListAPIView):
http_method_names = ["get"] http_method_names = ["get"]
serializer_class = DocumentSerializer serializer_class = DocumentSerializer
queryset = Document.objects.all() queryset = Document.objects.all().order_by("-date_uploaded")
pagination_class = PageNumberPagination pagination_class = PageNumberPagination
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]

View file

@ -10,7 +10,7 @@
{% trans 'Please visit the site to check your request:' %} {% trans 'Please visit the site to check your request:' %}
{{ url|safe }} {{ url|safe }}
{% trans 'For hardcopy requests, please proceed to the USTP office to avail of your requested copies:' %} {% trans 'For hardcopy requests, please proceed to the USTP office to avail of your requested copies. Hardcopy requests are valid only within 1 month of requesting.' %}
{% endblock %} {% endblock %}
{% block html_body %} {% block html_body %}
@ -27,6 +27,6 @@
</p> </p>
<p> <p>
{% trans 'For hardcopy requests, please proceed to the USTP office to avail of your requested copies:' %} {% trans 'For hardcopy requests, please proceed to the USTP office to avail of your requested copies. Hardcopy requests are valid only within 1 month of requesting.' %}
</p> </p>
{% endblock %} {% endblock %}