Esempio n. 1
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)
Esempio n. 2
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)
Esempio n. 3
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)
Esempio n. 4
0
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('/')
Esempio n. 5
0
    def setUp(self):
        self.item = Messages()
        self.item.title = "OK"
        self.item.description = "OK"
        self.item.save()

        self.item1 = Event()
        self.item1.title = "OK"
        self.item1.description = "OK"
        self.item1.save()

        self.item2 = Documentation()
        self.item2.title = "OK"
        self.item2.description = "OK"
        self.item2.save()

        self.item3 = SignUp()
        self.item3.title = "OK"
        self.item3.description = "OK"
        self.item3.save()

        self.item4 = Feedback()
        self.item4.title = "OK"
        self.item4.description = "OK"
        self.item4.save()
Esempio n. 6
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)
Esempio n. 7
0
def add_feedback(username):
    """Add feedback."""

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

    else:
        form = AddFeedbackForm()

        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()

        else:
            return render_template("add-feedback.html",
                                   form=form,
                                   username=username)

    return redirect(f"/users/{username}")
Esempio n. 8
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)
Esempio n. 9
0
def add_user_feedback(username):

    form = FeedbackForm()
    user = User.query.get_or_404(username)
    session_user = User.query.get(session["username"])

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

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

        feedback = Feedback(title=title,
                            content=content,
                            username=session["username"])

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

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

    return render_template("add_feedback.html", form=form)
Esempio n. 10
0
def feedback(request):
    """
    ajax方法,提交用户反馈
    :param request: {'account_id': '0', 'feedback_content': ''}
    :return:
    """
    if request.method == 'POST':
        account = request.session.get('account')
        account_id = account.get('id', 0)

        feedback_content = request.POST.get('feedback_content')

        if feedback_content:

            try:
                fdback = Feedback()
                fdback.account_id = Account.objects.get(id=account_id)
                fdback.content = feedback_content
                fdback.date = datetime.now()

                fdback.save()
                return HttpResponse(
                    json.dumps({
                        'status': 'ok',
                        'data': u'提交成功'
                    }))
            except:
                return HttpResponse(
                    json.dumps({
                        'status': 'error',
                        'data': u'ops, 系统发生错误'
                    }))

    return HttpResponse(json.dumps({'status': 'error', 'data': u'提交反馈失败'}))
Esempio n. 11
0
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
Esempio n. 12
0
def add_feedback(username):
    """ On GET: If <username> is in the session, shows add feedback form"""
    
    form = AddFeedbackForm()

    session_user = session.get("username", None)
    
    user = User.validate(session_user, username)
    
    if user:    
        
        if form.validate_on_submit():
            data = {k: v for k, v in form.data.items() if k != "csrf_token"}
            
            data["username"] = username

            new_feedback = Feedback(**data) 

            db.session.add(new_feedback)
            db.session.commit()
        
            return redirect(f"/users/{username}")

        else:
            return render_template("feedback.html",
                                    form=form)

    flash("Invalid user!")
    return redirect(f"/")
Esempio n. 13
0
def display_add_feedback_form(username):
    """ GET show form for adding feedback as a logged in user
        POST take the form data
     """

    if "user_username" not in session:
        flash("You must be logged in to give feedback! Put your name on it!")
        return redirect("/login")
    elif session['user_username'] != username:
        flash("You can't edit someone else's feedback")
        return redirect('/')
    else:
        form = FeedbackForm()
        if form.validate_on_submit():
            username = username
            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/{username}')
        else:
            return render_template("feedback.html", form=form)
 def submit(self, url, score, description, user_id):
     feedback = Feedback(
         url=url, score=score, description=description, user_id=user_id
     )
     database.session.add(feedback)
     database.session.commit()
     return feedback
Esempio n. 15
0
def update_feedback(feedback_id):
    """Update feedback."""
    feedback = Feedback.query.filter_by(id=feedback_id).first()
    username = session.get("user_id")

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

    else:
        form = UpdateFeedbackForm(obj=feedback)

        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()

        else:
            return render_template("update-feedback.html",
                                   form=form,
                                   username=username,
                                   feedback=feedback)

    return redirect(f"/users/{username}")
Esempio n. 16
0
def create_feedback(username):
    form = FeedbackForm()

    if 'user' not in session:
        flash('Please sign in or register first')
        return redirect('/')
    else:
        if form.validate_on_submit():
            flash("Feedback added")
            user = User.query.get(username)

            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/{user.username}')
        else:
            user = User.query.get(username)
            return render_template('feedback.html', form=form, user=user)
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)
Esempio n. 18
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}")
Esempio n. 19
0
def new_feedback(username):
    """Show add-feedback form and process it."""

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

    form = ProvideFeedback()
    user = User.query.filter(User.username == username).first()

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

        feedback = Feedback(
            title=title,
            content=content,
            user_id=user.user_id,
        )

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

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

    else:
        return render_template("new_feedback.html", form=form)
Esempio n. 20
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')
Esempio n. 21
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)
Esempio n. 22
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)
Esempio n. 23
0
def add_feedback():
    
    if "username" not in session:
        flash("Please log in first!", "danger")
        raise Unauthorized()
        return redirect('/login')

    form = FeedbackForm()

    feedback = Feedback.query.all()

    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("Feedback created!", "success")
        return redirect(f'/users/{feedback.username')

    else:
        return render_template('feedback.html', form=form)
Esempio n. 24
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)
Esempio n. 25
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)
Esempio n. 26
0
def contact(request):
    if request.method == 'POST':
        c = {}
        form = ContactForm(request.POST)
        if form.is_valid():
            feedback = Feedback()
            try:
                feedback.name = form.cleaned_data["con_name"]
                feedback.email = form.cleaned_data["con_emailid"]
                try:
                    feedback.mobile = str(form.cleaned_data["con_mobile"])
                except:
                    feedback.mobile = ""
                #if feedback.mobile is None:
                #    feedback.mobile = 0
                feedback.value = form.cleaned_data["con_text"]
                feedback.save()
                c.update({"success": True})
            except:
                print sys.exc_info()[1]
                return HttpResponse('Error in sending feedback' +
                                    str(vars(feedback)) +
                                    str(sys.exc_info()[0]))

            c.update(csrf(request))
            return render_to_response('contact.html', c)
        else:
            c = {}
            c.update({"form": form})
            c.update(csrf(request))
            return render_to_response('contact.html', c)
    c = {}
    c.update(csrf(request))
    return render_to_response('contact.html', c)
Esempio n. 27
0
def add_feedback(username):
    form = AddFeedbackForm()
    if form.validate_on_submit():
        title = form.title.data
        content = form.content.data
        try:
            if session['user_id'] == username:
                fb = Feedback(title=title, content=content, username=username)
                db.session.add(fb)
                db.session.commit()
                return redirect(f'/users/{username}')
            else:
                flash(f"Stop trying to add content under {username}!")
                redirect(f"/users/{session['user_id']}")
        except KeyError:
            flash("Please login or register first ;(")
            return redirect('/register')
    else:
        try:
            if session['user_id'] == username:
                user = User.query.filter_by(username=username).first()
            else:
                flash(f"Stop trying to add content under {username}!")
                redirect(f"/users/{session['user_id']}")
        except KeyError:
            flash("Please login or register first ;(")
            return redirect('/register')
        return render_template('add_feedback.html', user=user, form=form)
Esempio n. 28
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('/')
Esempio n. 29
0
def add_feedback(username):
    """Add feedback for the current user"""

    if "user_username" not in session:
        flash("You must be logged in to view")
        return redirect('/')

    if session["user_username"] == username:
        form = addFeedbackForm()

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

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

            db.session.add(f)
            db.session.commit()

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

        return render_template('add-feedback.html', form=form)

    else:
        username = session["user_username"]
        flash(f'To add feedback, {username}, click Add Feedback below')
        return redirect(f'/users/{username}')
Esempio n. 30
0
    def post(self):
        try:
            feedback = Feedback(request.json)
            g.db.feedback.insert(feedback.__dict__)
        except Exception:
            abort(400)

        return jsonify(code=200)