def add_project(payload): ''' Add/update a new/existing project based on user inputs ''' to_create = request.method == 'POST' body = request.get_json() name = body.get('name', None) description = body.get('description', None) category = body.get('category', None) labels = body.get('labels', None) image_link = body.get('image_link', None) video_link = body.get('video_link', None) user_id = 1 # TODO get user_id from Auth info. if not name or not description or not category \ or not labels or not image_link or not video_link: abort( 400, 'invalid inputs of {} project'.format( 'new' if to_create else 'update')) try: if to_create: project = Project(name=name, description=description, category=category, labels=labels, image_link=image_link, video_link=video_link, user_id=user_id) project.insert() else: # to update project = Project.query.filter_by(name=name).one_or_none() project.description = description project.category = category project.labels = labels project.image_link = image_link project.video_link = video_link project.update() return jsonify({ 'success': True, }) except Exception: flash('An error occur when adding {} project'.format( 'new' if to_create else 'update')) # print(sys.exc_info()) abort( 500, 'failed to add {} project'.format( 'new' if to_create else 'update'))
def create_new_project(request): """ Takes in an ajax request to create a new project """ returnDict = {} if request.method == 'POST': print request.POST try: datadict = json.loads(request.POST['projectdata']) print datadict #we have stuff to process project = Project() project.title = datadict['name'] project.startDate = datetime.datetime.strptime(datadict['startDate'], "%m/%d/%Y") project.category = datadict['category'] project.complete = False project.save() returnDict['id'] = project.id except Exception, e: print e returnDict['error'] = e.message