Example #1
0
 def post(self, *args, **kw):
     user = handler.user.get_user_in_session(request)
     user_lab = session.get("current_lab", None)
     if user_lab:
         lab = DBSession.query(Labs).filter(Labs.name == user_lab).first()
     p = Projects()
     if kw['project_name'] == '':
         flash("Bad Project : Your project must have a name", "error")
         raise redirect("./new")
     p.project_name = kw['project_name']
     p.user_id = user.id
     p.description = kw.get('description', None)
     (p.labs).append(lab)
     DBSession.add(p)
     DBSession.flush()
     flash("Project created !")
     raise redirect('/projects')
Example #2
0
    def create(self, *args, **kw):
        user = handler.user.get_user_in_session(request)
        project = Projects()
        name = kw.get('project_name', None)
        if name is None:
            return {'ERROR': "You have to give a name to your project"}
        project.project_name = name
        lab_id = kw['lab']
        if lab_id is None:
            return {'ERROR': "We need to know the user's lab"}
        lab = DBSession.query(Labs).filter(Labs.id == lab_id).first()
        (project.labs).append(lab)
        #test if user is an admin
        admin = isAdmin(user)
        if admin:
            project.user_id = kw.get('user_id', user.id)
        else:
            project.user_id = user.id

        project.description = kw.get('description', None)
        get_samples = kw.get('samples', None)
        l = []

        if get_samples is None:
            project.samples = l
        else:
            for x in get_samples.split(','):
                sam = DBSession.query(Samples).join(Projects).join(User).filter(Samples.id == x).first()
                l.append(sam)

            project.samples = l
        #checking print
        print project, " building project with wget"

        DBSession.add(project)
        DBSession.flush()

        return {"user_id": user.id, "user_name": user.name, "project_id": project.id, "project_name": project.project_name,
                 "description": project.description}