Ejemplo n.º 1
0
def user_info(userid=None):
    if not userid:
        return render_template('error.html',message="Usuario no definido",recent=recent.get())
    user=User.query.filter(User.userid==userid).one()
    if not user:
        return render_template('error.html',message="Usuario existente",recent=recent.get())
    return render_template('user_info.html',user=user,recent=recent.get())
Ejemplo n.º 2
0
def user_delete(userid=None):
    if not userid:
        return render_template('error.html',message="Usuario no seleccionado",recent=recent.get())
    user=db_session.query(User).get(userid)
    if not user:
        return render_template('error.html',message="Usuario no encontrado",recent=recent.get())
    user.accepted=False
    db_session.add(user)
    db_session.commit()
    return redirect(url_for('.dashboard'))
Ejemplo n.º 3
0
def experiment_info(expid=None):
    if not expid:
        expid = request.cookies.get('project')
        if not expid:
            return render_template('error.html',message="Proyecto no seleccionado",recent=recent.get())
        expid=int(expid)
    exp=db_session.query(Experiment).get(expid)
    if not exp:
        return render_template('error.html',message="Experimento no definido",recent=recent.get())
    return render_template('experiment_info.html',exp=exp,recent=recent.get())
Ejemplo n.º 4
0
def experiment_live(expid=None):
    if not expid:
        expid = request.cookies.get('project')
        if not expid:
            return render_template('error.html',message="Proyecto no seleccionado",recent=recent.get())
        expid=int(expid)
    exp=db_session.query(Experiment).get(expid)
    filename=exp.name+".csv"
    keepcharacters = (' ','.','_')
    filename=    "".join(c for c in filename if c.isalnum() or c in
        keepcharacters).rstrip()
    if not exp:
        return render_template('error.html',message="Experimento no definido",recent=recent.get())
    return render_template('experiment_live.html',exp=exp,recent=recent.get(),fs=filename)
Ejemplo n.º 5
0
def dashboard():
    expid = request.cookies.get('project')
    if expid:
        exp=db_session.query(Experiment).get(expid)
    else:
        exp=None
    return render_template('adminindex.html',exp=exp,recent=recent.get())
Ejemplo n.º 6
0
def experiment_off(expid):
    exp=db_session.query(Experiment).get(expid)
    if not exp:
        return render_template('error.html',message="Experimento no definido",recent=recent.get())
    exp.status=False 
    db_session.add(exp)
    db_session.commit()
    return redirect(url_for('.experiment_info',expid=expid))
Ejemplo n.º 7
0
def user_invite_userid(userid=None):
    """Invite a user via email"""
    proj = request.cookies.get('project')
    if not proj:
        return render_template('error.html',message="Proyecto no seleccionado",recent=recent.get())
    try:
        user=User.query.get(userid)
    except:
        return render_template('error.html',message="Usuario in existente",recent=recent.get())
    proj = int(proj)
    if not user.accepted:
        return render_template('error.html',message="Usuario no activo",recent=recent.get())
    exps=[0 for exp in user.experiments if exp.id==proj]
    if len(exps)==0:
        add_users(proj,[user.id])
        return redirect(url_for('.user_info',userid=user.userid))
    return render_template('error.html',message="Usuario ya activo en ese experimento",recent=recent.get())
Ejemplo n.º 8
0
def user_reinvite(userid=None,expid=None):
    """Invite a user via email"""
    try:
        user=User.query.filter(User.userid==userid).one()
    except:
        return render_template('error.html',message="Usuario in existente",recent=recent.get())
    if not user.accepted:
        return render_template('error.html',message="Usuario no activo",recent=recent.get())
    exps=[0 for exp in user.experiments if exp.id==expid]
    if len(exps)>0:
        ans=db_session.query(ExperimentUser).get((user.id,expid))
        if ans.accepted:
            #msg= Message(proj.invitation.format(
            #    URL="/confirm/"+user.userid,
            #    URL_DEL="/delete/user/"+user.userid))
            return redirect(url_for('.user_info',userid=user.userid))
        else:
            return render_template('error.html',message=u"Usuario declino",recent=recent.get())
    else:
        return render_template('error.html',message=u"Usuario no está activo en  experimento",recent=recent.get())
Ejemplo n.º 9
0
def experiment_new():
    form=ExperimentF(request.form)
    if form.cancel.data:
        return redirect(url_for('dashboard'))
    if form.validate_on_submit():
        exp=Experiment()
        form.populate_obj(exp)
        db_session.add(exp)
        db_session.commit()
        return redirect(url_for('.experiment_info',expid=exp.id))
    else:
        return render_template('experiment_edit.html',form=form,type='create',recent=recent.get())
Ejemplo n.º 10
0
def experiment_delete(expid=None):
    if not expid:
        expid = request.cookies.get('project')
        if not expid:
            return render_template('error.html',message="Proyecto no seleccionado",recent=recent.get())
        return render_template('error.html',message="Proyecto no seleccionado",recent=recent.get())
    exp=db_session.query(Experiment).get(expid)
    if not exp:
        return render_template('error.html',message="Experimento no definido",recent=recent.get())
    db_session.delete(exp)
    db_session.commit()
    return redirect(url_for('.dashboard'))
Ejemplo n.º 11
0
def experiment_edit(expid):
    exp=db_session.query(Experiment).get(expid)
    if not exp:
        return render_template('error.html',message="Experimento no definido",recent=recent.get())
    form=ExperimentF()
    if form.cancel.data:
        return redirect(url_for('.dashboard'))
    if form.validate_on_submit():
        form.populate_obj(exp)
        exp.date_modification=datetime.now()
        db_session.add(exp)
        db_session.commit()
        return redirect(url_for('.experiment_info',expid=expid))
    form.name.data=exp.name
    form.definition.data=exp.definition
    form.invitation.data=exp.invitation
    form.reinvitation.data=exp.reinvitation
    form.instructions.data=exp.instructions
    form.description.data=exp.description

    return render_template('experiment_edit.html',
                form=form,type='edit',expid=expid,recent=recent.get())
Ejemplo n.º 12
0
def user_new():
    """Create a user email"""
    form=UserInviteF(request.form)
    if form.cancel.data:
        return redirect(url_for(dashboard))
    if form.validate_on_submit():
        user_mail=User.query.filter(User.email==form.email.data).all()
        if not user_mail:
            u=uuid.uuid4()
            userid=str(u)
            user=User(userid)
            user.email=form.email.data
            user.accepted=True
            db_session.add(user)
            db_session.commit()
            return render_template('user_created.html',
                    userid=userid,
                    servername=current_app.config['BASE_NAME'],
                    recent=recent.get())
        else:
            return render_template('error.html',message="Usuario ["+form.email.data+"] ya definido con id:"+user_mail[0].userid,recent=recent.get())
    else:
        return render_template('email_edit.html',form=form,recent=recent.get(),opt="crear")
Ejemplo n.º 13
0
def experiment_test(expid=None):
    if not expid:
        expid = request.cookies.get('project')
        if not expid:
            return render_template('error.html',message="Proyecto no seleccionado",recent=recent.get())
        expid=int(expid)
    exp=db_session.query(Experiment).get(expid)
    if not exp:
        return render_template('error.html',message="Experimento no definido",recent=recent.get())
    resp = make_response(render_template('poll_prev.html',
                        instructions=exp.instructions ))
    resp.set_cookie('running_exp',str(expid))
    resp.set_cookie('running_user',"",expires=0)
    return resp
Ejemplo n.º 14
0
def experiment_select(expid):
    if not expid:
        expid = request.cookies.get('project')
        if not expid:
            return render_template('error.html',message="Proyecto no seleccionado",recent=recent.get())
        return render_template('error.html',message="Proyecto no seleccionado",recent=recent.get())
    exp=db_session.query(Experiment).get(expid)
    if not exp:
        return render_template('error.html',message="Experimento no definido",recent=recent.get())
    resp = make_response(redirect(url_for('.dashboard')))
    resp.set_cookie('project', str(expid))
    resp.set_cookie('project_name', exp.name)
    recent.pull(expid)
    return resp
Ejemplo n.º 15
0
def experiment_clone(expid=None):
    if not expid:
        expid = request.cookies.get('project')
        if not expid:
            return render_template('error.html',message="Proyecto no seleccionado",recent=recent.get())
        expid=int(expid)
    exp_=db_session.query(Experiment).get(expid)
    if not exp_:
        return render_template('error.html',message="Experimento no definido",recent=recent.get())
    exp=Experiment()
    exp.name="CLONE:"+exp_.name
    exp.definition=exp_.definition
    exp.description=exp_.description
    exp.instructions=exp_.instructions
    exp.invitation=exp_.invitation
    exp.reinvitation=exp_.reinvitation
    db_session.add(exp)
    db_session.commit()
    return redirect(url_for('.experiment_info',expid=exp.id))
Ejemplo n.º 16
0
def user_invite():
    """Invite a user via email"""
    project = request.cookies.get('project')
    if not project:
        return render_template('error.html',message="Proyecto no seleccionado",recent=recent.get())
    form=UserInviteF(request.form)
    if form.cancel.data:
        return redirect(url_for('.dashboard'))
    if form.validate_on_submit():
        user_mail=User.query.filter(User.email==form.email.data).all()
        if not user_mail:
            u=uuid.uuid4()
            userid=str(u)
            user=User(userid)
            user.accepted=True
            form.populate_obj(user)
            db_session.add(user)
            db_session.commit()
            return redirect(url_for('.user_info',userid=userid))
        else:
            return render_template('error.html',message="Usuario ["+form.email.data+"] ya definido con id:"+user_mail[0].userid,recent=recent.get())
    else:
        return render_template('email_edit.html',form=form,recent=recent.get())
Ejemplo n.º 17
0
def users_invite():
    """Invite a user via email"""
    project_name = request.cookies.get('project_name')
    if not project_name:
        return render_template('error.html',message="Proyecto no seleccionado",recent=recent.get())
    ids= request.form.keys()
    users=User.query.filter(User.id.in_(ids)).all()
    ids=dumps(ids)
    return  render_template('confirm_invitation.html',users=users,
        ids=ids,projname=project_name)
Ejemplo n.º 18
0
def experiment_list():
    return render_template('experiments.html',recent=recent.get())
Ejemplo n.º 19
0
def experiment_nousers(expid):
    """Invite a user via email"""
    exp=db_session.query(Experiment).get(expid)
    if not exp:
        return render_template('error.html',message="Experimento no definido",recent=recent.get())
    return  render_template('nousers.html',projname=exp.name)
Ejemplo n.º 20
0
def users_add():
    """Invite a user via email"""
    project = request.cookies.get('project')
    if not project:
        return render_template('error.html',message="Proyecto no seleccionado",recent=recent.get())
    ids=loads(request.args.get('ids'))
    add_users(project,ids)
    return redirect(url_for(".experiment_info",expid=project))