예제 #1
0
def pastes(request, username):
    user = get_object_or_404(User, username = username)
    blasts = user.blasts.exclude(extended = None).exclude(extended = '')
    return render(request, 'pastes.html', {
        'profile': user,
        'blasts': prepare_blasts(blasts, request.user),
    })
예제 #2
0
파일: views.py 프로젝트: cmcsun/bugle
def files(request, username):
    user = get_object_or_404(User, username = username)
    blasts = user.blasts.exclude(attachment = '')
    return render(request, 'files.html', {
        'section': 'files',
        'profile': user,
        'blasts': prepare_blasts(blasts, request.user),
    })
예제 #3
0
파일: views.py 프로젝트: cmcsun/bugle
def profile(request, username):
    user = get_object_or_404(User, username = username)
    return render(request, 'profile.html', {
        'profile': user,
        'blasts': prepare_blasts(
            user.blasts.all(), request.user, bundle=False
        ),
        'show_delete': request.user == user,
    })
예제 #4
0
파일: views.py 프로젝트: cmcsun/bugle
def delete(request):
    if request.user.is_anonymous():
        return redirect('/login/')
    
    blast = get_object_or_404(Blast, pk = request.POST.get('id', ''))
    if blast.user == request.user:
        blast.delete()
    
    return redirect('/%s/' % request.user)
예제 #5
0
def favourites(request, username):
    user = get_object_or_404(User, username = username)
    blasts = Blast.objects.filter(
        favourited_by = user
    )
    return render(request, 'favourites.html', {
        'profile': user,
        'blasts': prepare_blasts(blasts, request.user),
    })
예제 #6
0
def mentions(request, username):
    user = get_object_or_404(User, username = username)
    blasts = Blast.objects.filter(
        Q(mentioned_users = user) | Q(is_broadcast = True)
    ).distinct()
    return render(request, 'mentions.html', {
        'profile': user,
        'blasts': prepare_blasts(blasts, request.user),
        'initial_blast': '@%s ' % username,
    })
예제 #7
0
def todos(request, username):
    user = get_object_or_404(User, username = username)
    blasts = Blast.objects.filter(is_todo = True).filter(
        Q(user = user) | Q(mentioned_users = user) | Q(is_broadcast = True)
    ).distinct()
    if request.user.username == username:
        initial_blast = 'todo: '
    else:
        initial_blast = 'todo: @%s ' % username
    return render(request, 'todos.html', {
        'profile': user,
        'blasts': prepare_blasts(blasts, request.user),
        'initial_blast': initial_blast,
    })
예제 #8
0
파일: views.py 프로젝트: cmcsun/bugle
def favourite(request):
    if request.user.is_anonymous():
        return redirect('/login/')
    key = [k for k in request.POST.keys() if 'fave' in k][0].split('.')[0]
    # key will now be uncheck-45 or check-23
    verb, pk = key.split('-')
    blast = get_object_or_404(Blast, pk = pk)
    # Check the user is allowed to modify this blast
    blast.set_viewing_user(request.user)
    if not blast.user_can_favourite():
        return HttpResponse('You are not allowed to favourite that')
    if verb == 'fave':
        blast.favourited_by.add(request.user)
    if verb == 'notfave':
        blast.favourited_by.remove(request.user)
    return redirect(request.POST.get('back_to', '') or '/')
예제 #9
0
파일: views.py 프로젝트: cmcsun/bugle
def toggle(request):
    if request.user.is_anonymous():
        return redirect('/login/')
    key = [k for k in request.POST.keys() if 'check' in k][0].split('.')[0]
    # key will now be uncheck-45 or check-23
    verb, pk = key.split('-')
    blast = get_object_or_404(Blast, pk = pk)
    # Check the user is allowed to modify this blast
    blast.set_viewing_user(request.user)
    if not blast.viewing_user_can_mark_done():
        return HttpResponse('You are not allowed to check off that task')
    if verb == 'check':
        blast.done = True
    if verb == 'uncheck':
        blast.done = False
    blast.save()
    return redirect(request.POST.get('back_to', '') or '/')