From 149e8689c478d5dd3f8e468de8b9f1577fc531a4 Mon Sep 17 00:00:00 2001 From: Aaron <Aaron8.jones@live.uwe.ac.uk> Date: Sun, 30 Mar 2025 16:19:21 +0100 Subject: [PATCH] AI Engineer bug when viewing / deleting records fixed. new container!!! --- ActualProjectCode/DjangoProject/core/admin.py | 3 +-- ActualProjectCode/DjangoProject/core/forms.py | 2 +- .../DjangoProject/core/models.py | 10 -------- ActualProjectCode/DjangoProject/core/views.py | 23 ++++++++++++++++- .../DjangoProject/docker-compose.yml | 9 ++++--- .../DjangoProject/{mlModels => }/main.py | 1 + .../DjangoProject/server/urls.py | 2 ++ .../templates/modelForms/deleteRecord.html | 18 +++++++++++++ .../templates/modelForms/interactionView.html | 25 +++++++++++++++++++ .../templates/modelForms/userUpload.html | 2 +- .../DjangoProject/templates/profile.html | 9 +++---- 11 files changed, 80 insertions(+), 24 deletions(-) rename ActualProjectCode/DjangoProject/{mlModels => }/main.py (95%) create mode 100644 ActualProjectCode/DjangoProject/templates/modelForms/deleteRecord.html create mode 100644 ActualProjectCode/DjangoProject/templates/modelForms/interactionView.html diff --git a/ActualProjectCode/DjangoProject/core/admin.py b/ActualProjectCode/DjangoProject/core/admin.py index 0a58da4..36a8a4e 100644 --- a/ActualProjectCode/DjangoProject/core/admin.py +++ b/ActualProjectCode/DjangoProject/core/admin.py @@ -5,12 +5,11 @@ from core import models from django.contrib import admin from django.contrib.auth.models import User -from .models import Profile, mlModel, Interaction, Billing, Record +from .models import Profile, mlModel, Billing, Record # Register the Profile model in the admin admin.site.register(Profile) admin.site.register(mlModel) -admin.site.register(Interaction) admin.site.register(Billing) admin.site.register(Record) diff --git a/ActualProjectCode/DjangoProject/core/forms.py b/ActualProjectCode/DjangoProject/core/forms.py index 603a1e4..156c5b3 100644 --- a/ActualProjectCode/DjangoProject/core/forms.py +++ b/ActualProjectCode/DjangoProject/core/forms.py @@ -11,7 +11,7 @@ class UserUploadForm(forms.ModelForm): username = forms.CharField(max_length=100, widget=forms.HiddenInput) class Meta: model = models.Record - fields = ['username', 'uploadedFile','chosenML'] + fields = ['username','uploadedFile','chosenML'] class UploadModelForm(forms.ModelForm): username = forms.CharField(max_length=100, widget=forms.HiddenInput) diff --git a/ActualProjectCode/DjangoProject/core/models.py b/ActualProjectCode/DjangoProject/core/models.py index 9885224..1a2acf4 100644 --- a/ActualProjectCode/DjangoProject/core/models.py +++ b/ActualProjectCode/DjangoProject/core/models.py @@ -16,15 +16,6 @@ class mlModel(models.Model): def __str__(self): return f"{self.username} NEW MODEL ID: {self.modelID} Path: {self.modelName}" -class Interaction(models.Model): - interactionID = models.AutoField(primary_key=True) - username = models.CharField(max_length=100, default="default") - date = models.DateTimeField() - interaction = models.CharField(max_length=1000) - - def __str__(self): - return self.interactionID - class Billing(models.Model): billingID = models.AutoField(primary_key=True) amount = models.FloatField() @@ -40,6 +31,5 @@ class Record(models.Model): chosenML = models.CharField(max_length=100, default="baseML") responseByML = models.CharField(max_length=100, default="PLACEHOLDER RESPONSE") # change to actual response by ML - def __str__(self): return f"{self.chosenML} Response to {self.username}" \ No newline at end of file diff --git a/ActualProjectCode/DjangoProject/core/views.py b/ActualProjectCode/DjangoProject/core/views.py index d79a8de..a66c35c 100644 --- a/ActualProjectCode/DjangoProject/core/views.py +++ b/ActualProjectCode/DjangoProject/core/views.py @@ -4,7 +4,8 @@ from django.contrib.auth.models import User from django.shortcuts import render, redirect from django.contrib.auth.decorators import login_required from django.http import HttpResponse -from .models import Profile, mlModel, Billing, Interaction, Record +import os +from .models import Profile, mlModel, Billing, Record from .forms import UserLoginForm, UserUploadForm, UploadModelForm, GenerateBillingsForm, UpdateUser @@ -94,6 +95,24 @@ def updateUsers(request, id): context = {'form': form} return render(request, 'modelForms/updateUsers.html', context) +def interactionView(request): + interactions = Record.objects.all().values() + context = {} + context = {'interactions': interactions} + return render(request, 'modelForms/interactionView.html', context) + +##### DELETION SECTIONS + +def deleteRecord(request, id): + record = Record.objects.get(id=id) + if request.method == 'POST': + record.delete() + # figure out how to delete file in records directory at same time. + return redirect('interactionView') + context = {'record': record} + return render(request, 'modelForms/deleteRecord.html', context) + + def deleteUsers(request, id): user = Profile.objects.get(user_id=id) user2 = User.objects.get(id=id) @@ -106,6 +125,8 @@ def deleteUsers(request, id): context = {'user': user} return render(request, 'modelForms/deleteUsers.html', context) +##### LOGOUT LOGIN STUFF + def logout_view(request): logout(request) return redirect('home') # Replace 'home' with the URL name for your homepage diff --git a/ActualProjectCode/DjangoProject/docker-compose.yml b/ActualProjectCode/DjangoProject/docker-compose.yml index 6bab324..9934bbd 100644 --- a/ActualProjectCode/DjangoProject/docker-compose.yml +++ b/ActualProjectCode/DjangoProject/docker-compose.yml @@ -34,9 +34,12 @@ services: # working on mlservice external container - idk how. -# mlService: -# image: mlService - + mlService: + build: + context: . + image: mlservice + command: > + sh -c 'python main.py' volumes: diff --git a/ActualProjectCode/DjangoProject/mlModels/main.py b/ActualProjectCode/DjangoProject/main.py similarity index 95% rename from ActualProjectCode/DjangoProject/mlModels/main.py rename to ActualProjectCode/DjangoProject/main.py index ce14de2..e1d3ad6 100644 --- a/ActualProjectCode/DjangoProject/mlModels/main.py +++ b/ActualProjectCode/DjangoProject/main.py @@ -4,6 +4,7 @@ # +print("Hello!") # receive form from main website diff --git a/ActualProjectCode/DjangoProject/server/urls.py b/ActualProjectCode/DjangoProject/server/urls.py index 30973c4..bc9a78f 100644 --- a/ActualProjectCode/DjangoProject/server/urls.py +++ b/ActualProjectCode/DjangoProject/server/urls.py @@ -41,5 +41,7 @@ urlpatterns = [ path('modelForms/manageUsers/', views.manageUsers, name="manageUsers"), path('modelForms/updateUsers/<str:id>/', views.updateUsers, name="updateUsers"), path('modelForms/deleteUsers/<str:id>/', views.deleteUsers, name="deleteUsers"), + path('modelForms/deleteRecord/<str:id>/', views.deleteRecord, name="deleteRecord"), + path('modelForms/interactionView/', views.interactionView, name="interactionView"), ] \ No newline at end of file diff --git a/ActualProjectCode/DjangoProject/templates/modelForms/deleteRecord.html b/ActualProjectCode/DjangoProject/templates/modelForms/deleteRecord.html new file mode 100644 index 0000000..9dcaffb --- /dev/null +++ b/ActualProjectCode/DjangoProject/templates/modelForms/deleteRecord.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html> +<head> + +</head> +<body> + + <p> Are you sure you want to delete this record? </p> + +<form action="{% url 'deleteRecord' record.id %}" method="POST"> + {% csrf_token %} + <p><a href="{% url 'interactionView' %}">Go Back</a></p> + <input type="submit" name="confirm"> + +</form> + +</body> +</html> \ No newline at end of file diff --git a/ActualProjectCode/DjangoProject/templates/modelForms/interactionView.html b/ActualProjectCode/DjangoProject/templates/modelForms/interactionView.html new file mode 100644 index 0000000..2d1fd96 --- /dev/null +++ b/ActualProjectCode/DjangoProject/templates/modelForms/interactionView.html @@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html> +<head> + +</head> +<body> + <p><a href="{% url 'profile' %}">Return to profile</a></p> + <br> + + <!-- for i in Records --> + + {% for record in interactions %} + + <p> Record ID: {{ record.id }}</p> + <p> Name: {{ record.username }} </p> + <p> File Path: {{ record.uploadedFile }} </p> + <p> ML Model Selected: {{ record.chosenML }} </p> + <p> Response: {{ record.responseByML }} </p> + <p><a href="{% url 'deleteRecord' record.id %}">Delete Record</a></p> + <h1>------------------------------------</h1> + + {% endfor %} + +</body> +</html> \ No newline at end of file diff --git a/ActualProjectCode/DjangoProject/templates/modelForms/userUpload.html b/ActualProjectCode/DjangoProject/templates/modelForms/userUpload.html index c87103c..e680805 100644 --- a/ActualProjectCode/DjangoProject/templates/modelForms/userUpload.html +++ b/ActualProjectCode/DjangoProject/templates/modelForms/userUpload.html @@ -5,7 +5,7 @@ </head> <body> - <form action="" method="post" enctype="multipart/form-data"> + <form action="" method="POST" enctype="multipart/form-data"> {% csrf_token %} {{ form.as_p }} diff --git a/ActualProjectCode/DjangoProject/templates/profile.html b/ActualProjectCode/DjangoProject/templates/profile.html index 6c5a34e..044041a 100644 --- a/ActualProjectCode/DjangoProject/templates/profile.html +++ b/ActualProjectCode/DjangoProject/templates/profile.html @@ -17,8 +17,8 @@ <h1>Upload new ML Model</h1> <h2><a href="{% url 'mlUpload' %}">Upload</a></h2> <br> - <h1>Access Records</h1> - <h2><a href="">All Records</a></h2> <!-- TO DO --> + <h1>Access ML Interactions</h1> + <h2><a href="{% url 'interactionView' %}">All Interactions</a></h2> <!-- TO DO --> @@ -35,12 +35,9 @@ {% elif user.profile.role == 'admin' %} <!-- Admin Dashboard --> <h2>Admin Page</h2> <p>View all Activity</p> - - <!-- for each record in record db --> - <!-- display --> <p><a href="{% url 'manageUsers' %}">Manage Users<a></a></p> - <!-- for each user in profile db: --> + <p><a href=""> View all Activity </a></p> -- GitLab