Ejemplo n.º 1
0
    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()
Ejemplo n.º 2
0
        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)