コード例 #1
0
ファイル: views.py プロジェクト: kolko/upTee
def server_votes(request, server_id):
    server = get_object_or_404(Server.by_owner.for_user(request.user).select_related().filter(is_active=True), pk=server_id)
    if request.method == 'POST':
        vote = Vote(server=server, command='command', title='New vote')
        vote.save()
    votes = server.config_votes.all()
    return render_to_response('mod/server_detail_votes.html', {
        'server': server,
        'votes': votes
    }, context_instance=RequestContext(request))
コード例 #2
0
ファイル: views.py プロジェクト: digideskio/upTee
def server_edit_votes(request, server_id):
    server = get_object_or_404(Server.active.select_related(), pk=server_id)
    moderator = server.moderators.filter(user=request.user)
    if server.owner != request.user and (not moderator or not moderator[0].edit_votes_allowed):
        raise Http404
    moderator = moderator[0] if moderator else None
    if request.method == 'POST':
        vote = Vote(server=server, command='command', title='New vote')
        vote.save()
    votes = server.config_votes.all()
    return render_to_response('mod/server_detail_edit_votes.html', {
        'server': server,
        'votes': votes,
        'moderator': moderator
    }, context_instance=RequestContext(request))
コード例 #3
0
ファイル: views.py プロジェクト: upTee/upTee
def server_edit_votes(request, server_id):
    server = get_object_or_404(Server.active.select_related(), pk=server_id)
    moderator = server.moderators.filter(user=request.user)
    if server.owner != request.user and (not moderator or not moderator[0].edit_votes_allowed):
        raise Http404
    moderator = moderator[0] if moderator else None
    if request.method == 'POST':
        vote = Vote(server=server, command='command', title='New vote')
        vote.save()
    votes = server.config_votes.all()
    return render_to_response('mod/server_detail_edit_votes.html', {
        'server': server,
        'votes': votes,
        'moderator': moderator
    }, context_instance=RequestContext(request))
コード例 #4
0
ファイル: views.py プロジェクト: digideskio/upTee
def update_votes(request, server_id):
    server = get_object_or_404(Server.active.select_related(), pk=server_id)
    moderator = server.moderators.filter(user=request.user)
    if server.owner != request.user and not moderator:
        raise Http404
    moderator = moderator[0] if moderator else None
    if server.owner != request.user and not moderator.edit_votes_allowed:
        raise Http404
    next = request.REQUEST.get('next', reverse('server_edit_votes', kwargs={'server_id': server.id}))
    votes = server.config_votes.all()
    post = request.POST.copy()
    id_done_list = []
    title_done_list = []
    for key in post:
        if ' ' not in key:
            continue
        input_type = key.split(' ', 1)[0]
        if input_type not in ['title', 'command']:
            continue
        vote_id = key.rsplit(' ', 1)[-1]
        if vote_id == 'new':
            if not post[key]:
                continue
            vote_id = key.rsplit(' ', 2)[-2]
            if vote_id in id_done_list:
                continue
            if vote_id.isdigit:
                if input_type == 'title':
                    if post[key] in title_done_list:
                        continue
                    other = 'command'
                else:
                    other = 'title'
                vars()[input_type] = post[key]
                for _key in post:
                    if not post[_key] and ' ' not in _key:
                        continue
                    if _key.rsplit(' ', 1)[-1] == 'new' and _key.split(' ', 1)[0] == other:
                        check_id = key.rsplit(' ', 2)[-2]
                        if check_id == vote_id:
                            if input_type == 'command':
                                if post[_key] in title_done_list:
                                    break
                            vars()[other] = post[_key]
                            new_vote = Vote(server=server, command=vars()['command'], title=vars()['title'])
                            new_vote.save()
                            id_done_list.append(vote_id)
                            title_done_list.append(vars()['title'])
                            break
        elif vote_id.isdigit():
            if input_type == 'title':
                vote = votes.filter(title=post[key]).exclude(pk=vote_id)
                if vote:
                    vote.delete()
            vote = votes.filter(pk=vote_id)
            if len(vote) != 1:
                continue
            vote = vote[0]
            if not post[key]:
                vote.delete()
            else:
                setattr(vote, input_type, post[key])
                vote.save()
    return render_to_response('mod/settings_updated.html', {'next': next}, context_instance=RequestContext(request))
コード例 #5
0
ファイル: views.py プロジェクト: upTee/upTee
def update_votes(request, server_id):
    server = get_object_or_404(Server.active.select_related(), pk=server_id)
    moderator = server.moderators.filter(user=request.user)
    if server.owner != request.user and not moderator:
        raise Http404
    moderator = moderator[0] if moderator else None
    if server.owner != request.user and not moderator.edit_votes_allowed:
        raise Http404
    next = request.REQUEST.get('next', reverse('server_edit_votes', kwargs={'server_id': server.id}))
    votes = server.config_votes.all()
    post = request.POST.copy()
    id_done_list = []
    title_done_list = []
    for key in post:
        if ' ' not in key:
            continue
        input_type = key.split(' ', 1)[0]
        if input_type not in ['title', 'command']:
            continue
        vote_id = key.rsplit(' ', 1)[-1]
        if vote_id == 'new':
            if not post[key]:
                continue
            vote_id = key.rsplit(' ', 2)[-2]
            if vote_id in id_done_list:
                continue
            if vote_id.isdigit:
                if input_type == 'title':
                    if post[key] in title_done_list:
                        continue
                    other = 'command'
                else:
                    other = 'title'
                vars()[input_type] = post[key]
                for _key in post:
                    if not post[_key] or ' ' not in _key:
                        continue
                    if _key.rsplit(' ', 1)[-1] == 'new' and _key.split(' ', 1)[0] == other:
                        check_id = key.rsplit(' ', 2)[-2]
                        if check_id == vote_id:
                            if input_type == 'command':
                                if post[_key] in title_done_list:
                                    break
                            vars()[other] = post[_key]
                            new_vote = Vote(server=server, command=vars()['command'].splitlines()[0], title=vars()['title'].splitlines()[0])
                            new_vote.save()
                            id_done_list.append(vote_id)
                            title_done_list.append(vars()['title'])
                            break
        elif vote_id.isdigit():
            if input_type == 'title':
                vote = votes.filter(title=post[key]).exclude(pk=vote_id)
                if vote:
                    vote.delete()
            vote = votes.filter(pk=vote_id)
            if len(vote) != 1:
                continue
            vote = vote[0]
            if not post[key]:
                vote.delete()
            else:
                setattr(vote, input_type, post[key].splitlines()[0])
                vote.save()
    return render_to_response('mod/settings_updated.html', {'next': next}, context_instance=RequestContext(request))