Пример #1
0
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)
Пример #2
0
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)
Пример #3
0
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
    })
Пример #4
0
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)
Пример #5
0
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'))