Ejemplo n.º 1
0
def submit(request):
    if request.method == 'POST':
        form = SubmitForm(request.POST, request.FILES)
        if not form.is_valid():
            message = 'Form was invalid'
        else:
            message = 'Form was valid'
            e = Experiment(name=request.POST['experiment'],start_date = timezone.now())
            e.save()
            handle_file_upload(request.FILES['vcf_file'],UPLOAD_ROOT+str(e.id)+'.vcf')
            handle_file_upload(request.FILES['ped_file'],UPLOAD_ROOT+str(e.id)+'.ped')
        return render(request, 'tests/submit.html', {'message':message })
    else:
        form = SubmitForm()
    return render(request, 'tests/submit.html', { 'form': form })
Ejemplo n.º 2
0
def new(request):
    if request.method=='POST':
        form = NewExperimentForm(request.POST, request.FILES)
        if form.is_valid():
            e = Experiment(name=request.POST['experiment'],start_date = timezone.now())
            e.save()
            print '** Saved Experiment %s, id: %s **' % (str(e),e.id,)
            handle_file_upload(request.FILES['vcf_file'],UPLOAD_ROOT+str(e.id)+'.vcf')
            print '** Uploaded File %s **' % request.FILES['vcf_file'].name
            handle_file_upload(request.FILES['ped_file'],UPLOAD_ROOT+str(e.id)+'.ped')
            print '** Uploaded File %s **' % request.FILES['ped_file'].name
            return redirect('/experiment/'+str(e.id)+'/create/')
        else:
            return HttpResponse("The form is invalid")
    else:
        form = NewExperimentForm()
        return render(request,'experiment/new.html',{'form':form})
Ejemplo n.º 3
0
def new(request):

    exp = Experiment()
    user = request.user
    userprofile = UserProfile.objects.get(user=user)
    # query the database for all applications
    return render_to_response('experiment/new_exp_form.html',
                              {'userprofile': userprofile},
                              context_instance=RequestContext(request))
Ejemplo n.º 4
0
Archivo: views.py Proyecto: qdulab/OEMS
def create_experiment(request, lesson_id):
    name = request.POST.get("experiment_name", None)
    username = request.user.username
    teacher = Teacher.objects.get(username=username)
    lesson_list = Lesson.objects.filter(teacher=teacher)
    if name:
        content = request.POST.get("experiment_content", None)
        deadline = request.POST.get("deadline", None)
        remark = request.POST.get("remark", None)
        #        weight = request.POST.get("weight", None)
        try:
            lesson = Lesson.objects.get(id=lesson_id, teacher=teacher)
        except Lesson.DoesNotExist:
            return render(request, "base.html")
        experiment = Experiment(name=name, content=content, deadline=deadline, remark=remark, lesson=lesson)
        experiment.save()
        return redirect("create_experiment_success")
    else:
        return render(request, "teacher/create_experiment.html", {"lesson_list": lesson_list})
Ejemplo n.º 5
0
def login():

    form = SignupForm()
    if request.method == 'GET':
        return render_template('login.html', form=form)
    elif request.method == 'POST':
        if form.validate_on_submit():
            experiment = Experiment(form.pseudonim.data, form.sex.data == "woman", form.wiek.data)
            db_session.add(experiment)
            db_session.commit()

            return redirect("experiment/{}".format(experiment.id))
        else:
            return "form not validated"
    else:
        return "Wrong request"
Ejemplo n.º 6
0
def init_db():
    if True:
        meta = MetaData(engine)
        meta.reflect()
        meta.drop_all()

    # import all modules here that might define models so that
    # they will be registered properly on the metadata.  Otherwise
    # you will have to import them first before calling init_db()
    import experiment.models
    Base.metadata.create_all(bind=engine)

    from experiment.models import Experiment
    from experiment.models import Config

    config = Config(True, 0, 10, 3)
    e = Experiment(config)
    db_session.add(e)
    db_session.commit()
Ejemplo n.º 7
0
def create_experiment(request):

    # define default response
    response = {"err": "", "data": ""}

    # initialize a counter for apps
    i = 0
    j = 0

    # initialize filename
    filenames = {}
    filedirs = {}

    if request.POST:

        period = request.POST["duration"]
        unit = request.POST["dur_unit"]

        if unit == "W":
            period = int(period) * 7
        elif unit == "M":
            period = int(period) * 30

            # Save Experiment
        exp = Experiment(
            name=request.POST["expname"], description=request.POST["expdesc"], tag=request.POST["exptag"], period=period
        )
        exp.save()

        # upload IRB Letter
        file_type = request.FILES["irbletter"].content_type.split("/")[1]

        # save IRB Letter
        irbname = os.path.join(RAW_IRB_ROOT, str(exp.irb) + "." + file_type)
        irbdir = os.path.dirname(irbname)

        try:
            os.mkdir(irbdir)
        except OSError, e:
            if e.errno != errno.EEXIST:
                response["err"] = {"no": "err1", "msg": "cannot create dir, failed upload"}
                raise

                # get file handle
        fileHandle = open(irbname, "wb+")
        for chunk in request.FILES["irbletter"].chunks():
            # write it out
            fileHandle.write(chunk)
            # close file handle
        fileHandle.close()

        response["data"] = "done"

        # add user to the experiment
        exp.user.add(request.user)

        devs = Device.objects.all()
        appnames = request.POST.getlist("appname")
        appdescs = request.POST.getlist("appdesc")
        apptypes = request.POST.getlist("apptype")

        # add the devices to the experiment
        for dev in devs:
            exp.dev.add(dev)

            # add the apps to the experiment
        for app in appnames:

            application = Application(
                user=request.user,
                name=app,
                # package_name = params['package_name'],
                # intent_name  = params['intent_name'],
                description=appdescs[i],
                type=apptypes[i],
                active="E",
            )

            # version      = params["version"],
            application.save()
            exp.app.add(application)
            i = i + 1

            # create dirs for Applications
            filename = os.path.join(RAW_APP_ROOT, str(application.id) + ".apk")
            filedir = os.path.dirname(filename)
            filenames[app] = filename
            filedirs[app] = filedir

        exp.save()

        exp_profile = ExperimentProfile(experiment=exp)
        exp_profile.starttime = datetime.now()
        exp_profile.endtime = datetime.now()
        exp_profile.save()

        # upload experiment
        for afile in request.FILES.getlist("upload"):
            # create folder for user if it doesn`t exist
            try:
                os.mkdir(filedirs[appnames[j]])
            except OSError, e:
                if e.errno != errno.EEXIST:
                    response["err"] = {"no": "err1", "msg": "cannot create dir, failed upload"}
                    raise

                    # get file handle
            fileHandle = open(filenames[appnames[j]], "wb+")
            # write it out
            for chunk in afile.chunks():
                fileHandle.write(chunk)
                # close file handle
            fileHandle.close()
            j = j + 1
            response["data"] = "done"
Ejemplo n.º 8
0
def create_experiment(request):

    # define default response
    response = {"err": "", "data": ""}

    #initialize a counter for apps
    i = 0
    j = 0

    #initialize filename
    filenames = {}
    filedirs = {}

    if request.POST:

        period = request.POST['duration']
        unit = request.POST['dur_unit']

        if unit == 'W':
            period = int(period) * 7
        elif unit == 'M':
            period = int(period) * 30

        # Save Experiment
        exp = Experiment(
            name=request.POST['expname'],
            description=request.POST['expdesc'],
            tag=request.POST['exptag'],
            period=period,
        )
        exp.save()

        #upload IRB Letter
        file_type = request.FILES['irbletter'].content_type.split('/')[1]

        #save IRB Letter
        irbname = os.path.join(RAW_IRB_ROOT, str(exp.irb) + '.' + file_type)
        irbdir = os.path.dirname(irbname)

        try:
            os.mkdir(irbdir)
        except OSError, e:
            if e.errno != errno.EEXIST:
                response['err'] = {
                    'no': 'err1',
                    'msg': 'cannot create dir, failed upload'
                }
                raise

        # get file handle
        fileHandle = open(irbname, 'wb+')
        for chunk in request.FILES['irbletter'].chunks():
            # write it out
            fileHandle.write(chunk)
        # close file handle
        fileHandle.close()

        response['data'] = "done"

        #add user to the experiment
        exp.user.add(request.user)

        devs = Device.objects.all()
        appnames = request.POST.getlist('appname')
        appdescs = request.POST.getlist('appdesc')
        apptypes = request.POST.getlist('apptype')

        #add the devices to the experiment
        for dev in devs:
            exp.dev.add(dev)

        #add the apps to the experiment
        for app in appnames:

            application = Application(
                user=request.user,
                name=app,
                #package_name = params['package_name'],
                #intent_name  = params['intent_name'],
                description=appdescs[i],
                type=apptypes[i],
                active="E")

            #version      = params["version"],
            application.save()
            exp.app.add(application)
            i = i + 1

            #create dirs for Applications
            filename = os.path.join(RAW_APP_ROOT, str(application.id) + ".apk")
            filedir = os.path.dirname(filename)
            filenames[app] = filename
            filedirs[app] = filedir

        exp.save()

        exp_profile = ExperimentProfile(experiment=exp)
        exp_profile.starttime = datetime.now()
        exp_profile.endtime = datetime.now()
        exp_profile.save()

        #upload experiment
        for afile in request.FILES.getlist('upload'):
            # create folder for user if it doesn`t exist
            try:
                os.mkdir(filedirs[appnames[j]])
            except OSError, e:
                if e.errno != errno.EEXIST:
                    response['err'] = {
                        'no': 'err1',
                        'msg': 'cannot create dir, failed upload'
                    }
                    raise

            # get file handle
            fileHandle = open(filenames[appnames[j]], 'wb+')
            # write it out
            for chunk in afile.chunks():
                fileHandle.write(chunk)
            # close file handle
            fileHandle.close()
            j = j + 1
            response['data'] = "done"
Ejemplo n.º 9
0
def get_experiments():
    return Experiment.get_all_list()
Ejemplo n.º 10
0
def get_experiment(experiment_name):
    '''
    获取实验
    '''
    return Experiment.get(experiment_name)