def profile(request, user_id): try: user = User.objects.get(username=user_id) except User.DoesNotExist: try: user = User.objects.get(id=user_id) except (User.DoesNotExist, ValueError): raise Http404 if request.user.is_staff: if request.method == 'POST': form = AdminProfileForm(instance=user, data=request.POST) if form.is_valid(): form.save() messages.success(request, _('Your profile has been updated.')) return redirect('profiles:profile', user_id=user.username) else: form = AdminProfileForm(instance=user) else: form = None qs = (Action.objects.filter(user=user).select_related( 'new_language', 'new_language__video', 'video', 'user')) extra_context = { 'user_info': user, 'form': form, } return object_list(request, queryset=qs, allow_empty=True, paginate_by=settings.ACTIVITIES_ONPAGE, template_name='profiles/view.html', template_object_name='action', extra_context=extra_context)
def videos(request, user_id=None): if user_id: try: user = User.objects.get(username=user_id) except User.DoesNotExist: try: user = User.objects.get(id=user_id) except (User.DoesNotExist, ValueError): raise Http404 qs = Video.objects.filter(user=user).order_by('-edited') q = request.REQUEST.get('q') if q: qs = qs.filter(Q(title__icontains=q) | Q(description__icontains=q)) context = {'user_info': user, 'query': q} qs = qs._clone(OptimizedQuerySet) return object_list(request, queryset=qs, paginate_by=VIDEOS_ON_PAGE, template_name='profiles/videos.html', extra_context=context, template_object_name='user_video')
def videos(request, user_id): try: user = User.objects.get(username=user_id) if not user.is_active: raise Http404 except User.DoesNotExist: try: user = User.objects.get(id=user_id) except (User.DoesNotExist, ValueError): raise Http404 qs = Video.objects.filter(user=user).order_by('-edited') if not (request.user == user or request.user.is_superuser): qs = qs.filter(is_public=True) q = request.GET.get('q') if q: qs = qs.filter(Q(title__icontains=q) | Q(description__icontains=q)) context = {'user_info': user, 'query': q} qs = qs._clone() return object_list(request, queryset=qs, paginate_by=VIDEOS_ON_PAGE, template_name='profiles/videos.html', extra_context=context, template_object_name='user_video')
def message(request, message_id): user = request.user messages = Message.objects.for_user_or_author(user).filter(id=message_id) if len(messages) != 1: return HttpResponseForbidden("Not allowed") hide_thread = request.GET.get('hide_thread') message_thread = Message.objects.thread(messages[0], user) message_thread_length = message_thread.count() if not hide_thread: messages = message_thread reply = request.GET.get('reply') if reply: try: reply_msg = Message.objects.get(pk=reply, user=user) reply_msg.read = True reply_msg.save() extra_context['reply_msg'] = reply_msg except (Message.DoesNotExist, ValueError): pass messages.filter(user=user).update(read=True) extra_context = { 'send_message_form': SendMessageForm(request.user, auto_id='message_form_id_%s'), 'messages_display': True, 'user_info': user, 'subject': messages[0].subject, 'mid': message_id, 'thread_length': message_thread_length } response = object_list(request, queryset=messages, paginate_by=MESSAGES_ON_PAGE, template_name='messages/message.html', template_object_name='message', extra_context=extra_context) try: last_message = messages[0] max_age = 60 * 60 * 24 * 365 expires = cookie_date(time.time() + max_age) response.set_cookie(Message.hide_cookie_name, last_message.pk, max_age, expires) except Message.DoesNotExist: pass return response
def actions_list(request, video_id): video = get_object_or_404(Video, video_id=video_id) qs = Action.objects.for_video(video) extra_context = {'video': video} return object_list(request, queryset=qs, allow_empty=True, paginate_by=settings.ACTIVITIES_ONPAGE, template_name='videos/actions_list.html', template_object_name='action', extra_context=extra_context)
def inbox(request, message_pk=None): user = request.user qs = Message.objects.for_user(user) extra_context = { 'send_message_form': SendMessageForm(request.user, auto_id='message_form_id_%s'), 'messages_display': True, 'user_info': user } type_filter = request.GET.get('type') if type_filter: if type_filter != 'any': qs = qs.filter(message_type=type_filter) reply = request.GET.get('reply') if reply: try: reply_msg = Message.objects.get(pk=reply, user=user) reply_msg.read = True reply_msg.save() extra_context['reply_msg'] = reply_msg except (Message.DoesNotExist, ValueError): pass filtered = bool(set(request.GET.keys()).intersection(['type'])) extra_context['type_filter'] = type_filter extra_context['filtered'] = filtered response = object_list(request, queryset=qs, paginate_by=MESSAGES_ON_PAGE, template_name='messages/inbox.html', template_object_name='message', extra_context=extra_context) try: last_message = qs[:1].get() max_age = 60 * 60 * 24 * 365 expires = cookie_date(time.time() + max_age) response.set_cookie(Message.hide_cookie_name, last_message.pk, max_age, expires) except Message.DoesNotExist: pass return response
def sent(request): user = request.user qs = Message.objects.for_author(request.user) extra_context = { 'send_message_form': SendMessageForm(request.user, auto_id='message_form_id_%s'), 'messages_display': True, 'user_info': user } return object_list(request, queryset=qs, paginate_by=MESSAGES_ON_PAGE, template_name='messages/sent.html', template_object_name='message', extra_context=extra_context)
def inbox(request, message_pk=None): user = request.user qs = Message.objects.for_user(user) extra_context = { 'send_message_form': SendMessageForm(request.user, auto_id='message_form_id_%s'), 'messages_display': True, 'user_info': user } type_filter = request.GET.get('type') if type_filter: if type_filter != 'any': qs = qs.filter(message_type=type_filter) reply = request.GET.get('reply') if reply: try: reply_msg = Message.objects.get(pk=reply, user=user) reply_msg.read = True reply_msg.save() extra_context['reply_msg'] = reply_msg except (Message.DoesNotExist, ValueError): pass filtered = bool(set(request.GET.keys()).intersection(['type'])) extra_context['type_filter'] = type_filter extra_context['filtered'] = filtered response = object_list(request, queryset=qs, paginate_by=MESSAGES_ON_PAGE, template_name='messages/inbox.html', template_object_name='message', extra_context=extra_context) if qs: request.user.set_last_hidden_message_id(request, qs[0].id) return response