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}
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')