Don't pass an user object to the task, pass an user id instead

This commit is contained in:
Roberto Rosario
2014-10-03 23:54:14 -04:00
parent a754267ca0
commit 92b35b57ae
2 changed files with 13 additions and 2 deletions

View File

@@ -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)

View File

@@ -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'),