def add_buildout_view(request): try: data = json.loads(request.params['data']) except KeyError: return Response('No data. Nothing added.') session = DBSession() buildoutname = data['buildoutname'] packages = data['packages'] prepared_packages = prepare_packages(session, packages) buildout = session.query(Buildout).filter_by(name=buildoutname) if not buildout.count(): buildout = Buildout(name=buildoutname, packages=prepared_packages) else: buildout = buildout[0] buildout.packages = prepared_packages session.merge(buildout) transaction.commit() return Response('OK')