def upload_file(request): header_title = ["文件管理", "上传文件"] title = header_title[-1] if request.method == "POST": form = UploadFileForm(request.POST, request.FILES) if form.is_valid(): is_shared = request.POST.get('is_shared') description = request.POST.get('description') filename = form.cleaned_data['file_name'] email = request.session.get('email') user_obj = CustomUser.objects.get(email=email) files = Files() files.file_name = filename files.description = description files.user = user_obj size, md5 = handle_uploaded_file(request.FILES['file_name'], filename) files.md5 = md5 files.file_size = size # if # files.is_shared if is_shared: files.is_shared = True files.save() return redirect('file_list') else: form = UploadFileForm() return render(request, 'files/upload.html', locals())
def post(self, request, task_id): context = self.get_context_data() task = get_object_or_404(Task, pk=task_id) if request.user.is_authenticated and CourseMember.is_student_of( request.user.pk, task.course.pk): try: submission = Submission.objects.get( task__pk=task_id, submitter__pk=request.user.pk) form = UploadFileForm(files=request.FILES) if form.is_valid(): file = form.save() submission.file = file submission.save() messages.info(request, "Successfully submit homework") return redirect( reverse("courses:task_detail", args=[task_id])) messages.info(request, "Fail to validate form.") context['form'] = form print(form.errors) return render(request, self.template_name, context=context) except Submission.DoesNotExist: # Normal case form = UploadFileForm(files=request.FILES) if form.is_valid(): file = form.save() submission = Submission(submitter=request.user, task=task, file=file) submission.save() messages.info(request, "Successfully submit homework") return redirect( reverse("courses:task_detail", args=[task_id])) messages.info(request, "Fail to validate form.") context['form'] = form print(form.errors) return render(request, self.template_name, context=context) except Exception as e: # More than one copy print(e) messages.error("More than one copy for {} in {}".format( request.user.pk, task_id)) return redirect(reverse("courses:task_detail", args=[task_id])) return redirect(reverse("courses:task_detail", args=[task_id]))
def submit_new_file(request, slug): if request.method != 'POST': raise Http403 pofile = get_object_or_404(POFile, slug=slug) back = reverse('commit_queue') team = get_object_or_404(Team, language=pofile.language.pk, project=pofile.release.project.pk) if not team.can_commit(request.user): messages.warning(request, message=_("You are not authorized to perform this action.")) return HttpResponseRedirect(back) if pofile.submits.all_pending(): s = pofile.submits.get_pending() if s.locked: messages.warning(request, message=_("This file is being processed. It can't be modified.")) return back s.enabled = False s.save() res = {} res['back']=back res['uploadfile']=pofile form = UploadFileForm(request.POST, request.FILES) if form.is_valid(): try: logger.debug(request.FILES) # first we add the files to the queue submits = filehandler.handle_uploaded_file(request.FILES['file'], pofile.release, pofile.language, request.user, form.cleaned_data['comment'], pofile) messages.info(request, message=_("Your file was uploaded and added to the submission queue.")) return HttpResponseRedirect(back) except Exception, e: s.enabled = True s.save() logger.error(e) res['message']=e.message.split("$$") return render_to_response('files/upload_failed.html', res, context_instance = RequestContext(request))
def post(self, request): upload_file_form = UploadFileForm(request.POST, request.FILES) patient_id = request.POST.get('patient_id') if upload_file_form.is_valid(): upload_file = upload_file_form.save() if upload_file.name == '': file_name = os.path.basename(upload_file.upload_file.name) upload_file.name = file_name patient = Patient.objects.get(id=patient_id) upload_file.patient = [patient] upload_file.save() return HttpResponseRedirect( reverse('patient_detail', kwargs={'patient_id': patient_id})) else: return render( request, 'error_message.html', { "title": "上传文件失败", "errors": upload_file_form.errors, "patient_id": patient_id, "url": request.META['HTTP_REFERER'], })
def upload(request, release, language): res = {} if request.method == "POST": res['back'] = reverse('list_files', kwargs={ 'release': release, 'language': language}) r = get_object_or_404(Release, slug=release) l = get_object_or_404(Language, code=language) form = UploadFileForm(request.POST, request.FILES) res['form'] = form if form.is_valid(): try: logger.debug(request.FILES) # first we add the files to the queue submits = filehandler.handle_uploaded_file(request.FILES['file'], r, l, request.user, form.cleaned_data['comment']) # then we check if it is possible to commit now team = Team.objects.get(project=r.project,language=l) if r.project.auto_commit_enabled and team.submittype == 1 and team.can_commit(request.user): if do_commit(request, submits, request.user, r.project.repo_user, r.project.get_repo_pwd()): return JSONResponse({'success': True}) return JSONResponse({'success': False}) else: messages.success(request, _("Your file was uploaded and added to the submission queue.")) return JSONResponse({'success': True}) except Exception, e: logger.error(e) msg = _('<b>Please, fix the following errors and upload the file again:</b><br/>%s') % "<br/>".join(str(e).split("$$")) messages.warning(request, msg) return JSONResponse({'success': False}) # res['message']=e.message.split("$$") # return render_to_response('files/upload_failed.html', # res, # context_instance = RequestContext(request)) #res.update(get_file_list(request, None, release, language)) messages.error(request, _('Complete the required information and try again.')) return JSONResponse({'success': False})