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, }
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), }