Example #1
0
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())
Example #2
0
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))
Example #3
0
 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'],
             })
Example #4
0
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})
Example #5
0
    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]))
Example #6
0
 def get(self, request, task_id):
     task = get_object_or_404(Task, pk=task_id)
     if request.user.is_authenticated and CourseMember.is_member_of(
             request.user.pk, task.course.pk):
         # User is member
         privilege = CourseMember.get_highest_course_privilege(
             request.user.pk, task.course.pk)
         context = self.get_context_data()
         context['task'] = task
         if privilege == 3:
             # One and only one
             try:
                 submission = Submission.objects.get(
                     task__pk=task_id, submitter__pk=request.user.pk)
                 context['submission'] = submission
             except Submission.DoesNotExist:
                 # submission = None
                 submission = Submission(submitter=request.user, task=task)
                 submission.save()
             except Exception as e:
                 # More than one copy
                 print(e)
                 # messages.error("More than one copy for {} in {}".format(request.user.pk, task_id))
                 raise e
             finally:
                 context['submission'] = submission
                 try:
                     file = submission.file
                     print(file.name)
                 except:
                     context['to_submit'] = True
                     context['form'] = UploadFileForm()
         else:
             # link to submission list
             context["is_teacher"] = True
             # context['']
         return render(request, self.template_name, context=context)
     return return_error(request, USER_NOT_AUTHENTICATED)