예제 #1
0
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)
예제 #2
0
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')
예제 #3
0
파일: views.py 프로젝트: rnarimani/unisubs
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')
예제 #4
0
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
예제 #5
0
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)
예제 #6
0
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
예제 #7
0
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)
예제 #8
0
파일: views.py 프로젝트: thi517/unisubs
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