コード例 #1
1
ファイル: views.py プロジェクト: VaclavDedik/triager
def post_feedback(id):
    project = Project.query.get_or_404(id)

    form = FeedbackForm()
    if form.validate():
        issue = Document(form.summary.data, form.description.data)
        feedback = Feedback()
        feedback.project = project
        feedback.id = Feedback.get_id_from_doc(issue, project=project)
        existing_feedback = Feedback.query.get(feedback.id)
        if existing_feedback:
            feedback = existing_feedback

        if form.selected_recommendation.data:
            feedback.selected_recommendation = \
                form.selected_recommendation.data
        if form.confirmed_recommendation.data:
            feedback.confirmed_recommendation = \
                form.confirmed_recommendation.data
        db.session.add(feedback)
        db.session.commit()

        return jsonify(result="success")

    return jsonify(result="error", errors=form.errors), 400
コード例 #2
0
ファイル: views.py プロジェクト: ellenbowman/Satellite
def contact(request):

    if request.POST:
        form = FeedbackForm(request.POST)

        if form.is_valid():

            context = {
                'page_title':"Feedback",
                'name': form.cleaned_data['name'],
                'email': form.cleaned_data['email'],
                'comments': form.cleaned_data['comments'],
            }

            try:
                Feedback.objects.create(name=context['name'], email=context['email'], comments=context['comments'])
            except Exception as e:
                context['error'] = str(e)

            return render(request, 'risk_ratings/contact_thanks.html', context)
    else:
        form = FeedbackForm()

    context = {
            'page_title':"Feedback",
            'feedbacks':Feedback.objects.all(),
            'form': form,
        }

    return render(request, 'risk_ratings/contact.html', context)
コード例 #3
0
ファイル: app.py プロジェクト: bpruitt63/sql-and-flask
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}')
コード例 #4
0
ファイル: app.py プロジェクト: a-packer/flask_feedback
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)
コード例 #5
0
ファイル: app.py プロジェクト: sairina/flask-feedback
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)
コード例 #6
0
ファイル: views.py プロジェクト: MaratFM/Djanym
def feedback(request):
    '''
    '''
    message = u'Форма обратной связи' 
    if request.method == 'POST':    
        form = FeedbackForm(request.POST) 
   
        if form.is_valid():

            email = render_to_string('feedback/email.html', {'object': form.cleaned_data})
            subject, content = EMAIL_SPLIT_RE.split(email, 1)            
            
            from_email = settings.DEFAULT_FROM_EMAIL                                                               
            to_email = getattr(settings, 'FEEDBACK_EMAILS', [e[1] for e in settings.MANAGERS])     

            msg = EmailMultiAlternatives(subject, content, from_email, to_email)                                   
            msg.content_subtype = "html"                                                                       
            msg.send()
            
            message = u'Ваш вопрос успешно отправлен!'
            form = None
    else:            
        form = FeedbackForm()

    return {
            'form': form,
            'message': message,            
            }
コード例 #7
0
ファイル: app.py プロジェクト: nathanmass1/Flask-Feedback
def update_user_feedback(feedback_id):

    userperson = Feedback.query.get(feedback_id)
    username = userperson.username
    session_user = User.query.get(session["username"])

    print(username)
    form = FeedbackForm(obj=userperson)

    if "username" not in session:
        flash("You better login!")
        return redirect("/")
    if session["username"] != username and not session_user.user.is_admin:
        flash("Must be logged in to see form")
        return redirect("/")

    if form.validate_on_submit():
        feedback = Feedback.query.get(feedback_id)

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

        feedback.title = title
        feedback.content = content

        db.session.commit()

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

    return render_template("add_feedback.html", form=form)
コード例 #8
0
ファイル: views.py プロジェクト: IIIT-Delhi/findmystuff
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 })
コード例 #9
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()
コード例 #10
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)
コード例 #11
0
def feedback_form(username):
    """Display a form to add feedback""" 

    authenticated_user = User.query.filter_by(username=username).first()
    
    if not authenticated_user:
        return redirect("/register")
    
    if "username" not in session:
        return redirect("/register")

    form = FeedbackForm()

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

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

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

    else:
        return render_template("feedback-form.html", form=form, 
                               user=authenticated_user)
コード例 #12
0
ファイル: app.py プロジェクト: starmanDX/springboard
def add_feedback(username):
    """Show the page to add feedback for the current user
        or add feedback for the current user"""

    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('Successfully added feedback!', 'success')
        return redirect('/')

    try:
        user = User.query.filter_by(username=username).one()

        if "user_id" not in session:
            flash('Please log in first.', 'danger')
            return redirect('/login')

        if user.username == session['username']:
            return render_template('add_feedback.html', form=form)

        else:
            flash("You don't have permission to access that!", 'danger')
            return redirect('/')

    except:
        flash("Page not found. Redirecting!", 'info')
        return redirect('/')
コード例 #13
0
ファイル: app.py プロジェクト: JakLarsen/SpringBoard
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)
コード例 #14
0
ファイル: app.py プロジェクト: sairina/flask-feedback
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)
コード例 #15
0
ファイル: views.py プロジェクト: kblauer/kinder-updates
def create(request):
    username = None
    group = 'teacher'
    
    if request.user.is_authenticated():
        username = request.user.username
        if request.user.has_perm('feedback.add_feedback'):
            group = 'parent'
            
    if request.POST:
        form = FeedbackForm(request.POST)
        if form.is_valid():
            # this saves the form submission data, but doesn't submit it to the server yet
            # It is needed so that we can set the parent ID on the model data before final submission
            fb = form.save(commit=False)
            fb.sentByParent = request.user
            fb.save()
            
            return HttpResponseRedirect('/feedback/parent_view/')
        
    else:
        form = FeedbackForm()
        
        args = {}
        args.update(csrf(request))
        
        args['form'] = form
        args['username'] = username
        args['group'] = group
        
        return render_to_response('create_feedback.html', args)
コード例 #16
0
def edit_feedback(feedback_id):
    """Allow user who created a feedback to edit it"""

    if "username" in session:
        feedback = Feedback.query.get_or_404(feedback_id)
        user = User.query.get_or_404(feedback.user.username)

        if user.username == session['username']:
            form = FeedbackForm(title=feedback.title, content=feedback.content)
            
            if 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/{ user.username }")

            return render_template("feedback_form.html", form=form)
        else:
            flash("You do not have permission to edit that")
            return redirect("/")
    else:
        flash("Need to be logged in to edit feedback")
        return render_template("login.html", form=form)
コード例 #17
0
def feedback(username):
    """Show feedback form (GET) or add feedback to db (POST)"""

    if "username" in session:
        form = FeedbackForm()
        user = User.query.get_or_404(username)

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

                # create a feedback instance
                feedback = Feedback(title=title, content=content, username=username)
                db.session.add(feedback)
                db.session.commit()

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

            return render_template("feedback_form.html", form=form)
        else:
            flash("You do not have permission to edit that")
            return redirect(f"/users/{ session['username'] }")
    else:
        flash("Need to be logged in to submit feedback")
        return render_template("login.html", form=form)
コード例 #18
0
def edit_feedback(id):
    """GET: Display a form to edit feedback 
    Only the user who has written that feedback can see this form 
    
    POST: Update a specific piece of feedback and redirect to /users/<username>
    Only the user who has written that feedback can update it"""

    fb = Feedback.query.get_or_404(id)
    if not 'username' in session:
        flash('You must be logged in to view that page.', 'error')
        return redirect('/login')
    elif not session['username'] == fb.user.username:
        flash("You don't have permission to view that page.", 'error')
        return redirect('/login')

    form = FeedbackForm(obj=fb)

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

        db.session.commit()
        flash(f"Updated feedback: {fb.title}", "success")
        return redirect(f"/users/{fb.user.username}")

    else:
        return render_template("edit_feedback.html", form=form)
コード例 #19
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)
コード例 #20
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)
    )
コード例 #21
0
ファイル: app.py プロジェクト: kamalkhadka/springboard
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)
コード例 #22
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}")
コード例 #23
0
ファイル: views.py プロジェクト: ttiurani/troikalearning
def feedback():
    feedbackerrors = []
    feedbackform = FeedbackForm()
    user = None
    given_feedback = []
    if 'email' in session: 
        user = get_user(session['email'])
        if user.role == 'admin':
            # For admins, the feedback is shown
            given_feedback = get_feedback()
    
    if feedbackform.validate_on_submit():
        feedback = Feedback(created = datetime.now(),
                            description=feedbackform.description.data,
                            user=user)
        save_feedback(feedback)
        flash(_(u"Feedback saved. Thank you!"))
        return redirect(url_for('troikas'))
        
    if feedbackform.errors:
        for key, value in feedbackform.errors.items():
            feedbackerrors.append(key + ': ' + value[0])

    return render_template('feedback.html', feedbackform=feedbackform, 
                           feedbackerrors=feedbackerrors,
                           given_feedback=given_feedback)
コード例 #24
0
ファイル: views.py プロジェクト: Bl3f/django-feedback
    def post(self, request, *args, **kwargs):
        form = FeedbackForm(data=request.POST)

        if form.is_valid():
            data = form.cleaned_data

            feedback_message = FeedbackMessage()
            feedback_message.type = data.get('type')
            feedback_message.subject = data.get('subject')
            feedback_message.content = data.get('content')
            feedback_message.user = request.user
            feedback_message.save()

            requester = '*****@*****.**'
            if '@' in feedback_message.user.email:
                requester = feedback_message.user.email

            message = (u"[FEEDBACK ADHOC] {0}: {1}".format(feedback_message.type.capitalize(), feedback_message.subject),
                       u"{0}\n- - - - - - - - - -\nFrom user: {1}".format(feedback_message.content,
                                                                          feedback_message.user.username,
                                                                          ),
                       requester,
                       getattr(settings, 'EMAIL_FOR', None),
                       )

            send_mail(*message, fail_silently=False)

            return HttpResponse('true')
        else:
            context = super(FeedbackView, self).get_context_data(**kwargs)
            context.update({
                'form': form,
            })
            return self.render_to_response(context)
コード例 #25
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}")
コード例 #26
0
ファイル: app.py プロジェクト: lawrencedovin/flask-feedback
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('/')
コード例 #27
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)
コード例 #28
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)
コード例 #29
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()
コード例 #30
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)
コード例 #31
0
def add_feedback(username):
    """GET: Display a form to add feedback. Only the user who is logged in can see this form
    
    POST: Add a new piece of feedback and redirect to /users/<username> 
    Only the user who is logged in can successfully add feedback"""

    if not 'username' in session:
        flash('You must be logged in to view that page.', 'error')
        return redirect('/login')
    elif not session['username'] == username:
        flash("You don't have permission to view that page.", 'error')
        return redirect('/login')

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

        fb = Feedback(title=title, content=content, username=username)
        try:
            db.session.add(fb)
            db.session.commit()

            flash(f"Feedback submitted!", "success")
            return redirect(f'/users/{username}')
        except:
            flash(f"Error submitting feedback.", "error")

    return render_template('add_feedback.html', form=form)
コード例 #32
0
ファイル: app.py プロジェクト: imgeorge220/flask-feedback
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')
コード例 #33
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)
コード例 #34
0
ファイル: app.py プロジェクト: imgeorge220/flask-feedback
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')
コード例 #35
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')
コード例 #36
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')
コード例 #37
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",
        ])
コード例 #38
0
def feedback(request):
    if request.method == 'POST' and request.is_ajax():
        f = FeedbackForm(request.POST)
        f.save()
        return HttpResponse()
    else:
        return HttpResponseBadRequest()
コード例 #39
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)
コード例 #40
0
ファイル: views.py プロジェクト: madhavsuresh/premier
def enter():
#hacky hack
    form = FeedbackForm(csrf_enabled = False)
    if form.validate_on_submit():
        print 'woot!'
        ad = form_to_dict(form)
        handle_form_data(ad)
        return redirect('/')
    return render_template('form.html',form = form)
コード例 #41
0
def show_feedback_form(request):
    if request.method == 'POST':
        form = FeedbackForm(request.POST)
        if form.is_valid():
            form.mail()
            return render_to_response('feedback/thankyou.html', {'form': form})
    else:
        form = FeedbackForm()
    return render_to_response('feedback/feedback.html', {'form': form})
コード例 #42
0
def feedback(request):
    feedbackform = FeedbackForm(request.POST)
    if not feedbackform.is_valid():
        return redirect("search")
    else:
        message = feedbackform.cleaned_data["message"]
        email = feedbackform.cleaned_data["email"]
        send_mail("feedback", message, email, ["*****@*****.**"], fail_silently=True)
        return redirect("feedbackThanks")
コード例 #43
0
ファイル: views.py プロジェクト: JrtPec/coopkot
def send_feedback():
    form = FeedbackForm()
    if form.validate_on_submit():
        newFeedback = Feedback(sender=g.user,text=form.text.data, timestamp=datetime.utcnow())
        db.session.add(newFeedback)
        db.session.commit()
        flash('Your feedback has been submitted! Thank you!')
        return redirect(url_for('index'))
    return render_template('send_feedback.html',
        form = form)
コード例 #44
0
ファイル: views.py プロジェクト: renkse/myapps
def feedback_view(request):
    if request.method == 'POST':
        form = FeedbackForm(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponse('ok')
        else:
            errors = {}
            for key, value in form.errors.items():
                errors[key] = value[0]
            return HttpResponse(json.dumps(errors))
コード例 #45
0
ファイル: views.py プロジェクト: nixilla/where-is-when-is
def feedback(request):

    form = FeedbackForm(request.POST or None)
    if form.is_valid():
        form.save()

        # TODO: Add message (django.contrib.messages)

        return redirect('/')

    return render(request, 'feedback.html', {'form': form})
コード例 #46
0
ファイル: views.py プロジェクト: isergey/system
def add_feedback(request, conference_slug=''):
    if request.method == 'POST':
        form = FeedbackForm(request.POST)

        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('guestbook_index'))
    else:
        form = FeedbackForm()
    return render(request, 'guestbook/feedback_add.html',
                              {'form': form,
                               'module':'guestbook',})
コード例 #47
0
ファイル: views.py プロジェクト: VBelozyorov/libcms
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,
    })
コード例 #48
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)
コード例 #49
0
ファイル: views.py プロジェクト: isergey/system
def edit(request, message_id):
    feedback = get_object_or_404(Feedback, id=message_id)
    if request.method == 'POST':
        form = FeedbackForm(request.POST, instance=feedback)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('administration_guestbook_index'))
    else:
        form = FeedbackForm(model_to_dict(feedback),instance=feedback)
    return direct_to_template(request, 'guestbook/administration/edit_message.html',
                              {'form': form,
                               'feedback':feedback,
                               'active_module': 'guestbook'})
コード例 #50
0
ファイル: views.py プロジェクト: VBelozyorov/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,
    })
コード例 #51
0
ファイル: views.py プロジェクト: Bauerr/geoq
def feedbackcreate(request):

    form = FeedbackForm(request.POST or None)
    topics = Topic.objects.all()

    if request.method == 'POST':
        if form.is_valid():
            form.save(commit=True)
            return HttpResponseRedirect(reverse('thanks'))
        else:
            return render(request, 'feedback.html', {'form': form, 'topics': topics })

    return render(request, 'feedback.html', {'form': FeedbackForm(), 'topics': topics})
コード例 #52
0
ファイル: views.py プロジェクト: larinam/ratings
def feedback(request):
    if request.POST:
        form = FeedbackForm(request.POST.copy())
        if not form.is_valid():
            return render_to_response("ratings/one_form_page.html", dict(form=form), context_instance=RequestContext(request))
        data = form.cleaned_data
        send_mail("Письмо с сайта", data["question"] + '\r\n\r\n' + data["name"] + data["contacts"], DEFAULT_FROM_EMAIL, [TO_EMAIL], False, "", "")
        return render_to_response("ratings/one_widget_page.html", dict(widget="Спасибо за обратную связь!", link="/ratings/", link_text="Вернуться на главную",
                                                                      title="Обратная связь" ),
                              context_instance=RequestContext(request))
    form = FeedbackForm()
    return render_to_response("ratings/one_form_page.html", dict(form=form, link="mailto:%s" % (TO_EMAIL), link_text="Написать нам через почтовый клиент", 
                                                                 title="Форма обратной связи"),
                              context_instance=RequestContext(request))
コード例 #53
0
ファイル: views.py プロジェクト: zacharyvoase/django-retracer
def feedback(request):
    if request.method == 'GET':
        request.stash_referrer()
        # Display the form.
        return django.http.HttpResponse()
    elif request.method == 'POST':
        form = FeedbackForm(request.POST)
        if form.is_valid():
            feedback = form.save()
            # Redirect to stashed location, or index.
            return request.unstash_location_with_default('index')
        else:
            # Display the form, with errors.
            return django.http.HttpResponseBadRequest()
    return django.http.HttpResponseNotAllowed(['GET', 'POST'])
コード例 #54
0
ファイル: views.py プロジェクト: joash/djangotemplate
def contact(request):
    """
    Feedback form
    """
    form = FeedbackForm(initial={'submitter': request.user})

    if request.method == 'POST':
        form = FeedbackForm(request.POST)  # A form bound to the POST data
        if form.is_valid():  # All validation rules pass
            form.save()
            messages.error(request, 'Thank you', fail_silently=False)
        else:
            messages.error(request, 'Invalid', fail_silently=False)
            print form.errors

    return render(request, "contact.html", {'form': form, 'helper': FeedbackForm.helper})
コード例 #55
0
ファイル: views.py プロジェクト: Code4SA/pombola
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

    # 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']

            # if there is any content in the honeypot field then label this comment as spammy
            if form.cleaned_data['website']:
                feedback.status = 'spammy'
            
            # 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

            feedback.save()

            submit_was_success = True
            return_to_url = feedback.url or None
        
    else:
        # use GET to grab the url if set
        form = FeedbackForm(initial=request.GET)
        
    
    return render_to_response(
        'feedback/add.html',
        {
            'form':               form,
            'submit_was_success': submit_was_success,
            'return_to_url':      return_to_url,
        },
        context_instance=RequestContext(request)
    )
コード例 #56
0
ファイル: views.py プロジェクト: isergey/libcms
def index(request):
    feedbacks_page = get_page(request, Feedback.objects.filter(publicated=True).order_by('-add_date'))

    count_feedback = len(feedbacks_page)

    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/index.html', {
        'feedbacks_page': feedbacks_page,
        'form': form,
        'count_feedback': count_feedback
    })
コード例 #57
0
def submit_feedback(request):
    if request.method == 'GET':
        return render_to_response('feedback/feedback_form.html', 
            {'form': FeedbackForm()},
            context_instance=RequestContext(request))

    elif request.method == 'POST':
        form = FeedbackForm(request.POST)

        if form.is_valid():
            feedback = form.save(commit=False)
            feedback.is_spam = spam.is_spam(request, feedback.name, feedback.comment)
            feedback.save()
            return render_to_response('feedback/feedback_success.html',context_instance=RequestContext(request))

        return render_to_response('feedback/feedback_form.html',
                {'form':form},
                context_instance=RequestContext(request))
コード例 #58
0
ファイル: views.py プロジェクト: glynnbailey/myshop
def feedback(request):
    
    if request.method == 'POST':
        form = FeedbackForm(request.POST)
        if form.is_valid():
            data = Feedback(name=form.cleaned_data['name'], email=form.cleaned_data['email'], comment=form.cleaned_data['comment'])
            data.save()
            message = "Thanks for the feedback"
            context = {'form':FeedbackForm(), 'message':message, 'count':request.session.get('count',0)}
            return render(request, 'feedback/feedback.html', context)
        else:
            # If data is not valid, reload page with error
            message = "Oops! Something went wrong!"
            context = {'form':FeedbackForm(), 'message':message, 'count':request.session.get('count',0)}
            return render(request, 'feedback/feedback.html', context)
    else:
        context = {'form':FeedbackForm(), 'count':request.session.get('count',0)}
        return render(request, 'feedback/feedback.html', context)
コード例 #59
0
ファイル: views.py プロジェクト: vault/bugit
def feedback_main(request):
    success = False
    if 'success' in request.GET:
        success = True

    if request.method == 'GET':
        form = FeedbackForm()
    elif request.method == 'POST':
        form = FeedbackForm(request.POST)
        if form.is_valid():
            feedback = form.save(commit=False)
            feedback.sender = request.user
            feedback.save()
            furl = reverse('feedback') + '?success=1'
            return HttpResponseRedirect(furl)

    context = get_context(request, {'form':form, 'success':success})
    return render_to_response('feedback/feedback.html', context, context_instance=RequestContext(request))
コード例 #60
0
ファイル: views.py プロジェクト: moomou/rateplusplus
def FeedbackHandler(request):
    if request.method == "POST":
        form = FeedbackForm(request.POST)

        if form.is_valid():
            cd = form.cleaned_data

            #send email to me 
            send_mail('Feedback for Cloverite', cd['feedback'], cd['userEmail'], ['*****@*****.**'], fail_silently=True)

            #send email to user
            if cd['userEmail']:
                send_mail('Thank you for testing Cloverite!', EMAIL_MSG, "*****@*****.**", [cd['userEmail']], fail_silently=True)

            return HttpResponse(json.dumps("pass"), mimetype="application/json")

        else:
            return HttpResponse(json.dumps(form.errors), mimetype="application/json")