def get_item_details(item, request): the_reviews = Review.get_for_object(item) reviews_count = settings.DEFAULT_REVIEWS_COUNT if request.user.is_authenticated() else 1 data = { "id": item.id, "title": unicode(item), "url": item.get_absolute_url(), "description": defaultfilters.linebreaksbr(item.description), "cover": item.get_cover(), "release_date": defaultfilters.date(item.release_date) if item.release_date else None, "publisher": { "name": item.publisher.name if item.publisher else None, "url": item.publisher.get_absolute_url() if item.publisher else None, }, "esrb": item.rating.title if item.rating else None, "number_of_players": item.number_of_players, "number_of_online_players": item.number_of_online_players, "genres": [ {"name": unicode(x), "url": "%s?genre=%d" % (reverse("catalog:category", args=[item.category.slug]), x.id)} for x in item.genres.all() ], "tags": [{"name": unicode(x), "url": x.get_absolute_url()} for x in item.tags.all()], "platform": {"name": item.category.description, "url": item.category.get_absolute_url()}, "also_on": [{"name": x.category.description, "url": x.get_absolute_url()} for x in item.also_on()], "reviews": { "count": the_reviews.count(), "items": [get_review_details(r, request) for r in the_reviews[:reviews_count]], }, "screenshots": item.get_screenshots(), "media_details": reverse("catalog:item_action", args=[item.slug, item.id, "media-details"]), "authenticated": request.user.is_authenticated(), "actions": {}, } data.update(get_item_ratio(item, request)) if request.user.is_authenticated(): data["reviews"]["form"] = render_review_form(request, item) # if item.available_for_selling(): data["actions"]["buy"] = {"url": reverse("cart:add", args=[item.id]), "price": item.get_retail_prices_display()} # if item.rent_flag: if request.user.is_authenticated(): msg = "<em>AVAILABILITY</em></br> %s" % item.get_rent_status(request.user) else: msg = 'Only <a href="%s" class="link-dialog">$%s</a> a month' % ( reverse("new_rent:sign_up"), get_minimal_rent_charge(), ) data["actions"]["rent"] = {"url": reverse("rent:add", args=[item.id]), "price": msg} # if item.rent_flag: data["actions"]["trade"] = {"url": reverse("trade:add", args=[item.id]), "price": item.get_trade_prices_display()} return data
for (receiver, response) in responses: if response == False: return CommentPostBadRequest( "comment_will_be_posted receiver %r killed the comment" % receiver.__name__) # Save the comment and signal that it was saved comment.save() signals.comment_was_posted.send( sender = comment.__class__, comment = comment, request = request ) if request.is_ajax(): item = comment.content_object return JsonResponse({ 'status': 'ok', 'review': get_review_details(comment, request), 'review_count': Review.get_for_object(item).count(), 'item_ratio': get_item_ratio(item, request), 'item': get_item_details(item, request), 'form': render_review_form(request, item), }) return next_redirect(data, next, comment_done, c=comment._get_pk_val()) comment_done = confirmation_view( template = "comments/posted.html", doc = """Display a "comment was posted" success page.""" )