def set_active(self, current_chat=None): """Выбор активного пользователя.""" chat_name = current_chat or self.get_current_chat() if not self.current_user: self.current_user = self.get_current_user() if not chat_name: return user = User.by_name(chat_name) chat = Chat.filter_by(name=chat_name).first() or next((c for c in user.get_chats() if c.is_personal), None) obj = user or chat self.chat_members = chat.members self.current_chat = chat.name self.set_current_chat(chat) self.set_view_obj(obj) client = self.get_client() for cm in self.chat_members: if self.current_user == cm: continue client.notify(settings.PUBLIC_KEY_REQUEST, contact=cm.username) self.make_encryptor() if obj: self.fill_chat() if obj.avatar: self.set_ava(obj.avatar) else: self.clear_ava()
def result(text_button, instance): current_user = User.by_name(settings.USER_NAME) text = str(instance.text_field.text) if instance.text_field.text: chat = Chat.filter_by(name=text).first() if chat: toast('Ошибка Создание чата\nТакая группа уже существует') return with db_lock: chat = Chat.create(name=text, owner=current_user, is_personal=False) chat.members.append(current_user) chat.save() cg = self.get_screen('create_group') cg.instance_chat = chat print('set chat', cg.instance_chat) self.show_screen('create_group') toast(instance.text_field.text)