def edit_activity(): activities = ActivityInfo.query.order_by(ActivityInfo.timestamp.desc()).all() # 查询活动 if request.form.get('query_name'): name = request.form.get('query_name') activity = ActivityInfo.query.filter_by(name=name).order_by(ActivityInfo.timestamp.desc()).first() form = ActivityForm() form.name.data = activity.name form.time.data = activity.time form.address.data = activity.address form.introduce.data = activity.introduce form.guest.data = activity.guest form.poster_url.data = activity.poster return render_template('admin/edit_activity.html', activities=activities, form=form, id=activity.id) # 确认修改 if request.form.get('edit'): activity_id = request.form.get('edit') activity = ActivityInfo.query.filter_by(id=activity_id).first() activity.name = request.form.get('name') activity.time = request.form.get('time') activity.address = request.form.get('address') activity.introduce = request.form.get('introduce') activity.guest = request.form.get('guest') activity.poster = request.form.get('poster_url') db.session.add(activity) db.session.commit() flash(u'活动修改成功!') form = ActivityForm() form.name.data = activity.name form.time.data = activity.time form.address.data = activity.address form.introduce.data = activity.introduce form.guest.data = activity.guest return render_template('admin/edit_activity.html', activities=activities, form=form, id=activity.id) return render_template('admin/edit_activity.html', activities=activities)
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 editActivities(request, template_name): if request.method == 'POST': actForm = ActivityForm(request.POST) createdActivity = actForm.save(commit=False) createdActivity.save(request) actForm = ActivityForm() activities = Activity.objects.all_with_permission(request) actList = [] for activity in activities: actList.append({ 'id': activity.id, 'activity': activity.name, 'tags': activity.activitytags.all(), 'count': activity.actCount(request), }) return render(request, template_name, { 'actList': actList, 'actForm': actForm }) activities = Activity.objects.all_with_permission(request) actList = [] for activity in activities: actList.append({ 'id': activity.id, 'activity': activity.name, 'tags': activity.activitytags.all(), 'count': activity.actCount(request), }) actForm = ActivityForm() return render(request, template_name, { 'actList': actList, 'actForm': actForm })
def new_activity(): form = ActivityForm(request.form) if request.method == 'POST' and form.validate(): meta = {} meta['en'] = { 'title': form.title.data, 'content': form.content.data } activity = ActivityModel( date = form.date.data, address = form.address.data, registrable = form.registrable.data, register_link = form.register_link.data, meta = meta ) activity.put() return redirect(url_for('admin.activities')) return render_template('admin/new_activity.html', form=form)
def edit_activity(keyurl): activity = ndb.Key(urlsafe=keyurl).get() if not activity: return redirect('admin.activities') form = ActivityForm(request.form, obj=activity) if request.method == 'GET': form.title.data = activity.meta['en']['title'] form.content.data = activity.meta['en']['content'] if request.method == 'POST' and form.validate(): meta = {} meta['en'] = { 'title': form.title.data, 'content': form.content.data } activity.date = form.date.data activity.address = form.address.data activity.registrable = form.registrable.data activity.register_link = form.register_link.data activity.meta = meta activity.put() return redirect(url_for('admin.activities')) return render_template('admin/edit_activity.html', form=form, keyurl=keyurl)
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'))