예제 #1
0
def FeedbackView(request):
    if request.method == 'POST':
        fform = FeedbackForm(request.POST)
        if fform.is_valid():
            name = request.POST.get('name', '')
            rating = request.POST.get('rating', '')
            feedback = request.POST.get('feedback', '')

            data = FeedbackData(name=name,
                                rating=rating,
                                date=date1,
                                feedback=feedback)
            data.save()
            fform = FeedbackForm()
            feedbacks = FeedbackData.objects.all()
            return render(request, 'institute_feedback.html', {
                'fform': fform,
                'feedbacks': feedbacks
            })
        else:
            return HttpResponse("Enter all fields")

    else:
        fform = FeedbackForm()
        feedbacks = FeedbackData.objects.all()
        return render(request, 'institute_feedback.html', {
            'fform': fform,
            'feedbacks': feedbacks
        })
예제 #2
0
파일: views.py 프로젝트: romantix74/Raduga
def contact(request):
    """Renders the contact page."""
    assert isinstance(request, HttpRequest)
    args = {}
    args['formFeedback'] = FeedbackForm()
    args['title'] = u'Контактная информация'
    args['year'] = datetime.now().year
    if request.POST:
        _form = FeedbackForm(request.POST)
        if _form.is_valid():
            user_mail = _form.cleaned_data['user_mail']
            user_question = _form.cleaned_data['user_question']
            #отправляем админам письмо о создании коллектива
            _mails = User.objects.filter(is_superuser=1).values_list('email',
                                                                     flat=True)
            for mail in _mails:
                try:
                    print "debug====================="
                    send_mail(u'Вопрос от: {0}'.format(user_mail),
                              u'{0}'.format(user_question),
                              '*****@*****.**', [mail],
                              fail_silently=False)
                except Exception as ex:
                    print ex.message
            messages.add_message(request, messages.SUCCESS,
                                 u'Ваш запрос отправлен')
            return redirect(reverse('contact'))  #return redirect('/');
        else:
            # если что то не так , то выводим форму с ошибками
            args['formFeedback'] = _form
    return render(
        request,
        'app/contact.html',
        args  #context_instance = RequestContext(request, args)
    )
예제 #3
0
def feedback(request):
    """
    sends the feedback modal.
    """
    logged_in = True

    # CHECKS:
    #   i) user is logged in
    #   ii) request is either ajax for requesting feedback modal
    #   iii) request is a POST request for submitting feedback
    # else error
    if (not request.user.is_authenticated()) or \
            (not request.is_ajax() and not request.method == "POST"):
        return HttpResponse("Please login and go to the main page.")

    form = FeedbackForm()
    if request.method == 'POST':
        form = FeedbackForm(request.POST)
        if form.is_valid():
            obj = form.save(commit=False)
            obj.user = request.user  # add user
            obj.save()
            messages.success(request, "Thank you for your valuable feedback.")
        return HttpResponseRedirect(reverse('home'))
    return render(request, 'feedback.html', {
        'form': form,
        'logged_in': logged_in
    })
예제 #4
0
def send_feedback(request):
    if request.method == 'POST':
        form = FeedbackForm(request.POST)
        if form.is_valid():
            form.save()
            return render(request, 'guestbook/frontend/thanks.html')
    else:
        form = FeedbackForm()

    return render(request, 'guestbook/frontend/send_feedback.html', {
        'form': form,
    })
예제 #5
0
def add(request):
    """Gather feedback for a page, and if it is ok show a thanks message and link back to the page."""

    submit_was_success = False
    return_to_url      = None
    submit_error_message  = None

    # If it is a post request try to create the feedback
    if request.method == 'POST':
        form = FeedbackForm( request.POST )

        if form.is_valid():
            feedback = Feedback()
            feedback.url      = form.cleaned_data['url']
            feedback.email    = form.cleaned_data['email']
            feedback.comment  = form.cleaned_data['comment']

            submit_was_success = True

            if settings.GOOGLE_RECAPTCHA_SECRET_KEY:
                recaptcha_response = request.POST.get("g-recaptcha-response")
                if not recaptcha_client.verify(recaptcha_response):
                    submit_was_success = False
                    submit_error_message = "Sorry, something went wrong. Please try again or email us at <a href='mailto:[email protected]'>[email protected]</a>"
            
            # if the comment starts with an html tag it is probably spam
            if re.search('\A\s*<\w+>', form.cleaned_data['comment']):
                feedback.status = 'spammy'

            if request.user.is_authenticated():
                feedback.user = request.user

            if submit_was_success:
                feedback.save()

            return_to_url = feedback.url or None
        
    else:
        # use GET to grab the url if set
        form = FeedbackForm(initial=request.GET)
        
    
    return render(
        request,
        'feedback/add.html',
        {
            'form':               form,
            'submit_was_success': submit_was_success,
            'return_to_url':      return_to_url,
            'submit_error_message': submit_error_message
        },
    )
예제 #6
0
파일: views.py 프로젝트: ramin32/Hangspot
def feedback():
    if request.method == 'GET':
        return render_template('feedback.html', form=FeedbackForm())

    form = FeedbackForm(request.form)
    if form.validate_on_submit():
        feedback = Feedback(form.name.data, form.email.data, form.message.data)
        db.session.add(feedback)
        db.session.commit()
        flash('Thank you for your comment!')
        return redirect(url_for('views.profiles'))

    return render_template('feedback.html', form=form)
예제 #7
0
파일: views.py 프로젝트: Kirito1899/libcms
def edit_feedback(request, id):
    feedback = get_object_or_404(Feedback, id=id)
    if request.method == 'POST':
        form = FeedbackForm(request.POST, instance=feedback)
        if form.is_valid():
            form.save()
            return redirect('guestbook:administration:feedbacks_list')
    else:
        form = FeedbackForm(instance=feedback)

    return render(request, 'guestbook/administration/edit_feedback.html', {
        'form': form,
    })
예제 #8
0
def update_feedback(feedback_id):
    """ View function to update feedback """
    if 'username' not in session:
        flash('You are not authorized')
        return redirect('/')

    feedback = Feedback.query.get(feedback_id)

    if not feedback:
        return render_template('404.html')

    form = FeedbackForm(obj=feedback)

    if session.get('username'
                   ) == feedback.user.username and form.validate_on_submit():
        feedback.title = form.title.data
        feedback.content = form.content.data

        db.session.add(feedback)
        db.session.commit()

        return redirect(f'/users/{feedback.user.username}')
    else:
        return render_template('update-feedback.html',
                               form=form,
                               feedback_id=feedback.id)
예제 #9
0
def edit_feedback(feedback_id):
    """Update feedback details"""

    feedback = Feedback.query.get_or_404(feedback_id)

    username = feedback.username

    if 'username' not in session:
        flash("You have to be logged in to edit feedback!")
        return redirect("/")
    # elif not feedback:
    #     username = session['username']
    #     flash("That feedback does not exist Lord Vader!")
    #     return redirect(f"/users/{username}")
    elif session['username'] != username:
        flash("You cant edit feedback for others you sith lowlife!")
        return redirect("/")

    form = FeedbackForm(obj=feedback)

    if form.validate_on_submit():
        feedback.title = form.title.data
        feedback.content = form.content.data

        db.session.commit()

        return redirect(f"/users/{username}")

    return render_template('edit_feedback.html', form=form)
예제 #10
0
def add_feedback(username):
    if 'username' not in session:
        flash('Please login before continuing.', 'info')
        return ('/login')

    if session['username'] == username:
        form = FeedbackForm()
        if form.validate_on_submit():
            title = form.title.data
            content = form.content.data
            user = User.query.get(session['username'])

            feedback = Feedback(title=title,
                                content=content,
                                username=user.username)
            db.session.add(feedback)
            db.session.commit()

            flash(f'{user.username} Successfully Created Feedback', 'success')
            return redirect(f'/users/{user.username}')

        else:
            return render_template('add_feedback.html', form=form)

    flash('Your account cannot access that page.', 'info')
    return redirect('/')
예제 #11
0
def new_feedback(username):
    """Show add-feedback form and process it."""

    user = User.query.get_or_404(username)

    if "username" not in session or username != session['username']:
        flash('Not Authorized', "danger")
        return redirect(f"/users/{session['username']}")

    form = FeedbackForm()

    if form.validate_on_submit():
        title = form.title.data
        content = form.content.data
        feedback = Feedback(title=title, content=content, username=username)

        db.session.add(feedback)
        db.session.commit()

        all_feedback = Feedback.query.all()
        for feedback in all_feedback:
            print(feedback.title)

        form = DeleteForm()
        return render_template('user_page.html', user=user, form=form)

    else:
        return render_template("add_feedback.html",
                               form=form,
                               username=username)
예제 #12
0
def update_feedback(feedback_id):
    """ Update Feedback """

    form = FeedbackForm()

    user_id = session.get('user_id')
    logged_in_user = User.query.get(user_id)

    feedback = Feedback.query.get_or_404(feedback_id)
    user = feedback.user

    if user_id != user.id and not logged_in_user.is_admin:
        abort(401)

    if form.validate_on_submit():
        feedback.title = form.title.data
        feedback.content = form.content.data

        db.session.commit()

        return redirect(f'/users/{user.username}')

    form.title.data = feedback.title
    form.content.data = feedback.content

    return render_template('feedback-form.html',
                           user=user,
                           form=form,
                           action=f'/feedback/{feedback_id}/update')
예제 #13
0
def new_feedback(username):
    """Show add-feedback form and process it."""

    if "user_id" not in session:
        flash("You are not authorized", "danger")
        return redirect('/')
    id = session['user_id']
    main_user = User.query.get_or_404(id)
    form = FeedbackForm()

    if form.validate_on_submit():
        title = form.title.data
        content = form.content.data

        feedback = Feedback(
            title=title,
            content=content,
            username=username,
        )

        db.session.add(feedback)
        db.session.commit()

        return redirect(f"/user/{feedback.username}")

    else:
        return render_template("new_feedback.html",
                               form=form,
                               main_user=main_user)
예제 #14
0
def update_feedback(id):
    """Render form to update feedback and post submission"""

    if "username" not in session:
        flash("Please login first!")
        return redirect('/')

    our_feedback = Feedback.query.get_or_404(id)
    our_user = our_feedback.user.username

    #if the feedback not by person logged in, send error, redirect to /
    if our_user != session['username']:
        flash("Wrong User!")
        return redirect('/')
    
    form = FeedbackForm()
    
    if form.validate_on_submit():
        title = form.title.data
        content = form.content.data
        our_feedback.title = title
        our_feedback.content = content

        db.session.commit()

        return redirect(f'/users/{our_user}')

    return render_template('edit_feedback.html', form=form, feedback = our_feedback)
예제 #15
0
def add_feedback(username):
    """Add feedback for a user, or if submitted create a new feedback instance for the user"""

    curr_user = User.query.filter(User.username == username).first()

    if "username" not in session or username != session['username']:
        flash("You must be logged in to add feedback")
        return redirect("/")

    form = FeedbackForm()

    if form.validate_on_submit():

        title = form.title.data
        content = form.content.data
        new_feedback = Feedback(title=title,
                                content=content,
                                username=curr_user.username)
        db.session.add(new_feedback)
        db.session.commit()
        # on successful adding of feedback bring back to users pages
        return redirect(f"/users/{username}")

    else:
        return render_template("add_feedback.html", form=form)
예제 #16
0
def add_feedback(username):
    """ Logged-in user: Add feedback form """

    if "username" not in session:
        flash("You must be logged in to view!")
        abort(401)

    elif username != session['username']:
        flash("You can only give yourself feedback!")
        abort(401)

    else:
        user = User.query.get_or_404(username)
        form = FeedbackForm()

        if form.validate_on_submit():
            title = form.title.data
            content = form.content.data
            new_feedback = Feedback(title=title,
                                    content=content,
                                    username=username)

            db.session.add(new_feedback)
            db.session.commit()

            return redirect(f'/users/{session["username"]}')

        return render_template("feedback.html", user=user, form=form)
예제 #17
0
def add_feedback(username):
    if 'user_username' not in session:
        flash("You must login", "warning")
        return redirect("/login")
    sessuser = session["user_username"]
    form = FeedbackForm()
    if form.validate_on_submit():
        title = form.title.data
        content = form.feedback.data
        new_feedback = Feedback(title = title, content = content, username = username)
        db.session.add(new_feedback)
        try:
            db.session.commit()
        except IntegrityError as e:
            err = str(e)
            if "feedback_title_key" in err:
                form.title.errors = ["Title cannot be blank"]
            if "feedback_feedback_key" in err:
                form.feedback.errors = ["Feedback cannot be blank"]
        flash("Successfully created feedback", "success")
        return redirect(f"/users/{username}")
    if username == session["user_username"]:
        return render_template("feedback.html", form = form)
    flash("You dont have permission to do that", "danger")
    return redirect(f"/users/{sessuser}")
예제 #18
0
def feedback_user(username):
    """Add feedback for a certain user"""
    if "username" not in session:
        raise Unauthorized()
    if username != session['username']:
        raise Forbidden()
        # flash("Sorry, you don't have permission to add a feedabck. Login first.")
        # return redirect('/login')

    form = FeedbackForm()

    if form.validate_on_submit():
        title = form.title.data
        content = form.content.data

        new_feedback = Feedback(title=title,
                                content=content,
                                username=username)
        db.session.add(new_feedback)
        db.session.commit()

        flash("Feedback was added.", "info")
        return redirect(f'/users/{username}')
    else:
        return render_template('feedback/add.html',
                               form=form,
                               username=username)
예제 #19
0
파일: views.py 프로젝트: mkramb/errorify
def feedback_save(request):
    form = FeedbackForm(request.user, data=request.POST.copy() or None)

    if form.is_bound and form.is_valid():
        form.save(request.user)

    return HttpResponse()
예제 #20
0
def feedback_edit(feedback_id):
    """Validate and show feedback edit form"""
    feedback = Feedback.query.get_or_404(feedback_id)

    if session["user_id"] == feedback.user.id:
        form = FeedbackForm()
    return render_template('/edit_feed.html', form=form, feedback=feedback)
예제 #21
0
def update_feedback(feedback_id):
    """Show update-feedback form and process it."""

    feedback = Feedback.query.get(feedback_id)

    if "user_id" not in session:
        flash("You are not authorized", "danger")
        return redirect('/')
    id = session['user_id']
    main_user = User.query.get_or_404(id)
    if main_user.username != feedback.username:
        flash("You are not authorized", "danger")
        return redirect('/')

    form = FeedbackForm(obj=feedback)

    if form.validate_on_submit():
        feedback.title = form.title.data
        feedback.content = form.content.data

        db.session.commit()

        return redirect(f"/user/{feedback.username}")

    return render_template("/edit_feedback.html",
                           form=form,
                           feedback=feedback,
                           main_user=main_user)
예제 #22
0
def update_feedback(feedback_id):

    feedback = Feedback.query.get_or_404(feedback_id)
    user = feedback.user
    form = FeedbackForm(obj=feedback)

    if form.validate_on_submit():
        if user.username == session['user']:
            username = feedback.user.username
            feedback.title = request.form['title']
            feedback.content = request.form['content']
            db.session.commit()
            return redirect(f'/users/{username}')
        else:
            flash('Can only edit your own feedback')
            username = session['user']
            return redirect(f'/users/{username}')
    elif 'user' not in session:
        flash('User must be logged in')
        return redirect('/login')
    elif user.username == session['user']:
        return render_template('/update.html', form=form)
    else:
        flash('Can only edit your own feedback')
        username = session['user']
        return redirect(f'/users/{username}')
예제 #23
0
def update_feedback(feedback_id):
    feedback = Feedback.query.get_or_404(feedback_id)

    if 'username' in session and session[
            'username'] == feedback.username or User.query.get(
                session['username']).is_admin:
        form = FeedbackForm()

        if form.validate_on_submit():
            feedback.title = form.title.data
            feedback.content = form.content.data

            db.session.commit()

            return redirect(f"/users/{session['username']}")
        form.content.data = feedback.content
        users = User.query.all()
        logged_in_user = User.query.get(session['username'])
        return render_template('update_feedback_form.html',
                               form=form,
                               users=users,
                               logged_in_user=logged_in_user,
                               username=session['username'],
                               feedback=feedback)
    return redirect('/login')
예제 #24
0
def add_feedback(username):
    """ Add feedback """

    form = FeedbackForm()

    user_id = session.get('user_id')
    logged_in_user = User.query.get(user_id)

    try:
        user = User.query.filter(User.username == username).one()
    except Exception:
        abort(404)

    if user_id != user.id and not logged_in_user.is_admin:
        abort(401)

    if form.validate_on_submit():

        feedback = {
            "title": form.title.data,
            "content": form.content.data,
            "username": username
        }

        new_feedback = Feedback(**feedback)
        db.session.add(new_feedback)
        db.session.commit()

        return redirect(f"/users/{username}")

    return render_template('feedback-form.html',
                           user=user,
                           form=form,
                           action=f'/users/{username}/feedback/add')
예제 #25
0
def edit_feedback(id):
    if 'user_username' not in session:
        flash("You must login", "warning")
        return redirect("/login")
    sessuser = session["user_username"]
    form = FeedbackForm()
    feedback = Feedback.query.get(id)
    if form.validate_on_submit():
        title = form.title.data
        content = form.feedback.data
        feedback.title = title
        feedback.content = content
        db.session.add(feedback)
        try:
            db.session.commit()
        except IntegrityError as e:
            err = str(e)
            if "feedback_title_key" in err:
                form.title.errors = ["Title cannot be blank"]
            if "feedback_feedback_key" in err:
                form.feedback.errors = ["Feedback cannot be blank"]
        flash("Successfully edited feedback", "success")
        return redirect(f"/users/{sessuser}")
    if sessuser == feedback.username:
        form.title.data = feedback.title
        form.feedback.data = feedback.content
        return render_template("editfeedback.html", form = form)
    flash("You dont have permission to do that", "danger")
    return redirect(f"/users/{sessuser}")
예제 #26
0
def new_feedback(username):
    """Show add-feedback form and process it."""

    if "user_name" not in session or username != session['user_name']:
        flash("Please login first!", "danger")
        return redirect("/")

    form = FeedbackForm()

    if form.validate_on_submit():
        title = form.title.data
        content = form.content.data

        feedback = Feedback(
            title=title,
            content=content,
            username=username,
        )

        db.session.add(feedback)
        db.session.commit()
        flash("Sucessfully Added New Feedback", "success")
        return redirect(f"/users/{feedback.username}")

    else:
        return render_template("feedback.html", form=form)
예제 #27
0
def edit_feedback(feedback_id):
    """ Logged-in user: Edit feedback form """

    feedback = Feedback.query.get_or_404(feedback_id)

    if "username" not in session:
        flash("You must be logged in to view!")
        abort(401)

    elif feedback.user.username != session['username']:
        flash("You can only give yourself feedback!")
        abort(401)

    else:
        user = User.query.get_or_404(feedback.user.username)
        form = FeedbackForm(obj=feedback)

        if form.validate_on_submit():
            feedback.title = form.title.data
            feedback.content = form.content.data

            db.session.commit()

            return redirect(f'/users/{session["username"]}')

        return render_template("edit-feedback.html", user=user, feedback=feedback, form=form)
예제 #28
0
def update_feedback(feedback_id):
    """Show update-feedback form and process it."""

    feedback = Feedback.query.get(feedback_id)

    if "username" not in session or feedback.username != session['username']:
        raise Unauthorized()

    form = FeedbackForm(obj=feedback)

    if form.validate_on_submit():
        feedback.title = form.title.data
        feedback.content = form.content.data

        db.session.commit()

        return redirect(f"/users/{feedback.username}")

    return render_template("/feedback_edit.html", form=form, feedback=feedback)

# @app.route('/tweets/<int:id>', methods=["POST"])
# def delete_tweet(id):
#     """Delete tweet"""
#     if 'user_id' not in session:
#         flash("Please login first!", "danger")
#         return redirect('/login')
#     tweet = Tweet.query.get_or_404(id)
#     if tweet.user_id == session['user_id']:
#         db.session.delete(tweet)
#         db.session.commit()
#         flash("Tweet deleted!", "info")
#         return redirect('/tweets')
#     flash("You don't have permission to do that!", "danger")
#     return redirect('/tweets')
예제 #29
0
def new_feedback(username):
    """Show add-feedback form and process it."""

    if "username" not in session or username != session['username']:
        raise Unauthorized()

    form = FeedbackForm()

    if form.validate_on_submit():
        title = form.title.data
        content = form.content.data

        feedback = Feedback(
            title=title,
            content=content,
            username=username,
        )

        db.session.add(feedback)
        db.session.commit()

        return redirect(f"/users/{feedback.username}")

    else:
        return render_template("feedback.html", form=form)
예제 #30
0
def add(request):
    if request.method == "POST":
        form = FeedbackForm(request.POST)

        if form.is_valid():
            form.instance.user = request.user
            if 'HTTP_REFERER' in request.META:
                form.instance.page = request.META['HTTP_REFERER']

            form.save()

            return HttpResponse('', mimetype="text/plain")
        else:
            logger.debug(form.errors)
            error_msg = []
            for field in form.errors:
                for error in form.errors[field]:
                    error_msg.append('%s: %s' %
                                     (form.fields[field].label, error))
            error_msg = '\n'.join(error_msg)

            return HttpResponseBadRequest(error_msg, mimetype="text/plain")
    else:
        return HttpResponseNotAllowed([
            "POST",
        ])