コード例 #1
0
    def test_review_likes(self):
        """Test liking a review"""
        r1 = Review(
            drink_id=self.d1id,
            rating=3.5,
            review="Test Review",
            user_id=self.uid,
            image=
            "https://images.unsplash.com/photo-1561150169-371f366b828a?ixid=MXwxMjA3fDB8MHxzZWFyY2h8MXx8YWxjb2hvbHxlbnwwfHwwfA%3D%3D&ixlib=rb-1.2.1&w=1000&q=80"
        )

        r2 = Review(
            drink_id=self.d1id,
            rating=4.2,
            review="Another Test Review of same drink",
            user_id=self.uid,
            image="https://images.financialexpress.com/2018/03/beer-reuters.jpg"
        )
        u = User.signup("yetanothertest", "*****@*****.**", "password", None)
        uid = 888
        u.id = uid
        db.session.add_all([r1, r2, u])
        db.session.commit()

        u.likes.append(r1)

        db.session.commit()

        l = Likes.query.filter(Likes.user_id == uid).all()
        self.assertEqual(len(l), 1)
        self.assertEqual(l[0].reviews_id, r1.id)
        self.assertNotEqual(l[0].reviews_id, r2.id)
コード例 #2
0
    def test_review_comments(self):
        """Test commenting on a review"""

        r1 = Review(
            drink_id=self.d1id,
            rating=3.5,
            review="Test Review",
            user_id=self.uid,
            image=
            "https://images.unsplash.com/photo-1561150169-371f366b828a?ixid=MXwxMjA3fDB8MHxzZWFyY2h8MXx8YWxjb2hvbHxlbnwwfHwwfA%3D%3D&ixlib=rb-1.2.1&w=1000&q=80"
        )

        r2 = Review(
            drink_id=self.d1id,
            rating=3.3,
            review="Another review",
            user_id=self.uid,
            image=
            "https://images.unsplash.com/photo-1561150169-371f366b828a?ixid=MXwxMjA3fDB8MHxzZWFyY2h8MXx8YWxjb2hvbHxlbnwwfHwwfA%3D%3D&ixlib=rb-1.2.1&w=1000&q=80"
        )

        r1.id = 8888
        r2.id = 5599
        db.session.add(r1)
        db.session.add(r2)

        db.session.commit()

        c1 = Comment(user_id=self.uid, reviews_id=r1.id, text="Comment on r1")

        c2 = Comment(user_id=self.uid, reviews_id=r2.id, text="Comment on r2")

        db.session.add(c1)
        db.session.add(c2)

        db.session.commit()

        comments = Comment.query.filter(Comment.user_id == self.uid).all()
        self.assertEqual(len(comments), 2)

        comment1 = Comment.query.filter(Comment.reviews_id == r1.id).all()
        self.assertEqual(len(comment1), 1)
        self.assertEqual(comment1[0].reviews_id, r1.id)
        self.assertEqual(comment1[0].text, "Comment on r1")
        self.assertNotEqual(comment1[0].text, "Comment on r2")
        # self.assertNotEqual(l[0].reviews_id, r2.id)

        comment2 = Comment.query.filter(Comment.reviews_id == r2.id).all()
        self.assertEqual(len(comment2), 1)
        self.assertEqual(comment2[0].reviews_id, r2.id)
        self.assertEqual(comment2[0].text, "Comment on r2")
        self.assertNotEqual(comment2[0].text, "Comment on r1")
コード例 #3
0
def review():
    if request.method == 'POST':           
        rating = request.form.get('review_tags')
        review = request.form.get('review_value')
        name = session['username']
        print(name)
        temp = list(request.form.items())
        print(temp)
        # print(temp[2][0])
        if rating is None:
            detail = Book.query.filter(Book.isbn == temp[1][0]).all()
            isbn = temp[1][0]
        else:
            detail = Book.query.filter(Book.isbn == temp[2][0]).all()
            isbn = temp[2][0]
        total_reviews = db.session.query(Review).filter(Review.isbn == isbn)
        # if rating is None:
        #     return render_template('bookpage.html',message = 'Please rate this book',sel_book = detail,total_reviews=total_reviews,isbn = isbn)
        flag = review_present(name,isbn)
        if flag:
            data = Review(username = name, isbn = isbn, rating = rating, review = review) 
            print(data)
            db.session.add(data)
            db.session.commit()
        else:
            return render_template('bookpage.html',message = 'You have already given review',sel_book = detail,total_reviews=total_reviews,isbn = isbn)
    return render_template('bookpage.html',name = session['username'], message1 = 'Review submitted succesfully.',total_reviews=total_reviews,sel_book = detail,isbn = isbn)
コード例 #4
0
ファイル: views.py プロジェクト: baa-archieve/esyakutuphanesi
def review():
    form = ReviewForm()
    conversation_id = request.form.get('conversation_id')

    if request.method == 'POST' and form.validate_on_submit():
        rating = request.form.get('rate')

        rq = Request.query. \
            filter(Request.id == form.request_id.data).first()

        # reviewed_user_id = rq.user_id if rq.user_id == current_user.id \
        #     else rq.from_user_id

        reviewed_user_id = rq.from_user_id

        new_review = Review(
            user_id=current_user.id,
            reviewed_user_id=reviewed_user_id,
            request_id=rq.id,
            comment=form.comment.data,
            rating=rating
        )

        db.session.add(new_review)
        db.session.commit()
        flash(u"Yorumunuz eklendi :)")
        return redirect('/show_stuff/%s' % rq.stuff_id)

    flash(u"Mesaj alanını boş bıraktınız.")
    return redirect('/conversation/%s' % conversation_id)
コード例 #5
0
    def setUp(self):
        """Create test client, add sample data."""
        db.drop_all()
        db.create_all()

        self.app = create_app('testing')
        self.client = self.app.test_client()

        self.testuser = User.signup('test',
                            'dummy',
                            'test123',
                            '*****@*****.**',
                            'password',
                            None,
                            "Texas",
                            None,
                            None)
        self.uid = 1111
        self.testuser.id = self.uid
        db.session.commit()

        self.testreview = Review(location='9191 S Polk Street Dallas', description='Just testing this out', user_id=self.testuser.id)
        self.rid = 2222
        self.testreview.id = self.rid
        db.session.commit()
コード例 #6
0
def create_review(place_id):
    """Creates a new review"""
    req = request.get_json()

    place = storage.get("Place", place_id)

    if place is None:
        abort(404)

    if req is None:
        return (jsonify("Not a JSON"), 400)

    try:
        req['user_id']
    except:
        return (jsonify("Missing user_id"), 400)

    try:
        req['text']
    except:
        return (jsonify("Missing text"), 400)

    req['place_id'] = place_id
    review_data = Review(**req)

    for key, value in req.items():
        setattr(review_data, key, value)

    review_data.save()
    return (jsonify(review_data.to_json()), 201)
コード例 #7
0
def myreviews(request):
    reviews = Review.objects.filter(
        user=request.user).order_by('-date_started')
    context = {'reviews': reviews, 'alert_message': None}
    if request.method == "POST":
        new_title = request.POST.get('review', "")
        new_title = new_title.strip()
        if new_title != "":
            if not any(c in '!@#$%^&*\"\'' for c in new_title):
                if not reviews.filter(slug=slugify(new_title)).exists():
                    review = Review(user=request.user,
                                    title=new_title,
                                    date_started=datetime.datetime.now())
                    review.save()
                    reviews = Review.objects.filter(
                        user=request.user).order_by('-date_started')
                    context['reviews'] = reviews
                    context[
                        'alert_message'] = "A review was created with name: " + new_title
                else:
                    context[
                        'alert_message'] = "A review with this name already exists."
            else:
                context['alert_message'] = "Title cannot contain !@#$%^&*\"\'"
        elif request.POST.get('delete_review', "") != "":
            review_to_delete = reviews.get(
                slug=request.POST.get('delete_review'))
            if review_to_delete != None:
                review_to_delete.delete()
                context[
                    'alert_message'] = "Review deleted: " + review_to_delete.title
        else:
            context['alert_message'] = "You must give your new review a title."
    return render(request, 'ultimatereview/myreviews.html', context)
コード例 #8
0
def add_review(user: User, submission: Submission,
               category: ReviewCategory) -> Review:
    if user == submission.user:
        raise Exception("Review and submission user cannot be the same")
    review = Review(
        user=user,
        submission=submission,
        review_type=category,
        mwe=submission.mwe,
        created=datetime.now()
    )
    if category == ReviewCategory.LIKE:
        if submission.language == Language.ENGLISH:
            submission.user.score_today_en += submission.points
        elif submission.language == Language.TURKISH:
            submission.user.score_today_tr += submission.points
        elif submission.language == Language.ITALIAN:
            submission.user.score_today_it += submission.points
        submission.user.score += submission.points
        submission.score += submission.points
    user.score += submission_scores.get_review_score()
    if submission.language == Language.ENGLISH:
        user.score_today_en += submission_scores.get_review_score()
    elif submission.language == Language.TURKISH:
        user.score_today_tr += submission_scores.get_review_score()
    elif submission.language == Language.ITALIAN:
        user.score_today_it += submission_scores.get_review_score()
    session = database.get_session()
    session.add(review)
    database.commit(session)
    return review
コード例 #9
0
def create_review(place_id):
    """
    Creates new review. If request body not valid JSON, raises 400
    If dict does not contain 'name' key, raise 400
    Returns review object with status 201
    """
    if not request.get_json():
        abort(400, "Not a JSON")

    kwargs = request.get_json()

    a = storage.get("Place", place_id)
    if a is None:
        abort(404)

    if not kwargs.get('user_id'):
        abort(400, "Missing user_id")
    if not kwargs.get('text'):
        abort(400, 'Missing text')

    a = storage.get("User", kwargs["user_id"])
    if a is None:
        abort(404)

    my_review = Review(place_id=place_id, **kwargs)
    storage.new(my_review)
    storage.save()

    return jsonify(my_review.to_dict()), 201
コード例 #10
0
def parse_r8_rev(payload, fk):
	for key,values in payload.items():
		if key == "data":
			data = json.dumps(values)
			data = json.loads(data)
			count = 0
			while (count < 5 and count < len(data["beerReviews"]["items"])):
				score = ""
				comment = ""
				comment_date = ""
				comment = (data["beerReviews"]["items"][count]['comment'])
				score = (data["beerReviews"]["items"][count]['score'])
				# Only grab the first portion of the date.
				comment_date = (data["beerReviews"]["items"][count]['createdAt'])[0:10]
				if "The honey really comes out nicely." in comment or "A very nice BIPA" in comment:
					count += 1
					continue

				# Regex to find hex characters that would break database population.
				t = re.match(r'\\x[0-9a-fA-F]+', comment)
				first = re.findall(r'[\x80-\xff]', comment)
				second = re.findall('[\\x80-\\xff]', comment)
				if first or second or t:
					count += 1
					continue
				count += 1

				# Creating the actual review in the database.
				brew_id = db.session.query(Beer).get(fk).brewery_id
				rev = Review(date=comment_date, rating=float(score), comment=comment, beer_name=fk, brewery_name=brew_id)
				db.session.add(rev)
				db.session.commit()

			return 1
コード例 #11
0
ファイル: tests.py プロジェクト: Pulv/crafthats
    def createMultiple(self):
        b = Beer(name="Trough",
                 organic="Y",
                 abv=11.2,
                 ibu=9.0,
                 brewery_id=None,
                 style_id=None,
                 images="http://www.placeholder.com/image.jpg")
        b2 = Beer(name="Kipp",
                  organic="N",
                  abv=13.1,
                  ibu=9.1,
                  brewery_id=None,
                  style_id=None,
                  images="http://www.placeholder.com/image.jpg")
        db.session.add(b)
        db.session.add(b2)
        db.session.commit()

        rev = Review(date="1996-11-11",
                     rating=2.2,
                     comment="Kipp was nasty.",
                     beer_name=b2.id,
                     brewery_name=None)

        db.session.add(rev)
        db.session.commit()
        self.assertNotEqual(rev.id, b.id)
        self.assertEqual(rev.id, b2.id)
コード例 #12
0
ファイル: tests.py プロジェクト: Pulv/crafthats
    def createReviewFK(self):
        b = Beer(name="Miller",
                 organic="Y",
                 abv=9.2,
                 ibu=10.0,
                 brewery_id=None,
                 style_id=None,
                 images="http://www.placeholder.com/image.jpg")
        brw = Brewery(
            name="BrewMe",
            city="Dallas",
            state="Texas",
            country="USA",
            established=2009,
            description="BrewMe is a IPA brewer.",
            images="https://www.drinkbritain.com/sites/default/files/image.png"
        )
        db.session.add(b)
        db.session.add(brw)
        db.session.commit()

        rev = Review(date="2009-08-09",
                     rating=3.2,
                     comment="Miller was meh.",
                     beer_name=b.id,
                     brewery_name=brw.id)
        db.session.add(rev)
        db.session.commit()

        self.assertEqual(rev.beer_name, b.id)
        self.assertEqual(rev.brewery_name, brw.id)
コード例 #13
0
def create_postreview():
    reviewer = request.json["reviewer"]
    pname = request.json["pname"]
    cname = request.json["cname"]
    score1 = request.json["score1"]
    score2 = request.json["score2"]
    score3 = request.json["score3"]
    try:
        year = request.json["year"]
    except:
        year = None
    try:
        school = request.json["school"]
    except:
        school = None
    try:
        comment = request.json["comment"]
    except:
        comment = None
    try:
        advice = request.json["advice"]
    except:
        advice = None
    new_review = Review(reviewer=reviewer, pname=pname, cname=cname, score1=score1,
                        score2=score2, score3=score3, year=year, school=school, comment=comment, advice=advice)
    db.session.add(new_review)
    db.session.commit()
    return jsonify("{} was created".format(new_review))
コード例 #14
0
def create_review(place_id):
    '''
       Creates a new Review object and saves it to storage
    '''
    place = storage.get("Place", place_id)
    if not place:
        abort(404)

    if not request.json:
        abort(400)
        return jsonify({"error": "Not a JSON"})

    review_dict = request.get_json()
    if "user_id" not in review_dict:
        abort(400)
        return jsonify({"error": "Missing user_id"})
    elif "text" not in review_dict:
        abort(400)
        return jsonify({"error": "Missing text"})

    # Check that user_id is linked to actual User object
    user_check = storage.get("User", review_dict["user_id"])
    if not user_check:
        abort(404)

    review_text = review_dict["text"]
    user_id = review_dict["user_id"]
    review = Review(text=review_text, user_id=user_id, place_id=place_id)
    for k, v in review_dict.items():
        setattr(review, k, v)
    review.save()
    return jsonify(review.to_dict()), 201
コード例 #15
0
ファイル: app.py プロジェクト: albagon/ny-diner-app
 def create_review_submission(id):
     error = False
     body = {}
     try:
         form = request.form
         review = Review(
             restaurant_id = id,
             name = form['name'],
             date = datetime.now(),
             rating = form['rating'],
             comments = form['comments']
         )
         review.insert()
         body['name'] = form['name']
     except:
         error = True
         db.session.rollback()
         print(sys.exc_info())
     finally:
         db.session.close()
     if not error:
         # on successful db insert, flash success
         flash('Thank you ' + body['name'] + ' for your review.', 'success')
     else:
         flash('An error occurred. Review could not be listed.', 'error')
     return redirect('/restaurants/'+str(id)+'/new_reviews')
コード例 #16
0
def create_review(place_id):

    content = request.get_json()
    if content is None:
        return (jsonify({"error": "Not a JSON"}), 400)

    my_place = storage.get("Place", place_id)
    if my_place is None:
        abort(404)

    user_id = content.get("user_id")
    if user_id is None:
        return (jsonify({"error": "Missing user_id"}), 400)

    my_user = storage.get("User", user_id)
    if my_user is None:
        abort(404)

    text = content.get("text")
    if text is None:
        return (jsonify({"error": "Missing text"}), 400)

    new_review = Review()
    new_review.place_id = my_place.id

    for key, val in content.items():
        setattr(new_review, key, val)

    new_review.save()
    return (jsonify(new_review.to_dict()), 201)
コード例 #17
0
def reviews_of_a_place(place_id):
    '''
        GET: list all reviews in a specific place
        POST: add a review to a specific place
    '''
    my_place = storage.get('Place', place_id)
    if my_place is None:
        abort(404)
    if request.method == 'POST':
        review_dict = request.get_json()
        if review_dict is None:
            return 'Not a JSON', 400
        if 'user_id' not in review_dict.keys():
            return 'Missing user_id', 400
        if 'text' not in review_dict.keys():
            return 'Missing text', 400
        if storage.get('User', review_dict['user_id']) is None:
            abort(404)
        review_dict['place_id'] = place_id
        my_review = Review(**review_dict)
        my_review.save()
        return jsonify(my_review.to_dict()), 201
    my_reviews = [review.to_dict() for review in storage.all('Review').values()
                  if review.place_id == place_id]
    return jsonify(my_reviews)
コード例 #18
0
def post_review(place_id):
    """Creates a Review object
    Args:
        place_id: id of the place in uuid format
    Returns:
        jsonified version of created review object
    """
    if storage.get("Place", place_id) is None:
        abort(404)
    if not request.json:
        return jsonify({"error": "Not a JSON"}), 400
    review_dict = request.get_json()
    if "user_id" not in review_dict:
        return jsonify({"error": "Missing user_id"}), 400
    if storage.get("User", review_dict["user_id"]) is None:
        abort(404)
    if "text" not in review_dict:
        return jsonify({"error": "Missing text"}), 400
    else:
        r_user_id = review_dict["user_id"]
        r_text = review_dict["text"]
        review = Review(user_id=r_user_id, text=r_text, place_id=place_id)
        for key, value in review_dict.items():
            setattr(review, key, value)
        review.save()
        return jsonify(review.to_dict()), 201
コード例 #19
0
def reviews():
    if 'username' in session and request.method == 'POST':
        Comment = request.form['Comment']
        Stars = request.form["Stars"]
        HouseId = request.form["House"]
        StudentEmail = session["username"]
        student = Student.query.filter_by(Email=StudentEmail).first()
        house = House.query.filter_by(Id=HouseId).first()
        if student == None:
            return jsonify({
                "status":
                404,
                "message":
                "User is not a student so unauthorized to write revew."
            })
        else:
            review = Review(house.Id, student.Id, Stars, Comment,
                            datetime.now(), datetime.now())
            db.session.add(review)
            try:
                db.session.commit()
            except exc.IntegrityError:
                db.session.rollback()
                return jsonify([{
                    'status': 400,
                    'message': "Opps you can't post that!"
                }])
            return jsonify({"status": 200})
    else:
        return jsonify({"status": 404})
コード例 #20
0
def add_review(request, wine_id):
    wine = get_object_or_404(Wine, pk=wine_id)
    form = ReviewForm(request.POST)
    if form.is_valid():
        rating = form.cleaned_data['rating']
        comment = form.cleaned_data['comment']
        user_name = request.user.username
        review = Review()
        review.wine = wine
        review.user_name = user_name
        review.rating = rating
        review.comment = comment
        review.pub_date = datetime.datetime.now()
        review.save()
        update_clusters()
        # Always return an HttpResponseRedirect after successfully dealing
        # with POST data. This prevents data from being posted twice if a
        # user hits the Back button.
        return HttpResponseRedirect(
            reverse('reviews:wine_detail', args=(wine.id, )))

    return render(request, 'reviews/wine_detail.html', {
        'wine': wine,
        'form': form
    })
コード例 #21
0
ファイル: app.py プロジェクト: kjara715/Capstone
def review_for(saved_drink_id):
    """Returns and processes form to make a review for a drink"""

    if not g.user:
        flash("Access unauthorized.", "danger")
        return redirect("/")

    form = ReviewForm()

    saved_drink=Saved_recipe.query.get(saved_drink_id)
    
    if form.validate_on_submit():

        if form.image.data:
            display_img=form.image.data
        else:
            display_img="https://banner2.cleanpng.com/20190714/uvh/kisspng-martini-cocktail-glass-clip-art-vector-graphics-home-forty-two-peterborough-5d2b093a9f6130.8579484215631014986528.jpg"

        review = Review(
            drink_id= saved_drink.drink.id,
            rating=round(float(form.rating.data),2),
            review=form.review.data,
            image=display_img,
            user_id=g.user.id
        )
        
        db.session.add(review)    
        db.session.commit()

        return redirect("/")

    return render_template("single_review.html", saved_drink=saved_drink, form=form)
コード例 #22
0
def build_db(filename):
    # Delete existing DB
    if os.path.exists(f"{filename}.sqlite3"):
        os.remove(f"{filename}.sqlite3")
    # Create DB structure
    db.create_all()
    # Add data to the DB
    with open(f"{filename}.csv") as f:
        content = csv.reader(f)
        next(content)
        for line in content:
            #  add book info to my database and then commit it
            book = Book(
                bookID = line[0],
                bookName = line[1],
                bookAuthor = line[2],
            ) 
            #  add user info to my database and then commit it 
            review = Review(
                 isbnID = line[5],
                 averageReview = line[3],
                 ratingsCount = line[8],
            )
            #  add student to my database and then commit it 
            publisher = Publisher(
                bookID = line[0],
                isbnID = line[5],
                bookPublisher = line[11],
            )
            db.session.add(review)
            db.session.add(publisher)
            db.session.add(book)
        db.session.commit()
コード例 #23
0
ファイル: app.py プロジェクト: peavock/BeerBook
def handle_review_page(beer_id):
    """Page with form to fill out review of beer and submit"""
    if CURR_USER_KEY in session:
        form = ReviewForm()
        response = requests.get(f"{API_BASE_URL}/beers",
                                params={
                                    'key': API_KEY,
                                    'ids': beer_id
                                })

        beer = response.json()["data"][0]

        user_id = session[CURR_USER_KEY]

        if form.validate_on_submit():

            new_review = Review(beer_name=beer["name"],
                                user_id=user_id,
                                beer_id=beer_id,
                                rating=form.rating.data,
                                text=form.text.data)

            db.session.add(new_review)
            db.session.commit()

            flash("Review submitted!", "success")

            return redirect(f"/user/{user_id}/reviews")

        else:
            return render_template("beer/review.html", form=form, beer=beer)

    else:
        flash("Please Log-In First", "danger")
        return redirect("/")
コード例 #24
0
def show(course_id):
    course = Course.query.get(course_id)

    if request.method == "POST":
        review = Review(**review_params())
        db.session.add(review)
        db.session.commit()
        course.rating_num = course.rating_num + 1
        course.rating_sum = course.rating_sum + int(request.form.get('rating'))
        db.session.add(course)
        db.session.commit()
        flash("Отзыв успешно оставлен", "success")

        return redirect(
            url_for('courses.show', course_id=course_id, course=course))

    ncur = []
    cur = None
    for review in course.reviews:
        if current_user.is_authenticated:
            if current_user.id != review.user_id:
                ncur.append(review)
            else:
                cur = review
        else:
            ncur = course.reviews

    return render_template('courses/show.html',
                           course=course,
                           ncur=ncur,
                           cur=cur)
コード例 #25
0
def get_place_rev(place_id):
    """
    Retrieves list of all Review objects and creates an instance as well
    """
    place = storage.get("Place", place_id)

    if place is None:
        abort(404)

    if request.method == 'GET':
        return jsonify([
            obj.to_dict() for obj in storage.all("Review").values()
            if obj.place_id == place_id
        ])

    if request.method == 'POST':
        if not request.json:
            abort(400, 'Not a JSON')
        if 'user_id' not in request.json:
            abort(400, 'Missing user_id')
        if 'text' not in request.json:
            abort(400, 'Missing text')
        data = request.get_json().get('text')
        user_id = request.get_json().get('user_id')
        user = storage.get('User', user_id)
        if user is None:
            abort(404)
        new_review = Review(user_id=user_id, text=data, place_id=place_id)
        new_review.save()
        return make_response(jsonify(new_review.to_dict()), 201)
コード例 #26
0
def show(course_id):
    course = Course.query.get(course_id)
    checker = False
    if request.method == "POST":
        review = Review(**review_params())
        db.session.add(review)
        db.session.commit()
        course.rating_num = course.rating_num + 1
        course.rating_sum = course.rating_sum + int(request.form.get('rating'))
        db.session.add(course)
        db.session.commit()
        flash('Ваш комментарий был успешно добавлен!', 'success')
        return redirect(
            url_for("courses.show", course_id=course_id, course=course))
    reviews = Review.query.filter(Review.course_id == course_id)
    users = User.query
    if current_user.is_authenticated:
        for review in reviews:
            if review.user_id == current_user.id:
                checker = True
    reviews = reviews.order_by(Review.created_at.desc()).limit(5)

    return render_template('courses/show.html',
                           course=course,
                           reviews=reviews,
                           users=users,
                           checker=checker)
コード例 #27
0
 def test_child_review(self):
     """ Tests if the class User is a child class """
     review = Review()
     self.assertIsInstance(Review, BaseModel)
     self.assertTrue(hasattr(review, "id"))
     self.assertTrue(hasattr(review, "created_at"))
     self.assertTrue(hasattr(review, "updated_at"))
コード例 #28
0
 def post(self):
     person = None
     if self.request.get("email").lower() != "":
         if not getPersonObjectByEmail(self.request.get("email").lower()):
             person = Person()
             person.firstName = self.request.get("first_name").lower()
             person.lastName = self.request.get("last_name").lower()
             person.email = self.request.get("email").lower()
             person.put()
         else:
             person = getPersonObjectByEmail(
                 self.request.get("email").lower())
         review = None
         if not getReviewObject(
                 person.key):  # person hasn't submitted a review.
             review = Review(parent=person.key)
             review.rating = int(self.request.get("rating").lower())
             review.subject = "no subject"
             review.message = self.request.get("message_body")
             review.visitFrequency = self.request.get("visit_frequency")
             putReviewObject(review)
     else:
         pass
     review_template = jinja_env.get_template("templates/reviews.html")
     self.response.headers['Content-Type'] = 'text/html'
     self.response.out.write(review_template.render(renderAllReviews()))
コード例 #29
0
ファイル: views.py プロジェクト: wjzhwht/jeeves
def submit_review_view(request):
    import forms
    user = UserProfile.objects.get(username=request.user.username)

    try:
        if request.method == 'GET':
            paper_id = int(request.GET['id'])
        elif request.method == 'POST':
            paper_id = int(request.POST['id'])
        paper = Paper.objects.filter(id=paper_id).get()
        review = Review()
        review.paper = paper
        review.reviewer = user
        if request.method == 'POST':
            form = forms.SubmitReviewForm(request.POST, instance=review)
            if form.is_valid():
                form.save(paper)
                return HttpResponseRedirect("paper?id=%s" % paper_id)
        else:
            form = forms.SubmitReviewForm()
    except (ValueError, KeyError, Paper.DoesNotExist):
        paper = None
        form = None

    return render(request, "submit_review.html", {
        'form': form,
        'paper': paper,
        'which_page': "submit_review",
    })
コード例 #30
0
def post_review(request, template="reviews/post_review.html"):
    """
    View used to post a new review
    """
    if request.method == 'POST':
        form = ReviewForm(request.POST)
        # get values
        s = request.GET.get('s', '')
        t = request.POST['title']
        c = request.POST['content']
        r = request.POST['rating']
        # get product
        item = get_object_or_404(Product, slug=s)
        # new review
        rev = Review(title=t,
                     content=c,
                     product=item,
                     sender=request.user,
                     slug=slugify(t))
        rev.save()
        # add rating for the product
        item.votes = item.votes + 1
        item.total_rating = item.total_rating + int(r)
        item.save()
        # done!
        return HttpResponseRedirect("/")
    else:
        form = ReviewForm()

    return render_to_response(template, {'form': form},
                              context_instance=RequestContext(request))