def findSupplier(request): numberOfAssignments = len(request.previously_assigned.split(";")) - 1 if (request.previously_assigned is not None and numberOfAssignments >= FAIL_LIMIT ): print "[%s] Request %s (%s) is failed , last_assignment : %s" % (timestamp(), unicode(request), request.date_requested, request.previously_assigned) request.status = REQUEST_STATUS_CHOICES[5][0] #"failed" request.save(); sendReminderEmailToRequester(request) return try: supplierProfile = PaperShareProfile.objects.filter(is_supplier=True,research_field=request.paper.research_field).filter(~Q(user=request.requester)).order_by('last_assignment')[0] except IndexError, django.db.models.base.DoesNotExist: print "[%s] !!!!! Field %s doesn't have any supplier [%s]" % (timestamp(), request.paper.research_field, request) return
def uploadPaper(request): #handle form submit if request.method == 'POST' : form = PaperUploadForm(request.POST, request.FILES) context = RequestContext(request) context.update(get_my_stats(request.user)) if request.POST.get("buttonSupply") is not None: if form.is_valid(): uploaded_url = handle_uploaded_file(request.FILES['file']) form.save(uploaded_url) paperRequest = Request.objects.get(id=form.cleaned_data['request_id']) context.update({'uploaded_url' : uploaded_url, 'request' : paperRequest}) if paperRequest.supplier is None : """ Neu nhu bai bao chua duoc assign cho 1 supplier thi set supplier do chinh la user hien tai. """ paperRequest.supplier = request.user context.update({'realSupplier' : request.user}) elif paperRequest.supplier.id != request.user.id: """ Process for other supplier ", paperRequest.supplier Neu nguoi cung cap bai bao khong phai la nguoi duoc assign thi tinh diem cho nguoi da cung cap. """ context.update({'realSupplier' : request.user}) sendmailFromTemplate(toAddr=paperRequest.supplier.email, subject=_(u"Some one has provided a paper request that was assigned to you"), template_name="papershare/request_processed_email.html", context=context) if paperRequest.previously_supplied is None: paperRequest.previously_supplied = "" paperRequest.previously_supplied += ';' + request.user.username paperRequest.date_supplied = datetime.datetime.now() paperRequest.save() sendmailFromTemplate(fromAddr=request.user.email, toAddr=paperRequest.requester.email, subject=_(u"Good news ! your paper request has been processed"), template_name="papershare/request_processed_email.html", context=context) return render_to_response('papershare/upload_complete.html',context) else: context.update({'form':form}) return render_to_response('papershare/upload_error.html',context) elif request.POST.get("buttonFail") is not None: #report fail by admin requestId = request.POST.get('request_id') if requestId is not None and requestId.isdigit(): paperRequest = Request.objects.get(id=int(requestId)) paperRequest.supplier = None paperRequest.status = REQ_STA_FAILED #failed. paperRequest.save() sendReminderEmailToRequester(paperRequest) message = _(u"Yêu cầu %d da duoc chuyen vao trash pool" % paperRequest.id) context.update({'message' : message}) return render_to_response('ncs/simple_message.html', context) elif request.POST.get("buttonAssign") is not None: # Chuyển bài báo cho 1 supplier khác """ Khi admin chuyen bai bao cho mot thanh vien khac thi: - Neu user dc chuyen toi chua la supplier thi set thanh supplier va thong bao cho user biet. - Thong bao cho supplier cu cua bai bao do duoc biet. """ request_id = request.POST.get("request_id") paperRequest = Request.objects.get(id=int(request_id)) requester = paperRequest.requester oldSupplier = paperRequest.supplier newSupplier = User() suggestedNewSupplierUsername = request.POST.get("username") try: if suggestedNewSupplierUsername == "": newSupplier = random_new_supplier(requester, oldSupplier) else: newSupplier = confirmed_suggested_new_supplier(suggestedNewSupplierUsername, requester, oldSupplier) except NoSuppliersInResearchField , field: return render_to_response("ncs/simple_message.html", {"message":_(u"Không có người cung cấp trong ngành ") + field.parameter}) except User.DoesNotExist: return render_to_response("ncs/simple_message.html", {"message":_(u"Không tìm thấy thành viên ") + suggestedNewSupplierUsername}) except UserIsNotSupplier: return render_to_response("ncs/simple_message.html", {"message":_(u"Không tìm thấy người cung cấp ") + suggestedNewSupplierUsername})