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
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'
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
def voting(): global CONNECTED_NODE_ADDRESS return render_template('voting.html', node_address=CONNECTED_NODE_ADDRESS, candidates=dbapi.get_candidates())
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'
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 ""