def show_text(request, text_id): text = get_object_or_404(Text, id=text_id) if request.user.is_anonymous() or (not text.user == request.user and not request.user.is_staff): # only text owner can see own hidden texts if text.is_hidden == 1: return HttpResponseForbidden("403 Forbidden") else: text.can_change = 1 if request.GET.get('rate', None): text.rate(request.user, request.GET.get('rate', None)) client_address = request.META['REMOTE_ADDR'] text.visit(client_address) text.visit_count = text.get_visit_count() text.can_rate = text._can_rate(request.user) # if current user is subscribed on this author then set text as read # check if current user is not anonymous if not request.user.is_anonymous(): # check if user is subscribed on author of current text if Subscription.objects.filter(subscriber=request.user, publisher=text.user, is_active=True).count() > 0: # check if user already read current text if Read_text.objects.filter(text=text, read_by=request.user).count() == 0: # create record that current text was read by user read_text = Read_text(text=text, read_by=request.user) read_text.save() # ------------------------------------------------------------------ # compose title user = User.objects.get(id=text.user.id) # use unicode(text.get_title(), 'UTF-8') try: pageTitle = text.get_title() + ", " + user.get_profile().name + " ( " + user.username + " )" except: pageTitle = text.get_title() pass if not request.user.is_anonymous() and text.type in [1, 2, 3, 5]: is_favorite_enabled = True is_favorite = Favorite.objects.filter(text=text, user=request.user).count() > 0 else: is_favorite_enabled = False is_favorite = False return render_to_response('texts/text_detail.html', {'pagetitle': pageTitle, 'u': request.user, 'text': text, 'type': str(text.type), 'is_favorite': is_favorite, 'is_favorite_enabled': is_favorite_enabled}, context_instance=RequestContext(request))