diff --git a/Dockerfile b/Dockerfile index c7acca14..c1a0e49c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,12 +19,10 @@ RUN npm run webpack FROM docker.io/python:3.12-slim-bookworm MAINTAINER Computer Science House -RUN mkdir /opt/conditional +WORKDIR /opt/conditional COPY requirements.txt /opt/conditional -WORKDIR /opt/conditional - RUN apt-get -yq update && \ apt-get -yq install libsasl2-dev libldap2-dev libldap-common libssl-dev gcc g++ make && \ pip install -r requirements.txt && \ @@ -35,6 +33,7 @@ ENV PORT=${PORT} EXPOSE ${PORT} COPY conditional /opt/conditional/conditional +COPY migrations /opt/conditional/migrations COPY *.py package.json /opt/conditional/ COPY --from=build-frontend /opt/conditional/conditional/static/ /opt/conditional/conditional/static/ diff --git a/conditional/blueprints/dashboard.py b/conditional/blueprints/dashboard.py index 786b9a9d..44a88037 100644 --- a/conditional/blueprints/dashboard.py +++ b/conditional/blueprints/dashboard.py @@ -92,7 +92,7 @@ def display_dashboard(user_dict=None): "time_spent": p.time_spent, "skills": p.skills, "desc": p.description, - "links": list(filter(None, p.links.split("\n"))), + "links": [] if p.links is None else list(filter(None, p.links.split("\n"))), "status": p.status, } for p in get_project_list().filter(MajorProject.uid == uid) diff --git a/conditional/blueprints/major_project_submission.py b/conditional/blueprints/major_project_submission.py index ae89c073..2fc47193 100644 --- a/conditional/blueprints/major_project_submission.py +++ b/conditional/blueprints/major_project_submission.py @@ -53,7 +53,7 @@ def display_major_project(user_dict=None): "time_spent": p.time_spent, "skills": p.skills, "desc": p.description, - "links": list(filter(None, p.links.split("\n"))), + "links": [] if p.links is None else list(filter(None, p.links.split("\n"))), "status": p.status, "is_owner": bool(user_dict["username"] == p.uid), "files": list_files_in_folder(bucket, f"{p.id}/") @@ -65,6 +65,7 @@ def display_major_project(user_dict=None): return render_template( "major_project_submission.html", major_projects=major_projects, + bucket_name=bucket, major_projects_len=len(major_projects), username=user_dict["username"]) @@ -156,12 +157,17 @@ def submit_major_project(user_dict=None): for file in os.listdir(temp_dir): filepath = f"{temp_dir}/{file}" - s3.upload_file(filepath, 'major-project-media', f"{project.id}/{file}") + s3.upload_file(filepath, app.config['S3_BUCKET_ID'], f"{project.id}/{file}", ExtraArgs={ + 'ExpectedBucketOwner': app.config['S3_BUCKET_ID'] + }) os.remove(filepath) # Delete the temp directory once all the files have been stored in S3 os.rmdir(temp_dir) + else: + log.error("Could not create temp directory for uploading files") + return jsonify({"success": False}), 500 # Send the slack ping only after we know that the data was properly saved to the DB diff --git a/conditional/templates/major_project_submission.html b/conditional/templates/major_project_submission.html index ba9bcf95..aa00ffa0 100644 --- a/conditional/templates/major_project_submission.html +++ b/conditional/templates/major_project_submission.html @@ -326,7 +326,7 @@
Images
{% for f in p['files'] %} User submitted image for the project {% endfor %} {% endif %} @@ -342,4 +342,4 @@
Images
{% endif %} -{% endblock %} \ No newline at end of file +{% endblock %}