def blacklist_view(request): blacklist = BlackList.objects.filter(user=request.user ).order_by('-blacklisted_user').select_related( 'blacklisted_tag', 'blacklisted_user') context = {} context['blacklist'] = blacklist return render_template(request, 'blog/user_blacklist.html', context)
def profile_edit(request): user = request.user if 'openid_pk' in request.session: openid_pk = request.session['openid_pk'] openid = get_object_or_404(OpenID, pk=openid_pk) useropenid, created = UserOpenID.objects.get_or_create(openid=openid, defaults={'user':user}) del request.session['openid_pk'] return redirect('profile_edit') profile = user.get_profile() form_p = FormProcessor(ProfileEditForm, request, instance=profile) form_p.process() if form_p.is_valid(): profile = form_p.form.save() new_email = form_p.data.get('email') if not user.email and new_email: user.email = new_email user.save() elif new_email and user.email != new_email: token = hashlib.sha1('%s%s%s'%(new_email, settings.SECRET_KEY, random.randint(42, 424242))).hexdigest() confirm_url = 'http://%s%s'%(request.get_host(), reverse('confirm_jid', kwargs={'token':token})) cache.set(token, new_email, 60*5) send_alert(user, '''Confirm url for change jid from %s to %s: \n%s'''%(user.email, new_email, confirm_url)) return redirect('profile_edit') secret_hash = hashlib.sha1("%s%s"%(random.randint(42,424242), settings.SECRET_KEY)).hexdigest() request.session['openid_secret_hash'] = secret_hash context = {} context['secret_hash'] = secret_hash context['user_profile'] = profile context['profile_form'] = form_p.form context['providers'] = OpenID.PROVIDER_CHOICES return render_template(request, 'blog/profile_edit.html', context)
def login(request): if 'openid_pk' in request.session: openid_pk = request.session['openid_pk'] is_new_user = False openid = get_object_or_404(OpenID, pk=openid_pk) try: useropenid = UserOpenID.objects.get(openid=openid) user = useropenid.user except UserOpenID.DoesNotExist: user = User.objects.create(username=get_randstr()) useropenid, create = UserOpenID.objects.get_or_create(user=user, openid=openid) openid_profile_data = openid.get_profile_data() if openid_profile_data and 'photo' in openid_profile_data: profile = user.get_profile() profile.update_avatar_from_data(urllib.urlopen(openid_profile_data['photo']).read()) is_new_user = True del request.session['openid_pk'] login_user(request, user) if is_new_user: return redirect("profile_edit") return redirect('/') secret_hash = hashlib.sha1("%s%s"%(random.randint(42,424242), settings.SECRET_KEY)).hexdigest() request.session['openid_secret_hash'] = secret_hash context = {} context['secret_hash'] = secret_hash context['settings'] = settings context['providers'] = OpenID.PROVIDER_CHOICES return render_template(request, 'blog/login.html', context)
def handler500(request, template_name='500.html'): """ 500 error handler. Templates: `500.html` Context: MEDIA_URL Path of static media (e.g. "media.example.org") """ resp = render_template(request, template_name) resp.status_code = 500 return resp
def post_view(request, post_pk): if 'tree' in request.GET: is_tree = bool(request.GET.get('tree')) res = redirect('post_view', post_pk=post_pk) if is_tree: res.set_cookie('comments_tree', is_tree) else: res.delete_cookie('comments_tree') return res is_tree = request.COOKIES.get('comments_tree') page = request.GET.get('page', 1) post = BlogInterface(request.user).get_post_with_comments(post_pk, as_tree=is_tree, get_recommends=True) comments = post.comments_post try: page = int(page) except ValueError: return redirect('post_view', post_pk) paginate = Paginator(comments, COMMENTS_PER_PAGE) try: page = paginate.page(page) except (EmptyPage, InvalidPage): page = paginate.page(paginate.num_pages) comments = page.object_list reply_to = request.GET.get('reply_to') if reply_to: reply_to = get_object_or_404(Comment, post=post_pk, number=reply_to) form_p = FormProcessor(PostForm, request) form_p.process() if form_p.is_valid(): message = form_p.data['body'] Comment.add_comment(post, request.user, message, reply_to) return redirect('post_view', post_pk=post.pk) context = {} context['post'] = post context['user_blog'] = post.user context['page'] = page context['comments'] = comments context['is_tree'] = is_tree context['recommends'] = post.recommend_users context['reply_form'] = form_p.form context['reply_to'] = reply_to return render_template(request, 'blog/post_view.html', context)
def reply_add(request, post_pk, reply_to=None): post = get_object_or_404(Post, pk=post_pk) if reply_to: reply_to = get_object_or_404(Comment, post=post_pk, number=reply_to) form_p = FormProcessor(PostForm, request) form_p.process() if form_p.is_valid(): user = request.user data = form_p.data message = data['body'] Comment.add_comment(post, user, message, reply_to) return redirect('post_view', post_pk=post.pk) context = {} context['form'] = form_p.form return render_template(request, 'blog/post_add.html', context)
def user_list(request, my_readers=False, i_read=False, username=None): if username: user = get_object_or_404(User, username=username) else: user = request.user if not user.is_authenticated(): i_read = False my_readers = False users = User.objects.filter().select_related("profile").exclude(username='******') if i_read: users = User.objects.filter(subscribed_user__user=user, subscribed_user__is_deleted=False) elif my_readers: users = User.objects.filter(me_subscribe__subscribed_user=user, me_subscribe__is_deleted=False) users = Profile.attach_user_info(users).order_by('-my_readers_count')[:100] context = {} context['users'] = users return render_template(request, 'blog/user_list.html', context)
def post_add(request): from jabber_daemon.command_resolver import command_patterns form_p = FormProcessor(PostForm, request) form_p.process() if form_p.is_valid(): data = form_p.data message = data['body'] if not command_patterns.find_command(message): user = request.user post = post_in_blog(message, user, 'web') if not post: return redirect('post_add') post_body = render_post(post) send_subscribes_broadcast(Subscribed.get_all_subscribes_by_post(post), post_body, exclude_user=[user]) return redirect('post_view', post_pk=post.pk) return redirect('post_add') context = {} context['form'] = form_p.form return render_template(request, 'blog/post_add.html', context)
def handler404(request, template_name='404.html'): """ """ resp = render_template(request, template_name) resp.status_code = 404 return resp
def help(request): context = {} context['settings'] = settings return render_template(request, 'blog/help.html', context)
def main(request): context = {} return render_template(request, 'blog/main.html', context)
paginate = Paginator(posts, PER_PAGE) try: page = paginate.page(page) except (EmptyPage, InvalidPage): page = paginate.page(paginate.num_pages) posts = page.object_list posts = posts.select_related_tag() context = {} context['user_blog'] = user context['posts'] = posts context['page'] = page return render_template(request, 'blog/user_blog.html', context) #TODO: Переместить в settings COMMENTS_PER_PAGE = 500 def post_view(request, post_pk): if 'tree' in request.GET: is_tree = bool(request.GET.get('tree')) res = redirect('post_view', post_pk=post_pk) if is_tree: res.set_cookie('comments_tree', is_tree) else: res.delete_cookie('comments_tree') return res is_tree = request.COOKIES.get('comments_tree')