Пример #1
0
Файл: views.py Проект: pdc/kanbo
def board_detail(request, owner, board):
    if not board.allows_add_remove_user(request.user):
        add_user_form = None
    elif request.method == 'POST':
        add_user_form = AccessForm(request.POST, instance=Access(board=board))
        if add_user_form.is_valid():
            add_user_form.save(message_callback=lambda msg: messages.info(request, msg))
            return redirect_to_board_detail(board)
    else:
        add_user_form = AccessForm(instance=Access(board=board)) # blank form

    collaborators = board.collaborators.all()
    for x in collaborators:
        x.can_rearrange = board.allows_rearrange(x)

    popup_path = reverse('new-card-popup', kwargs={
        'owner_username': board.owner.username,
        'board_name': board.name})
    popup_url = request.build_absolute_uri(popup_path)
    features = {
        'width': 600,
        'height': 200,
    }
    features.update((x, 'no') for x in ['location', 'menubar', 'status', 'toolbar'])
    features.update((x, 'yes') for x in ['resizable', 'scrollbar'])
    bookmarklet_url = "javascript:d=document,e=escape,x=d.getElementsByTagName('h1');window.open('{url}?title='+e(d.title)+'&h1='+e(x.length?x[0].textContent:'')+'&url='+e(d.location),'new-card','{features}');void(0)".format(
        url=popup_url,
        features=','.join('{0}={1}'.format(k, v) for (k, v) in sorted(features.items()))
    )

    return {
        'board': board,
        'collaborators': collaborators,
        'any_cant_rearrange': any(not x.can_rearrange for x in collaborators),
        'bags': board.bag_set.all(),
        'allows_add_remove_user': board.allows_add_remove_user(request.user),
        'add_user_form': add_user_form,
        'bookmarklet_url': bookmarklet_url,
    }
Пример #2
0
Файл: views.py Проект: pdc/kanbo
def add_user(request, owner, board):
    if not board.allows_add_remove_user(request.user):
        messages.info(request, 'You can’t add users to this board.')
        return redirect_to_board_detail(board)

    if request.method == 'POST':
        print ' request.POST', request.POST
        form = AccessForm(request.POST, instance=Access(board=board))
        if form.is_valid():
            try:
                access = Access.objects.get(user=form.cleaned_data['user'], board=board)
                access.can_rearrange = form.cleaned_data['can_rearrange']
                access.save()
                messages.info(request, '{0} was already a member.'.format(access.user.username))
            except Access.DoesNotExist:
                access = form.save()
            return redirect_to_board_detail(board)
    else:
        form = AccessForm(instance=Access(board=board)) # blank form
    return {
        'form': form,
        'non_field_errors': form.errors.get(NON_FIELD_ERRORS),
    }