diff --git a/mayan/apps/sources/tasks.py b/mayan/apps/sources/tasks.py index d5b016e3b7..acf734f76e 100644 --- a/mayan/apps/sources/tasks.py +++ b/mayan/apps/sources/tasks.py @@ -1,5 +1,6 @@ import logging +from django.contrib.auth.models import User from django.core.files import File from mayan.celery import app @@ -13,7 +14,7 @@ logger = logging.getLogger(__name__) @app.task -def task_upload_document(source_id, file_path, filename=None, use_file_name=False, document_type_id=None, expand=False, metadata_dict_list=None, user=None, document_id=None, new_version_data=None, command_line=False, description=None): +def task_upload_document(source_id, file_path, filename=None, use_file_name=False, document_type_id=None, expand=False, metadata_dict_list=None, user_id=None, document_id=None, new_version_data=None, command_line=False, description=None): source = Source.objects.get_subclass(pk=source_id) if document_type_id: @@ -26,6 +27,11 @@ def task_upload_document(source_id, file_path, filename=None, use_file_name=Fals else: document = None + if user_id: + user = User.objects.get(pk=user_id) + else: + user = None + with File(file=open(file_path, mode='rb')) as file_object: #try: result = source.upload_file(file_object, filename, use_file_name, document_type, expand, metadata_dict_list, user, document, new_version_data, command_line, description) diff --git a/mayan/apps/sources/views.py b/mayan/apps/sources/views.py index 5c86cbe212..99cb9bb600 100644 --- a/mayan/apps/sources/views.py +++ b/mayan/apps/sources/views.py @@ -198,6 +198,11 @@ def upload_interactive(request, source_id=None, document_pk=None): if source.delete_after_upload: staging_file.delete() + if not request.user.is_anonymous(): + user_id = request.user.pk + else: + user_id = None + task_upload_document.apply_async(kwargs=dict( source_id=source.pk, file_path=temporary_file.name, filename=new_filename, @@ -205,7 +210,7 @@ def upload_interactive(request, source_id=None, document_pk=None): document_type_id=document_type_id, expand=expand, metadata_dict_list=decode_metadata_from_url(request.GET), - user=request.user, + user_id=user_id, document_id=document_id, new_version_data=form.cleaned_data.get('new_version_data'), description=form.cleaned_data.get('description'),