From 8b2ebe241504b5fd079c9bc2f27ced1658cf005d Mon Sep 17 00:00:00 2001 From: Markos Gogoulos Date: Mon, 29 Dec 2025 20:40:48 +0200 Subject: [PATCH] wtv --- uploader/views.py | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/uploader/views.py b/uploader/views.py index a71a5c15..8656742f 100644 --- a/uploader/views.py +++ b/uploader/views.py @@ -66,6 +66,47 @@ class FineUploaderView(generic.FormView): with open(media_file, "rb") as f: myfile = File(f) new = Media.objects.create(media_file=myfile, user=self.request.user, title=self.upload.original_filename) + + # Handle LTI category assignment if publish_to_category parameter is provided + publish_to_category = self.request.GET.get('publish_to_category', '').strip() + print("=" * 80) + print("FINE UPLOADER - CATEGORY ASSIGNMENT") + print(f"publish_to_category parameter: '{publish_to_category}'") + print(f"User: {self.request.user.username}") + print(f"Media created: {new.title} (friendly_token={new.friendly_token})") + + if publish_to_category: + from files.models import Category + + try: + category = Category.objects.get(uid=publish_to_category) + print(f"Category found: {category.title} (uid={category.uid})") + + # Check if user has upload access to this category + has_access = self.request.user.has_member_access_to_category(category) + print(f"User has member access to category: {has_access}") + + if has_access: + print(f"Attempting to add category '{category.title}' (id={category.id}) to media...") + new.category.add(category) + print("media.category.add() completed") + # Verify it was added + new.refresh_from_db() + current_categories = list(new.category.all()) + print(f"Media categories after add: {[c.title for c in current_categories]}") + if category in current_categories: + print(f"SUCCESS: Added media '{new.title}' to category '{category.title}'") + else: + print("WARNING: Category add was called but category not in media.category.all()") + else: + print(f"SKIPPED: User does not have member access to category '{category.title}'") + except Category.DoesNotExist: + # Category doesn't exist, silently ignore + print(f"ERROR: Category with uid='{publish_to_category}' does not exist") + else: + print("No publish_to_category parameter provided") + print("=" * 80) + rm_file(media_file) shutil.rmtree(os.path.join(settings.MEDIA_ROOT, self.upload.file_path)) return self.make_response({"success": True, "media_url": new.get_absolute_url()})