def add_activity(): form = ActivityForm() if form.validate_on_submit(): activity = ActivityInfo(name=form.name.data, time=form.time.data, address=form.address.data, introduce=form.introduce.data, guest=form.guest.data, poster=form.poster_url.data) db.session.add(activity) db.session.commit() flash(u'活动添加成功!') return redirect(url_for('add_activity')) return render_template("admin/add_activity.html", title=u'活动', form=form)
def submit_activity(): """ Submit activity Render activity form Check form is valid and save to the database """ if session.get('user') is None: flash('You must be logged-in to submit an Activity', 'error') return redirect(url_for('login')) form = ActivityForm() if form.validate_on_submit(): td = form.venue.data del td['location'] result = Activity().add_activity() activity_id = result[0] if result[0] != 'TITLE_EXISTS': if form.image.data: save_image(form.image.data, activity_id + '.jpg') return redirect(url_for('index')) form.title.errors.append('An activity with this name already exists') elif request.method == 'POST': flash('Please correct form errors below', 'error') return render_template( 'activity_form.html', form=form, page_title=('Things to Do and Places to Go: Submit new Activity'), form_title='Add an Activity', nav_link='Submit_Activity', categories=CATEGORIES)
def edit_activity(activity_id): """ Edit activity Render activity form Check form is valid and save to the database :param activity_id: string :return: redirect to home page """ if session.get('user') is None: flash('You must be logged-in to edit an Activity', 'error') return redirect(url_for('login')) else: user_session = session.get('user') if check_activity_id(activity_id): activity_data = Activity().get_activity(activity_id) if activity_data is None: flash('Activity not found', 'error') return redirect(url_for('index')) users_level = user_session.get('level', 0) # Check user owns activity or user level is 1-moderator or 7-admin if (ObjectId(user_session['_id']['$oid']) != ObjectId( activity_data['userid'])) and (users_level != 1 and users_level != 7): flash( f'''You cannot edit the activity " {activity_data["title"]}"''', 'error') return redirect(url_for('index')) # Set imageURL for preview image imageURL = set_imageURL(activity_id) # Check form isn't too large (image data size) try: form = ActivityForm(data=activity_data) except RequestEntityTooLarge: flash('Chosen file too large, limit is 4mb', 'error') form = ActivityForm(data=activity_data) else: form.imageId.data = activity_id if form.validate_on_submit(): # Remove venue location field as not required for database td = form.venue.data del td['location'] if form.image.data: save_image(form.image.data, activity_id + '.jpg') Activity().update_activity(activity_id) return redirect(url_for('index')) elif request.method == 'POST': flash('Please correct form errors below', 'error') return render_template( 'activity_form.html', form=form, page_title=('Things to Do and Places to Go: Edit Activity'), form_title='Edit Activity', imageURL=imageURL, categories=CATEGORIES) else: return redirect(url_for('index'))