예제 #1
0
def next(vk_id, body):

    keys = ['1. да', '1.', '1', 'да']
    db.add_voter_num(vk_id)
    if body in keys:
        msg = 'На вашем курсе зарегистрированы следующие кандидаты:\n\n'

        candidates = db.get_candidates(vk_id)

        for num, cand in enumerate(candidates):
            if cand[4]:
                msg += str(num + 1) + '. @id' + str(
                    cand[4]
                ) + ' (' + cand[0] + ' ' + cand[1] + ' ' + cand[2] + ')\n'
            else:
                msg += str(
                    num +
                    1) + '. ' + cand[0] + ' ' + cand[1] + ' ' + cand[2] + '\n'
            msg += 'Анкета: ' + cand[5] + '\n'

            if cand[6]:
                msg += 'Интервью: ' + cand[6] + '\n'

            msg += cand[3] + '\n\n'

        msg += 'Вы можете проголосовать за любое количество кандидатов\n\n'

        msg += 'Выберите кандидатов, за которых вы хотите проголосовать, либо отправьте их номера (по одному в сообщении).\n\n'

        msg += 'Вы также можете проголосовать против всех, отправив 0 (В этом случае вы голосуете за отказ от представительства курса в Студенческом совете)'

        return msg, '4'

    return None, None
예제 #2
0
def next(vk_id, body):
    candidates = db.get_candidates(vk_id)

    cand_keys = []
    for num, keys in enumerate(candidates):
        fullname = keys[0].lower() + ' ' + keys[1].lower(
        ) + ' ' + keys[2].lower()
        fullname = fullname.strip()
        cand_keys.append([fullname])
        cand_keys[num].append(keys[0].lower())
        cand_keys[num].append(str(num + 1) + '. ' + fullname)
        cand_keys[num].append(str(num + 1))
        cand_keys[num].append(str(num + 1) + '.')

        cand_keys[num].append(num)

    choice = None
    for cand in cand_keys:
        if body in cand:
            choice = cand[5]
            break

    if choice is None:
        return None, None

    db.make_choice(vk_id, candidates[choice][7])

    msg = 'Вы выбрали кандидата:\n'
    msg += str(choice + 1) + '. ' + candidates[choice][0] + ' ' + candidates[
        choice][1] + ' ' + candidates[choice][2] + '\n\n'

    if len(candidates) > 1:
        msg += 'Вы можете проголосовать одновременно ещё за других кандидатов:\n'

        for num, keys in enumerate(candidates):
            if num != choice:
                msg += str(
                    num +
                    1) + '. ' + keys[0] + ' ' + keys[1] + ' ' + keys[2] + '\n'

        msg += '\nДля этого выберите кого-то из оставшихся кандидатов, либо отправьте его номер.\n\n'

        msg += 'Чтобы отменить выбор кандидата, нажмите на кнопку с ним повторно или отправьте его номер.\n\n'

        msg += 'Для того, чтобы завершить голосование, выберите соответствующий вариант, либо отправьте 0'

        return msg, '4.1'
    else:
        msg += 'Для того, чтобы подтвердить выбор, отправьте 0.\n\n'

        msg += 'Чтобы отменить выбор кандидата, нажмите на кнопку с ним повторно или отправьте его номер.'

        return msg, '4.1.1'
예제 #3
0
def next(vk_id, body):

    keys = ['0. завершить голосование', '0', '0.', 'завершить']
    if body in keys:
        msg = 'Вы выбрали кандидатов:\n'

        candidates = db.get_candidates(vk_id)

        for num, cand in enumerate(candidates):
            fullname = cand[0] + ' ' + cand[1] + ' ' + cand[2]
            fullname = fullname.strip()

            if cand[8]:
                msg += str(num + 1) + '. ' + fullname + '\n'

        msg += '\nДля того, чтобы подтвердить выбор, отправьте 0.\n\n'

        msg += 'Чтобы отменить выбор кандидата, нажмите на кнопку с ним повторно или отправьте его номер.'

        return msg, '4.1.1'

    return None, None
예제 #4
0
def voting():
    global CONNECTED_NODE_ADDRESS
    return render_template('voting.html',
                           node_address=CONNECTED_NODE_ADDRESS,
                           candidates=dbapi.get_candidates())
예제 #5
0
def next(vk_id, body):
    candidates = db.get_candidates(vk_id)

    cand_keys = []
    for num, keys in enumerate(candidates):
        if keys[8]:
            fullname = keys[0].lower() + ' ' + keys[1].lower(
            ) + ' ' + keys[2].lower()
            fullname = fullname.strip()
            vars = [fullname]
            vars.append(str(num + 1) + '. ' + fullname)
            vars.append(str(num + 1))
            vars.append(str(num + 1) + '.')
            vars.append(keys[0].lower())
            vars.append(num)
            cand_keys.append(vars)

    choice = None
    for cand in cand_keys:
        if body in cand:
            choice = cand[5]
            break

    if choice is None:
        return None, None

    db.make_choice(vk_id, candidates[choice][7])

    candidates = db.get_candidates(vk_id)

    choosen = []

    not_choosen = []

    for num, cand in enumerate(candidates):
        fullname = cand[0] + ' ' + cand[1] + ' ' + cand[2]
        fullname = fullname.strip()
        if cand[8]:
            choosen.append(str(num + 1) + '. ' + fullname)
        else:
            not_choosen.append(str(num + 1) + '. ' + fullname)

    if choosen == []:
        return st3ch1.next(vk_id, '1')

    if not_choosen == []:
        return st4_1ch0.next(vk_id, '0')

    msg = 'Вы выбрали кандидатов:\n'

    for cand in choosen:
        msg += cand + '\n'

    msg += '\nВы также можете проголосовать и за других кандидатов:\n'

    for cand in not_choosen:
        msg += cand + '\n'

    msg += '\nДля этого выберите кого-то из оставшихся кандидатов, либо отправьте его номер.\n\n'

    msg += 'Чтобы отменить выбор кандидата, нажмите на кнопку с ним повторно или отправьте его номер.\n\n'

    msg += 'Для того, чтобы завершить голосование, выберите соответствующий вариант, либо отправьте 0'

    return msg, '4.1'
예제 #6
0
def get_board(state, vk_id):
    if state in keyboards.keys():
        keyb = keyboards[state]
        if keyb == "":
            return keyb
        else:
            return json.dumps(keyb, ensure_ascii=False)

    if state == '1':
        prof = vkapi.get_profile(vk_id)
        name = prof["first_name"]
        surname = prof["last_name"]
        vari = db.get_simular_voter(name, surname, vk_id)
        keyb = copy.deepcopy(keyb_templ)
        for num, keys in enumerate(vari):
            label = str(num + 1) + '. ' + keys[0]
            if len(label) > 40:
                label = label[:37] + "..."
            keyb["buttons"].append([gen_blue_button(label)])

        keyb["buttons"].append(
            [gen_red_button(str(len(vari) + 1) + '. Меня нет в списке')])
        keyb["buttons"].append(
            [gen_white_button('0. Вернуться в главное меню')])
        return json.dumps(keyb, ensure_ascii=False)

    if state == '4':
        candidates = db.get_candidates(vk_id)

        keyb = copy.deepcopy(keyb_templ)
        for num, cand in enumerate(candidates):
            fullname = cand[0] + ' ' + cand[1] + ' ' + cand[2]
            fullname = fullname.strip()

            keyb["buttons"].append(
                [gen_blue_button(str(num + 1) + '. ' + fullname)])
        keyb["buttons"].append([gen_white_button('0. Против всех')])
        return json.dumps(keyb, ensure_ascii=False)

    if state == '4.1':
        candidates = db.get_candidates(vk_id)

        keyb = copy.deepcopy(keyb_templ)
        for num, cand in enumerate(candidates):
            fullname = cand[0] + ' ' + cand[1] + ' ' + cand[2]
            fullname = fullname.strip()

            if cand[8]:
                keyb["buttons"].append(
                    [gen_green_button(str(num + 1) + '. ' + fullname)])
            else:
                keyb["buttons"].append(
                    [gen_blue_button(str(num + 1) + '. ' + fullname)])

        keyb["buttons"].append([gen_white_button('0. Завершить голосование')])
        return json.dumps(keyb, ensure_ascii=False)

    if state == '4.1.1':
        keyb = copy.deepcopy(keyb_templ)

        candidates = db.get_candidates(vk_id)

        for num, cand in enumerate(candidates):
            fullname = cand[0] + ' ' + cand[1] + ' ' + cand[2]
            fullname = fullname.strip()

            if cand[8]:
                keyb["buttons"].append(
                    [gen_white_button(str(num + 1) + '. ' + fullname)])

        keyb["buttons"].append([gen_green_button('0. Подтвердить')])
        return json.dumps(keyb, ensure_ascii=False)

    return ""