def atualizar_dados(self, widget): print('atualizar_dados', widget) nome = self.nome_completo.get_text() email = self.email.get_text() for retries in range(self.politica_tentativas_conexao): try: self.coll_usuarios.update( {'usuario': self.usuario_logado}, {'$set': { 'nome': nome, 'e-mail': email }}) msg = 'Dados atualizados com sucesso!' self.statusbar_meu_usuario.push( self.statusbar_meu_usuario.get_context_id('info'), aux.statusbar(self.usuario_logado, msg)) break except errors.AutoReconnect: print('Tentando reconectar ao banco de dados.') else: msg = 'Não foi possível estabelecer uma conexão com o banco de dados.' self.statusbar_meu_usuario.push( self.statusbar_meu_usuario.get_context_id('info'), aux.statusbar(self.usuario_logado, msg))
def desautorizar(self, widget): print('desautorizar', widget) selecao = self.lista_autorizados.get_selection() modelo, iteracao = selecao.get_selected() valor = modelo.get_value(iteracao, 0) for retries in range(self.politica_tentativas_conexao): try: desautorizados = self.coll_usuarios.update_one( {'usuario': valor}, {'$set': { 'autorizado': False }}) print('desautorizados', desautorizados) self.carregar_desautorizados() self.carregar_autorizados() msg = 'O usuário "{0}" foi desautorizado com sucesso.'.format( valor) self.statusbar_gerenciamento_permissoes.push( self.statusbar_gerenciamento_permissoes.get_context_id( 'info'), aux.statusbar(self.usuario, msg)) break except errors.AutoReconnect: print('Tentando reconectar ao banco de dados.') else: print('conexão com o banco de dados não foi estabelecida') msg = 'Não foi possível estabelecer uma conexão com o banco de dados.' self.statusbar_gerenciamento_permissoes.push( self.statusbar_gerenciamento_permissoes.get_context_id('info'), aux.statusbar(self.usuario, msg))
def detalhar_dados(self, widget): print('detalhar_dados', widget) try: selecao = self.lista_moradores.get_selection() modelo, iteracao = selecao.get_selected() obj_id = modelo.get_value(iteracao, 0) except TypeError: return for retries in range(self.politica_tentativas_conexao): try: morador = self.coll_moradores.find_one( {'_id': ObjectId(obj_id)}) print('morador', morador) self.atualizar_nome.set_text(morador['nome']) data_nascimento = str('{:%d/%m/%Y}').format( morador['data_nascimento']) self.atualizar_nascimento.set_text(data_nascimento) self.atualizar_calendario.select_month( int(data_nascimento[3:5]) - 1, int(data_nascimento[6:])) self.atualizar_calendario.select_day(int(data_nascimento[:2])) if morador['sexo'] == 'F': self.atualizar_feminino.set_active(True) else: self.atualizar_masculino.set_active(True) self.atualizar_lar.set_text(morador['lar']) peso = str('{:>7.6}').format(morador['peso']).replace('.', ',') self.atualizar_peso.set_text(peso) self.atualizar_textbuffer.set_text(morador['observacoes'], -1) if morador['ativo'] is True: self.atualizar_ativo.set_active(True) else: self.atualizar_ativo.set_active(False) msg = 'Detalhes do morador "{0}" carregado com sucesso.'.format( morador['nome']) self.statusbar_cadastro_moradores.push( self.statusbar_cadastro_moradores.get_context_id('info'), aux.statusbar(self.usuario, msg)) break except errors.AutoReconnect: print('Tentando reconectar ao banco de dados.') else: print('conexão com o banco de dados não foi estabelecida') msg = 'Não foi possível estabelecer uma conexão com o banco de dados.' self.statusbar_cadastro_moradores.push( self.statusbar_cadastro_moradores.get_context_id('info'), aux.statusbar(self.usuario, msg))
def carregar_lista(self): print('carregar_lista') for retries in range(self.politica_tentativas_conexao): try: self.armazenamento_moradores.clear() valores = self.coll_moradores.find().sort( 'nome', pymongo.ASCENDING) for valor in valores: valor['data_nascimento'] = str('{:%d/%m/%Y}').format( valor['data_nascimento']) valor['peso'] = str('{:0>5.5} Kgs').format(valor['peso']) if valor['ativo'] is True: valor['ativo'] = 'Sim' else: valor['ativo'] = 'Não' self.armazenamento_moradores.append([ str(valor['_id']), valor['nome'], valor['data_nascimento'], valor['sexo'], valor['lar'], valor['peso'], valor['ativo'] ]) break except errors.AutoReconnect: print('Tentando reconectar ao banco de dados.') else: msg = 'Não foi possível estabelecer uma conexão com o banco de dados.' self.statusbar_cadastro_moradores.push( self.statusbar_cadastro_moradores.get_context_id('info'), aux.statusbar(self.usuario, msg))
def carregar_definicoes(self): for retries in range(self.politica_tentativas_conexao): try: item = self.coll_usuarios.find_one( {'usuario': self.usuario_logado}) self.usuario.set_text(item['usuario']) self.nome_completo.set_text(item['nome']) self.email.set_text(item['e-mail']) data_solicitacao = item['data_solicitacao'] data_solicitacao = str('{:%d/%m/%Y às %H:%M:%S}').format( data_solicitacao) self.data_criacao.set_text(data_solicitacao) lista_permissoes = item['permissoes'] for item in lista_permissoes: if lista_permissoes[item] is True: self.armazenamento_com_permissao.append([item]) elif lista_permissoes[item] is False: self.armazenamento_sem_permissao.append([item]) self.atualizar_senha_botao.set_sensitive(False) break except errors.AutoReconnect: print('Tentando reconectar ao banco de dados.') else: msg = 'Não foi possível estabelecer uma conexão com o banco de dados.' self.statusbar_meu_usuario.push( self.statusbar_meu_usuario.get_context_id('info'), aux.statusbar(self.usuario_logado, msg))
def carregar_definicoes(self): for retries in range(self.politica_tentativas_conexao_num): try: item = self.coll_definicoes_aplicativo.find_one({'_id': 0}) farmaceutico_responsavel = item['farmaceutico_responsavel'] politica_nome_farmaceutico = item['politica_nome_farmaceutico'] politica_modulos_sem_permissao = item[ 'politica_modulos_sem_permissao'] politica_acesso_inicial = item['politica_acesso_inicial'] politica_tentativas_conexao = item[ 'politica_tentativas_conexao'] self.farmaceutico_responsavel.set_text( farmaceutico_responsavel) if politica_nome_farmaceutico == 'definido': self.politica_nome_do_farmaceutico_definido.set_active( True) elif politica_nome_farmaceutico == 'manual': self.politica_nome_do_farmaceutico_manual.set_active(True) if politica_modulos_sem_permissao == 'desabilitados': self.politica_modulos_sem_permissao_desabilitado.set_active( True) elif politica_modulos_sem_permissao == 'removidos': self.politica_modulos_sem_permissao_removido.set_active( True) if politica_acesso_inicial == 'todos': self.politica_acesso_inicial_todos.set_active(True) elif politica_acesso_inicial == 'nenhum': self.politica_acesso_inicial_nenhum.set_active(True) self.politica_tentativas_conexao.set_text( str(politica_tentativas_conexao)) self.carregar_valores(self.armazenamento_intervencao, self.coll_valores_intervencao) self.carregar_valores(self.armazenamento_prescritor, self.coll_valores_prescritor) self.carregar_valores(self.armazenamento_evolucao, self.coll_valores_evolucao) self.carregar_valores(self.armazenamento_alvo_intervencao, self.coll_valores_alvo_intervencao) self.carregar_valores(self.armazenamento_ponto_critico, self.coll_valores_ponto_critico) self.carregar_valores(self.armazenamento_acatamento, self.coll_valores_acatamento) break except errors.AutoReconnect: print('Tentando reconectar ao banco de dados.') else: self.salvar_e_fechar.set_sensitive(False) msg = 'Não foi possível estabelecer uma conexão com o banco de dados.' self.statusbar_definicoes_aplicativo.push( self.statusbar_definicoes_aplicativo.get_context_id('info'), aux.statusbar(self.usuario, msg))
def adicionar_valores(self, widget, entrada, colecao, armazenamento, nome_tabela_formatado): print('adicionar_valores', nome_tabela_formatado, widget) if len(str(entrada.get_text()).strip()) > 0: valor = entrada.get_text() for retries in range(self.politica_tentativas_conexao_num): try: objectid_id = colecao.insert_one({ 'valor': valor }).inserted_id entrada.set_text('') encontrado = None # para testar abaixo a adição no banco de dados tentativas = 0 while encontrado is None and tentativas < self.timeout: print('executado1') encontrado = colecao.find_one( {'_id': objectid.ObjectId(objectid_id)}) print('executado2') print(encontrado) time.sleep(1) tentativas += 1 self.carregar_valores(armazenamento, colecao) msg = 'O item "{0}" foi adicionado à tabela {1} com sucesso.'.format( valor, nome_tabela_formatado) self.statusbar_definicoes_aplicativo.push( self.statusbar_definicoes_aplicativo.get_context_id( 'info'), aux.statusbar(self.usuario, msg)) break except errors.AutoReconnect: print('Tentando reconectar ao banco de dados.') else: print('conexão com o banco de dados não foi estabelecida') msg = 'Não foi possível estabelecer uma conexão com o banco de dados.' self.statusbar_definicoes_aplicativo.push( self.statusbar_definicoes_aplicativo.get_context_id( 'info'), aux.statusbar(self.usuario, msg)) else: msg = 'O campo de entrada da tabela "{0}" deve ser preenchido antes de ser adicionado à tabela.'.format( nome_tabela_formatado) self.statusbar_definicoes_aplicativo.push( self.statusbar_definicoes_aplicativo.get_context_id('info'), aux.statusbar(self.usuario, msg))
def salvar_definicoes_e_fechar(self, widget): print('salvar_definicoes_e_fechar', widget) politica_nome_farmaceutico = None politica_modulos_sem_permissao = None politica_acesso_inicial = None farmaceutico_responsavel = self.farmaceutico_responsavel.get_text() if self.politica_nome_do_farmaceutico_definido.get_active(): politica_nome_farmaceutico = 'definido' elif self.politica_nome_do_farmaceutico_manual.get_active(): politica_nome_farmaceutico = 'manual' if self.politica_modulos_sem_permissao_desabilitado.get_active(): politica_modulos_sem_permissao = 'desabilitados' elif self.politica_modulos_sem_permissao_removido.get_active(): politica_modulos_sem_permissao = 'removidos' if self.politica_acesso_inicial_todos.get_active(): politica_acesso_inicial = 'todos' elif self.politica_acesso_inicial_nenhum.get_active(): politica_acesso_inicial = 'nenhum' politica_tentativas_conexao = self.politica_tentativas_conexao.get_text( ) for retries in range(self.politica_tentativas_conexao_num): try: self.coll_definicoes_aplicativo.update_one({'_id': 0}, { '$set': { 'farmaceutico_responsavel': farmaceutico_responsavel, 'politica_nome_farmaceutico': politica_nome_farmaceutico, 'politica_modulos_sem_permissao': politica_modulos_sem_permissao, 'politica_acesso_inicial': politica_acesso_inicial, 'politica_tentativas_conexao': int(politica_tentativas_conexao) } }) self.tela_definicoes_aplicativo.close() break except errors.AutoReconnect: print('Tentando reconectar ao banco de dados.') else: msg = 'Não foi possível estabelecer uma conexão com o banco de dados.' self.statusbar_definicoes_aplicativo.push( self.statusbar_definicoes_aplicativo.get_context_id('info'), aux.statusbar(self.usuario, msg))
def remover_valores(self, widget, lista, colecao, armazenamento, nome_tabela_formatado): print('remover_valores', nome_tabela_formatado, widget) selecao = lista.get_selection() modelo, iteracao = selecao.get_selected() if iteracao is not None: valor = modelo.get_value(iteracao, 0) for retries in range(self.politica_tentativas_conexao_num): try: deletados = colecao.delete_one({ 'valor': valor }).deleted_count tentativas = 0 while deletados != 1 and tentativas < self.timeout: time.sleep(1) tentativas += 1 self.carregar_valores(armazenamento, colecao) msg = 'O item "{0}" foi removido da tabela "{1}" com sucesso.'.format( valor, nome_tabela_formatado) self.statusbar_definicoes_aplicativo.push( self.statusbar_definicoes_aplicativo.get_context_id( 'info'), aux.statusbar(self.usuario, msg)) break except errors.AutoReconnect: print('Tentando reconectar ao banco de dados.') else: print('conexão com o banco de dados não foi estabelecida') msg = 'Não foi possível estabelecer uma conexão com o banco de dados.' self.statusbar_definicoes_aplicativo.push( self.statusbar_definicoes_aplicativo.get_context_id( 'info'), aux.statusbar(self.usuario, msg)) else: msg = 'Um item da tabela "{0}" deve ser selecionado antes de ser removido.'.format( nome_tabela_formatado) self.statusbar_definicoes_aplicativo.push( self.statusbar_definicoes_aplicativo.get_context_id('info'), aux.statusbar(self.usuario, msg))
def corrigir_calendario(self, widget, focus, campo_data, calendario): print('corrigir_calendatio', widget, focus, campo_data, calendario) data = campo_data.get_text() try: calendario.select_month(int(data[3:5]) - 1, int(data[6:])) calendario.select_day(int(data[:2])) except Exception as e: print(type(e), e) msg = 'Conteúdo do campo "Data de Nascimento" não é valido. Formato esperado é DD/MM/AAAA.' self.statusbar_cadastro_moradores.push( self.statusbar_cadastro_moradores.get_context_id('info'), aux.statusbar(self.usuario, msg)) self.tela_cadastro_morador.error_bell() return
def carregar_usuarios(self): for retries in range(self.politica_tentativas_conexao): try: self.armazenamento_usuarios.clear() valores = self.coll_usuarios.find({}) for valor in valores: self.armazenamento_usuarios.append([valor['usuario']]) break except errors.AutoReconnect: print('Tentando reconectar ao banco de dados.') else: msg = 'Não foi possível estabelecer uma conexão com o banco de dados.' self.statusbar_gerenciamento_permissoes.push( self.statusbar_gerenciamento_permissoes.get_context_id('info'), aux.statusbar(self.usuario, msg))
def carregar_valores(self, armazenamento, colecao): for retries in range(self.politica_tentativas_conexao_num): try: armazenamento.clear() valores = colecao.find({}) for valor in valores: armazenamento.append([valor['valor']]) break except errors.AutoReconnect: print('Tentando reconectar ao banco de dados.') else: msg = 'Não foi possível estabelecer uma conexão com o banco de dados.' self.statusbar_definicoes_aplicativo.push( self.statusbar_definicoes_aplicativo.get_context_id('info'), aux.statusbar(self.usuario, msg))
def atualizar_senha(self, widget): print('atualizar_senha', widget) for retries in range(self.politica_tentativas_conexao): try: senha_atual = CriarUsuario.hash_password( self.senha_atual.get_text()) senha_nova = CriarUsuario.hash_password( self.nova_senha_repetir.get_text()) item = self.coll_usuarios.find_one( {'usuario': self.usuario_logado}) senha_atual_db = item['senha'] if senha_atual == senha_atual_db: self.coll_usuarios.update({'usuario': self.usuario_logado}, {'$set': { 'senha': senha_nova }}) msg = 'Sua senha foi atualizada com sucesso! Não a esqueça.' self.statusbar_meu_usuario.push( self.statusbar_meu_usuario.get_context_id('info'), aux.statusbar(self.usuario_logado, msg)) else: msg = 'A senha atual não é a mesma cadastrada no banco de dados.' self.statusbar_meu_usuario.push( self.statusbar_meu_usuario.get_context_id('info'), aux.statusbar(self.usuario_logado, msg)) break except errors.AutoReconnect: print('Tentando reconectar ao banco de dados.') else: msg = 'Não foi possível estabelecer uma conexão com o banco de dados.' self.statusbar_meu_usuario.push( self.statusbar_meu_usuario.get_context_id('info'), aux.statusbar(self.usuario_logado, msg))
def carregar_desautorizados(self): for retries in range(self.politica_tentativas_conexao): try: self.armazenamento_desautorizados.clear() valores = self.coll_usuarios.find({'autorizado': False}) for valor in valores: valor['data_solicitacao'] = str( '{:%d/%m/%Y às %H:%M:%S}').format( valor['data_solicitacao']) self.armazenamento_desautorizados.append([ valor['usuario'], valor['nome'], valor['e-mail'], valor['data_solicitacao'] ]) break except errors.AutoReconnect: print('Tentando reconectar ao banco de dados.') else: msg = 'Não foi possível estabelecer uma conexão com o banco de dados.' self.statusbar_gerenciamento_permissoes.push( self.statusbar_gerenciamento_permissoes.get_context_id('info'), aux.statusbar(self.usuario, msg))
def atualizar_dados(self, widget): print('atualizar_dados', widget) selecao = self.lista_moradores.get_selection() modelo, iteracao = selecao.get_selected() obj_id = modelo.get_value(iteracao, 0) nome = self.atualizar_nome.get_text() nascimento = self.atualizar_nascimento.get_text() lar = self.atualizar_lar.get_text() peso = self.atualizar_peso.get_text() observacoes = self.atualizar_textbuffer.get_text( self.atualizar_textbuffer.get_start_iter(), self.atualizar_textbuffer.get_end_iter(), True) ativo = self.atualizar_ativo.get_active() if self.atualizar_feminino.get_active(): sexo = 'F' else: sexo = 'M' if len(nome) > 0: pass else: msg = 'Campo "Nome" não pode estar vazio.' self.statusbar_cadastro_moradores.push( self.statusbar_cadastro_moradores.get_context_id('info'), aux.statusbar(self.usuario, msg)) self.tela_cadastro_morador.error_bell() return if len(nascimento) > 9: try: nascimento = dt.datetime(int(nascimento[6:]), int(nascimento[3:5]), int(nascimento[0:2]), 0, 0, 0, 0, tzinfo=dt.timezone.utc) except Exception as e: print(Exception, e) msg = 'Conteúdo do campo "Data de Nascimento" não é valido. Formato esperado é DD/MM/AAAA.' self.statusbar_cadastro_moradores.push( self.statusbar_cadastro_moradores.get_context_id('info'), aux.statusbar(self.usuario, msg)) self.tela_cadastro_morador.error_bell() return else: msg = 'Campo "Data de Nascimento" não pode estar vazio.' self.statusbar_cadastro_moradores.push( self.statusbar_cadastro_moradores.get_context_id('info'), aux.statusbar(self.usuario, msg)) self.tela_cadastro_morador.error_bell() return if len(lar) > 0: pass else: msg = 'Campo "Lar" não pode estar vazio.' self.statusbar_cadastro_moradores.push( self.statusbar_cadastro_moradores.get_context_id('info'), aux.statusbar(self.usuario, msg)) self.tela_cadastro_morador.error_bell() return peso = str(peso).replace(',', '.') if float(peso) > 0: peso = float(peso) else: msg = 'Campo "Peso" não pode ser zero.' self.statusbar_cadastro_moradores.push( self.statusbar_cadastro_moradores.get_context_id('info'), aux.statusbar(self.usuario, msg)) self.tela_cadastro_morador.error_bell() return for retries in range(self.politica_tentativas_conexao): try: objectid_id = self.coll_moradores.update_one( {'_id': ObjectId(obj_id)}, { '$set': { 'nome': nome, 'data_nascimento': nascimento, 'sexo': sexo, 'lar': lar, 'peso': peso, 'observacoes': observacoes, 'ativo': ativo } }) print('Atualização realizada para object_id:', objectid_id) path = modelo.get_path( iteracao) # o número da linha na lista de moradores self.carregar_lista() # refresh na lista de moradores self.lista_moradores.set_cursor( path) # selecionamos a mesma linha antes do refresh msg = 'O cadastro do morador "{0}" foi atualizado com sucesso.'.format( nome) self.statusbar_cadastro_moradores.push( self.statusbar_cadastro_moradores.get_context_id('info'), aux.statusbar(self.usuario, msg)) break except errors.AutoReconnect: print('Tentando reconectar ao banco de dados.') else: print('conexão com o banco de dados não foi estabelecida') msg = 'Não foi possível estabelecer uma conexão com o banco de dados.' self.statusbar_cadastro_moradores.push( self.statusbar_cadastro_moradores.get_context_id('info'), aux.statusbar(self.usuario, msg)) self.tela_cadastro_morador.error_bell()
def __init__(self, usuario, banco_dados, politica_tentativas_conexao, pai): self.usuario_logado = usuario self.banco_dados = banco_dados self.politica_tentativas_conexao = politica_tentativas_conexao self.pai = pai self.coll_usuarios = self.banco_dados['db'].usuarios builder = Gtk.Builder() builder.add_from_file('glade/tela_meu_usuario.glade') self.tela_meu_usuario = builder.get_object('tela_meu_usuario') self.usuario = builder.get_object('usuario') self.nome_completo = builder.get_object('nome_completo') self.email = builder.get_object('email') self.senha_atual = builder.get_object('senha_atual') self.nova_senha = builder.get_object('nova_senha') self.nova_senha_repetir = builder.get_object('nova_senha_repetir') self.atualizar_senha_botao = builder.get_object('atualizar_senha') self.data_criacao = builder.get_object('data_criacao') self.tela_meu_usuario.set_transient_for(self.pai) self.lista_com_permissao = builder.get_object('lista_com_permissao') self.armazenamento_com_permissao = builder.get_object( 'armazenamento_com_permissao') self.coluna_com_permissao = Gtk.TreeViewColumn('Módulos com Permissão', Gtk.CellRendererText(), text=0) self.coluna_com_permissao.set_sort_column_id(0) self.lista_com_permissao.append_column(self.coluna_com_permissao) self.lista_sem_permissao = builder.get_object('lista_sem_permissao') self.armazenamento_sem_permissao = builder.get_object( 'armazenamento_sem_permissao') self.coluna_sem_permissao = Gtk.TreeViewColumn('Módulos sem Permissão', Gtk.CellRendererText(), text=0) self.coluna_sem_permissao.set_sort_column_id(0) self.lista_sem_permissao.append_column(self.coluna_sem_permissao) self.statusbar_meu_usuario = builder.get_object( 'statusbar_meu_usuario') builder.connect_signals({ 'on_atualizar_dados_clicked': self.atualizar_dados, 'on_atualizar_senha_clicked': self.atualizar_senha, 'on_senha_atual_key_release_event': self.validar_troca_senha, 'on_nova_senha_key_release_event': self.validar_troca_senha, 'on_nova_senha_repetir_key_release_event': self.validar_troca_senha, 'on_fechar_clicked': self.fechar }) msg = 'Caso altere a senha, tome nota, pois será requisitada no próximo login.' self.statusbar_meu_usuario.push( self.statusbar_meu_usuario.get_context_id('info'), aux.statusbar(self.usuario_logado, msg)) self.carregar_definicoes() self.tela_meu_usuario.show_all()
def salvar(self, widget): print('salvar', widget) selecao = self.lista_usuarios.get_selection() modelo, iteracao = selecao.get_selected() valor = modelo.get_value(iteracao, 0) checkbutton_nova_analise_prescricao = self.checkbutton_nova_analise_prescricao.get_active( ) checkbutton_abrir_analise_prescricao = self.checkbutton_abrir_analise_prescricao.get_active( ) checkbutton_abrir_intervencoes = self.checkbutton_abrir_intervencoes.get_active( ) checkbutton_abrir_esclarecimentos = self.checkbutton_abrir_esclarecimentos.get_active( ) checkbutton_dados_por_lar = self.checkbutton_dados_por_lar.get_active() checkbutton_dados_totais = self.checkbutton_dados_totais.get_active() checkbutton_cadastro_morador = self.checkbutton_cadastro_morador.get_active( ) checkbutton_cadastro_medicamento = self.checkbutton_cadastro_medicamento.get_active( ) checkbutton_opcoes_definicoes = self.checkbutton_opcoes_definicoes.get_active( ) checkbutton_opcoes_meu_usuario = self.checkbutton_opcoes_meu_usuario.get_active( ) checkbutton_historico_analise_prescricao = self.checkbutton_historico_analise_prescricao.get_active( ) checkbutton_historico_cadastro_morador = self.checkbutton_historico_cadastro_morador.get_active( ) checkbutton_historico_cadastro_medicamento = self.checkbutton_historico_cadastro_medicamento.get_active( ) checkbutton_historico_opcoes_definicoes = self.checkbutton_historico_opcoes_definicoes.get_active( ) checkbutton_historico_opcoes_usuario = self.checkbutton_historico_opcoes_usuario.get_active( ) checkbutton_historico_gerenciamento_permissoes = \ self.checkbutton_historico_gerenciamento_permissoes.get_active() checkbutton_historico_intervencoes = self.checkbutton_historico_intervencoes.get_active( ) checkbutton_historico_esclarecimentos = self.checkbutton_historico_esclarecimentos.get_active( ) checkbutton_opcoes_gerenciamento_permissoes = self.checkbutton_opcoes_gerenciamento_permissoes.get_active( ) for retries in range(self.politica_tentativas_conexao): try: permissoes = self.coll_usuarios.update_one( {'usuario': valor}, { '$set': { 'permissoes.nova_analise_prescricao': checkbutton_nova_analise_prescricao, 'permissoes.abrir_analise_prescricao': checkbutton_abrir_analise_prescricao, 'permissoes.abrir_intervencoes': checkbutton_abrir_intervencoes, 'permissoes.abrir_esclarecimentos': checkbutton_abrir_esclarecimentos, 'permissoes.dados_por_lar': checkbutton_dados_por_lar, 'permissoes.dados_totais': checkbutton_dados_totais, 'permissoes.cadastro_morador': checkbutton_cadastro_morador, 'permissoes.cadastro_medicamento': checkbutton_cadastro_medicamento, 'permissoes.opcoes_definicoes': checkbutton_opcoes_definicoes, 'permissoes.opcoes_meu_usuario': checkbutton_opcoes_meu_usuario, 'permissoes.historico_analise_prescricao': checkbutton_historico_analise_prescricao, 'permissoes.historico_cadastro_morador': checkbutton_historico_cadastro_morador, 'permissoes.historico_cadastro_medicamento': checkbutton_historico_cadastro_medicamento, 'permissoes.historico_opcoes_definicoes': checkbutton_historico_opcoes_definicoes, 'permissoes.historico_opcoes_usuario': checkbutton_historico_opcoes_usuario, 'permissoes.historico_gerenciamento_permissoes': checkbutton_historico_gerenciamento_permissoes, 'permissoes.historico_intervencoes': checkbutton_historico_intervencoes, 'permissoes.historico_esclarecimentos': checkbutton_historico_esclarecimentos, 'permissoes.opcoes_gerenciamento_permissoes': checkbutton_opcoes_gerenciamento_permissoes } }) print('permissões concedidas', permissoes) msg = 'Lista de permissões para o usuário "{0}" atualizada com sucesso.'.format( valor) self.statusbar_gerenciamento_permissoes.push( self.statusbar_gerenciamento_permissoes.get_context_id( 'info'), aux.statusbar(self.usuario, msg)) break except errors.AutoReconnect: print('Tentando reconectar ao banco de dados.') else: print('conexão com o banco de dados não foi estabelecida') msg = 'Não foi possível estabelecer uma conexão com o banco de dados.' self.statusbar_gerenciamento_permissoes.push( self.statusbar_gerenciamento_permissoes.get_context_id('info'), aux.statusbar(self.usuario, msg))
def incluir_morador(self, widget): print('incluir_morador', widget) nome = self.novo_nome.get_text() nascimento = self.novo_data_nascimento.get_text() lar = self.novo_lar.get_text() peso = self.novo_peso.get_text() observacoes = self.novo_textbuffer.get_text( self.novo_textbuffer.get_start_iter(), self.novo_textbuffer.get_end_iter(), True) ativo = True if self.novo_feminino.get_active(): sexo = 'F' else: sexo = 'M' if len(nome) > 0: pass else: msg = 'Campo "Nome" não pode estar vazio.' self.statusbar_cadastro_moradores.push( self.statusbar_cadastro_moradores.get_context_id('info'), aux.statusbar(self.usuario, msg)) self.tela_cadastro_morador.error_bell() return if len(nascimento) > 9: try: nascimento = dt.datetime(int(nascimento[6:]), int(nascimento[3:5]), int(nascimento[0:2]), 0, 0, 0, 0, tzinfo=dt.timezone.utc) except Exception as e: print(Exception, e) msg = 'Conteúdo do campo "Data de Nascimento" não é valido. Formato esperado é DD/MM/AAAA.' self.statusbar_cadastro_moradores.push( self.statusbar_cadastro_moradores.get_context_id('info'), aux.statusbar(self.usuario, msg)) self.tela_cadastro_morador.error_bell() return else: msg = 'Campo "Data de Nascimento" não pode estar vazio.' self.statusbar_cadastro_moradores.push( self.statusbar_cadastro_moradores.get_context_id('info'), aux.statusbar(self.usuario, msg)) self.tela_cadastro_morador.error_bell() return if len(lar) > 0: pass else: msg = 'Campo "Lar" não pode estar vazio.' self.statusbar_cadastro_moradores.push( self.statusbar_cadastro_moradores.get_context_id('info'), aux.statusbar(self.usuario, msg)) self.tela_cadastro_morador.error_bell() return peso = str(peso).replace(',', '.') if float(peso) > 0: peso = float(peso) else: msg = 'Campo "Peso" não pode ser zero.' self.statusbar_cadastro_moradores.push( self.statusbar_cadastro_moradores.get_context_id('info'), aux.statusbar(self.usuario, msg)) self.tela_cadastro_morador.error_bell() return for retries in range(self.politica_tentativas_conexao): try: objectid_id = self.coll_moradores.insert_one({ 'nome': nome, 'data_nascimento': nascimento, 'sexo': sexo, 'lar': lar, 'peso': peso, 'observacoes': observacoes, 'ativo': ativo }).inserted_id encontrado = None # para testar abaixo a adição no banco de dados tentativas = 0 while encontrado is None and tentativas < self.timeout: print('executado1') encontrado = self.coll_moradores.find_one( {'_id': ObjectId(objectid_id)}) print('executado2') print(encontrado) time.sleep(1) tentativas += 1 self.carregar_lista() self.novo_nome.set_text('') self.novo_data_nascimento.set_text('') self.novo_lar.set_text('') self.novo_peso.set_text('') self.novo_textbuffer.set_text('', -1) msg = 'O morador \'{0}\' foi adicionado ao cadastro com sucesso.'.format( nome) self.statusbar_cadastro_moradores.push( self.statusbar_cadastro_moradores.get_context_id('info'), aux.statusbar(self.usuario, msg)) break except errors.AutoReconnect: print('Tentando reconectar ao banco de dados.') else: msg = 'Não foi possível estabelecer uma conexão com o banco de dados.' print('conexão com o banco de dados não foi estabelecida') self.statusbar_cadastro_moradores.push( self.statusbar_cadastro_moradores.get_context_id('info'), aux.statusbar(self.usuario, msg)) self.tela_cadastro_morador.error_bell()
def carregar_checkboxes(self, widget): print('carregar_checkboxes', widget) selecao = self.lista_usuarios.get_selection() modelo, iteracao = selecao.get_selected() valor = modelo.get_value(iteracao, 0) for retries in range(self.politica_tentativas_conexao): try: permissoes = self.coll_usuarios.find_one({'usuario': valor}, { '_id': 0, 'permissoes': 1 }) print('desautorizados', permissoes) if permissoes['permissoes']['nova_analise_prescricao'] is True: self.checkbutton_nova_analise_prescricao.set_active(True) else: self.checkbutton_nova_analise_prescricao.set_active(False) if permissoes['permissoes']['abrir_analise_prescricao'] is True: self.checkbutton_abrir_analise_prescricao.set_active(True) else: self.checkbutton_abrir_analise_prescricao.set_active(False) if permissoes['permissoes']['abrir_intervencoes'] is True: self.checkbutton_abrir_intervencoes.set_active(True) else: self.checkbutton_abrir_intervencoes.set_active(False) if permissoes['permissoes']['abrir_esclarecimentos'] is True: self.checkbutton_abrir_esclarecimentos.set_active(True) else: self.checkbutton_abrir_esclarecimentos.set_active(False) if permissoes['permissoes']['dados_por_lar'] is True: self.checkbutton_dados_por_lar.set_active(True) else: self.checkbutton_dados_por_lar.set_active(False) if permissoes['permissoes']['dados_totais'] is True: self.checkbutton_dados_totais.set_active(True) else: self.checkbutton_dados_totais.set_active(False) if permissoes['permissoes']['cadastro_morador'] is True: self.checkbutton_cadastro_morador.set_active(True) else: self.checkbutton_cadastro_morador.set_active(False) if permissoes['permissoes']['cadastro_medicamento'] is True: self.checkbutton_cadastro_medicamento.set_active(True) else: self.checkbutton_cadastro_medicamento.set_active(False) if permissoes['permissoes']['opcoes_definicoes'] is True: self.checkbutton_opcoes_definicoes.set_active(True) else: self.checkbutton_opcoes_definicoes.set_active(False) if permissoes['permissoes']['opcoes_meu_usuario'] is True: self.checkbutton_opcoes_meu_usuario.set_active(True) else: self.checkbutton_opcoes_meu_usuario.set_active(False) if permissoes['permissoes'][ 'historico_analise_prescricao'] is True: self.checkbutton_historico_analise_prescricao.set_active( True) else: self.checkbutton_historico_analise_prescricao.set_active( False) if permissoes['permissoes'][ 'historico_cadastro_morador'] is True: self.checkbutton_historico_cadastro_morador.set_active( True) else: self.checkbutton_historico_cadastro_morador.set_active( False) if permissoes['permissoes'][ 'historico_cadastro_medicamento'] is True: self.checkbutton_historico_cadastro_medicamento.set_active( True) else: self.checkbutton_historico_cadastro_medicamento.set_active( False) if permissoes['permissoes'][ 'historico_opcoes_definicoes'] is True: self.checkbutton_historico_opcoes_definicoes.set_active( True) else: self.checkbutton_historico_opcoes_definicoes.set_active( False) if permissoes['permissoes']['historico_opcoes_usuario'] is True: self.checkbutton_historico_opcoes_usuario.set_active(True) else: self.checkbutton_historico_opcoes_usuario.set_active(False) if permissoes['permissoes'][ 'historico_gerenciamento_permissoes'] is True: self.checkbutton_historico_gerenciamento_permissoes.set_active( True) else: self.checkbutton_historico_gerenciamento_permissoes.set_active( False) if permissoes['permissoes']['historico_intervencoes'] is True: self.checkbutton_historico_intervencoes.set_active(True) else: self.checkbutton_historico_intervencoes.set_active(False) if permissoes['permissoes'][ 'historico_esclarecimentos'] is True: self.checkbutton_historico_esclarecimentos.set_active(True) else: self.checkbutton_historico_esclarecimentos.set_active( False) if permissoes['permissoes'][ 'opcoes_gerenciamento_permissoes'] is True: self.checkbutton_opcoes_gerenciamento_permissoes.set_active( True) else: self.checkbutton_opcoes_gerenciamento_permissoes.set_active( False) msg = 'Lista de permissões para o usuário "{0}" carregado com sucesso.'.format( valor) self.statusbar_gerenciamento_permissoes.push( self.statusbar_gerenciamento_permissoes.get_context_id( 'info'), aux.statusbar(self.usuario, msg)) break except errors.AutoReconnect: print('Tentando reconectar ao banco de dados.') else: print('conexão com o banco de dados não foi estabelecida') msg = 'Não foi possível estabelecer uma conexão com o banco de dados.' self.statusbar_gerenciamento_permissoes.push( self.statusbar_gerenciamento_permissoes.get_context_id('info'), aux.statusbar(self.usuario, msg))
def __init__(self, banco_dados, politica_tentativas_conexao, usuario, pai): self.banco_dados = banco_dados self.politica_tentativas_conexao_num = politica_tentativas_conexao self.usuario = usuario self.pai = pai self.timeout = 10 self.coll_definicoes_aplicativo = self.banco_dados[ 'db'].definicoes_aplicativo self.coll_valores_intervencao = self.banco_dados[ 'db'].valores_intervencao self.coll_valores_prescritor = self.banco_dados[ 'db'].valores_prescritor self.coll_valores_evolucao = self.banco_dados['db'].valores_evolucao self.coll_valores_alvo_intervencao = self.banco_dados[ 'db'].valores_alvo_intervencao self.coll_valores_ponto_critico = self.banco_dados[ 'db'].valores_ponto_critico self.coll_valores_acatamento = self.banco_dados[ 'db'].valores_acatamento builder = Gtk.Builder() builder.add_from_file('glade/tela_definicoes_aplicativo.glade') self.tela_definicoes_aplicativo = builder.get_object( 'tela_definicoes_aplicativo') self.farmaceutico_responsavel = builder.get_object( 'farmaceutico_responsavel') self.politica_nome_do_farmaceutico_manual = builder.get_object( 'politica_nome_do_farmaceutico1') self.politica_nome_do_farmaceutico_definido = builder.get_object( 'politica_nome_do_farmaceutico2') self.politica_modulos_sem_permissao_desabilitado = builder.get_object( 'politica_modulos_sem_permissao1') self.politica_modulos_sem_permissao_removido = builder.get_object( 'politica_modulos_sem_permissao2') self.politica_acesso_inicial_todos = builder.get_object( 'politica_acesso_inicial1') self.politica_acesso_inicial_nenhum = builder.get_object( 'politica_acesso_inicial2') self.politica_tentativas_conexao = builder.get_object( 'politica_tentativas_conexao_bd_spin') self.tela_definicoes_aplicativo.set_transient_for(self.pai) self.entrada_intervencao = builder.get_object('entrada_intervencao') self.lista_intervencao = builder.get_object('lista_intervencao') self.armazenamento_intervencao = builder.get_object( 'armazenamento_intervencao') self.coluna_intervencao = Gtk.TreeViewColumn('Intervenção', Gtk.CellRendererText(), text=0) self.coluna_intervencao.set_sort_column_id(0) self.lista_intervencao.append_column(self.coluna_intervencao) self.entrada_prescritor = builder.get_object('entrada_prescritor') self.lista_prescritor = builder.get_object('lista_prescritor') self.armazenamento_prescritor = builder.get_object( 'armazenamento_prescritor') self.coluna_prescritor = Gtk.TreeViewColumn('Prescritor', Gtk.CellRendererText(), text=0) self.coluna_prescritor.set_sort_column_id(0) self.lista_prescritor.append_column(self.coluna_prescritor) self.entrada_evolucao = builder.get_object('entrada_evolucao') self.lista_evolucao = builder.get_object('lista_evolucao') self.armazenamento_evolucao = builder.get_object( 'armazenamento_evolucao') self.coluna_evolucao = Gtk.TreeViewColumn('Evolução', Gtk.CellRendererText(), text=0) self.coluna_evolucao.set_sort_column_id(0) self.lista_evolucao.append_column(self.coluna_evolucao) self.entrada_alvo_intervencao = builder.get_object( 'entrada_alvo_intervencao') self.lista_alvo_intervencao = builder.get_object( 'lista_alvo_intervencao') self.armazenamento_alvo_intervencao = builder.get_object( 'armazenamento_alvo_intervencao') self.coluna_alvo_intervencao = Gtk.TreeViewColumn( 'Alvo Intervenção', Gtk.CellRendererText(), text=0) self.coluna_alvo_intervencao.set_sort_column_id(0) self.lista_alvo_intervencao.append_column(self.coluna_alvo_intervencao) self.entrada_ponto_critico = builder.get_object( 'entrada_ponto_critico') self.lista_ponto_critico = builder.get_object('lista_ponto_critico') self.armazenamento_ponto_critico = builder.get_object( 'armazenamento_ponto_critico') self.coluna_ponto_critico = Gtk.TreeViewColumn('Ponto Crítico', Gtk.CellRendererText(), text=0) self.coluna_ponto_critico.set_sort_column_id(0) self.lista_ponto_critico.append_column(self.coluna_ponto_critico) self.entrada_acatamento = builder.get_object('entrada_acatamento') self.lista_acatamento = builder.get_object('lista_acatamento') self.armazenamento_acatamento = builder.get_object( 'armazenamento_acatamento') self.coluna_acatamento = Gtk.TreeViewColumn('Acatamento', Gtk.CellRendererText(), text=0) self.coluna_acatamento.set_sort_column_id(0) self.lista_acatamento.append_column(self.coluna_acatamento) self.salvar_e_fechar = builder.get_object('salvar_e_fechar') self.statusbar_definicoes_aplicativo = builder.get_object( 'statusbar_definicoes_aplicativo') builder.connect_signals({ 'on_salvar_e_fechar_clicked': self.salvar_definicoes_e_fechar, 'on_adicionar_intervencao_clicked': (self.adicionar_valores, self.entrada_intervencao, self.coll_valores_intervencao, self.armazenamento_intervencao, 'intervenção'), 'on_remover_intervencao_clicked': (self.remover_valores, self.lista_intervencao, self.coll_valores_intervencao, self.armazenamento_intervencao, 'intervenção'), 'on_adicionar_prescritor_clicked': (self.adicionar_valores, self.entrada_prescritor, self.coll_valores_prescritor, self.armazenamento_prescritor, 'prescritor'), 'on_remover_prescritor_clicked': (self.remover_valores, self.lista_prescritor, self.coll_valores_prescritor, self.armazenamento_prescritor, 'prescritor'), 'on_adicionar_evolucao_clicked': (self.adicionar_valores, self.entrada_evolucao, self.coll_valores_evolucao, self.armazenamento_evolucao, 'evolução'), 'on_remover_evolucao_clicked': (self.remover_valores, self.lista_evolucao, self.coll_valores_evolucao, self.armazenamento_evolucao, 'evolução'), 'on_adicionar_alvo_intervencao_clicked': (self.adicionar_valores, self.entrada_alvo_intervencao, self.coll_valores_alvo_intervencao, self.armazenamento_alvo_intervencao, 'alvo da intervenção'), 'on_remover_alvo_intervencao_clicked': (self.remover_valores, self.lista_alvo_intervencao, self.coll_valores_alvo_intervencao, self.armazenamento_alvo_intervencao, 'alvo da intervenção'), 'on_adicionar_ponto_critico_clicked': (self.adicionar_valores, self.entrada_ponto_critico, self.coll_valores_ponto_critico, self.armazenamento_ponto_critico, 'ponto crítico'), 'on_remover_ponto_critico_clicked': (self.remover_valores, self.lista_ponto_critico, self.coll_valores_ponto_critico, self.armazenamento_ponto_critico, 'ponto crítico'), 'on_adicionar_acatamento_clicked': (self.adicionar_valores, self.entrada_acatamento, self.coll_valores_acatamento, self.armazenamento_acatamento, 'acatamento'), 'on_remover_acatamento_clicked': (self.remover_valores, self.lista_acatamento, self.coll_valores_acatamento, self.armazenamento_acatamento, 'acatamento') }) msg = 'Alterações nessas propriedades podem causar mudanças visíveis somente se o programa for reiniciado.' self.statusbar_definicoes_aplicativo.push( self.statusbar_definicoes_aplicativo.get_context_id('info'), aux.statusbar(self.usuario, msg)) self.carregar_definicoes() self.tela_definicoes_aplicativo.show_all()
def validar_permissoes(self): for retries in range(self.politica_tentativas_conexao): try: coll_usuarios = self.banco_dados['db'].usuarios item = self.coll_definicoes_aplicativo.find_one({'_id': 0}) politica_modulos_sem_permissao = item[ 'politica_modulos_sem_permissao'] usuario = coll_usuarios.find_one({'usuario': self.usuario}) if politica_modulos_sem_permissao == 'desabilitados': if usuario['permissoes'][ 'nova_analise_prescricao'] is False: self.nova_analise_prescricao.set_sensitive(False) if usuario['permissoes'][ 'abrir_analise_prescricao'] is False: self.abrir_analise_prescricao.set_sensitive(False) if usuario['permissoes']['abrir_intervencoes'] is False: self.abrir_intervencoes.set_sensitive(False) if usuario['permissoes']['abrir_esclarecimentos'] is False: self.abrir_esclarecimentos.set_sensitive(False) if usuario['permissoes']['dados_por_lar'] is False: self.dados_por_lar.set_sensitive(False) if usuario['permissoes']['dados_totais'] is False: self.dados_totais.set_sensitive(False) if usuario['permissoes']['cadastro_morador'] is False: self.cadastro_morador.set_sensitive(False) if usuario['permissoes']['cadastro_medicamento'] is False: self.cadastro_medicamento.set_sensitive(False) if usuario['permissoes'][ 'historico_analise_prescricao'] is False: self.historico_analise_prescricao.set_sensitive(False) if usuario['permissoes'][ 'historico_cadastro_morador'] is False: self.historico_cadastro_morador.set_sensitive(False) if usuario['permissoes'][ 'historico_cadastro_medicamento'] is False: self.historico_cadastro_medicamento.set_sensitive( False) if usuario['permissoes'][ 'historico_opcoes_definicoes'] is False: self.historico_opcoes_definicoes.set_sensitive(False) if usuario['permissoes'][ 'historico_opcoes_usuario'] is False: self.historico_opcoes_usuario.set_sensitive(False) if usuario['permissoes'][ 'historico_gerenciamento_permissoes'] is False: self.historico_gerenciamento_permissoes.set_sensitive( False) if usuario['permissoes']['historico_intervencoes'] is False: self.historico_intervencoes.set_sensitive(False) if usuario['permissoes'][ 'historico_esclarecimentos'] is False: self.historico_esclarecimentos.set_sensitive(False) if usuario['permissoes']['opcoes_definicoes'] is False: self.opcoes_definicoes.set_sensitive(False) if usuario['permissoes']['opcoes_meu_usuario'] is False: self.opcoes_meu_usuario.set_sensitive(False) if usuario['permissoes'][ 'opcoes_gerenciamento_permissoes'] is False: self.opcoes_gerenciamento_permissoes.set_sensitive( False) elif politica_modulos_sem_permissao == 'removidos': if usuario['permissoes'][ 'nova_analise_prescricao'] is False: self.nova_analise_prescricao.hide() if usuario['permissoes'][ 'abrir_analise_prescricao'] is False: self.abrir_analise_prescricao.hide() if usuario['permissoes']['abrir_intervencoes'] is False: self.abrir_intervencoes.hide() if usuario['permissoes']['abrir_esclarecimentos'] is False: self.abrir_esclarecimentos.hide() if usuario['permissoes']['dados_por_lar'] is False: self.dados_por_lar.hide() if usuario['permissoes']['dados_totais'] is False: self.dados_totais.hide() if usuario['permissoes']['cadastro_morador'] is False: self.cadastro_morador.hide() if usuario['permissoes']['cadastro_medicamento'] is False: self.cadastro_medicamento.hide() if usuario['permissoes'][ 'historico_analise_prescricao'] is False: self.historico_analise_prescricao.hide() if usuario['permissoes'][ 'historico_cadastro_morador'] is False: self.historico_cadastro_morador.hide() if usuario['permissoes'][ 'historico_cadastro_medicamento'] is False: self.historico_cadastro_medicamento.hide() if usuario['permissoes'][ 'historico_opcoes_definicoes'] is False: self.historico_opcoes_definicoes.hide() if usuario['permissoes'][ 'historico_opcoes_usuario'] is False: self.historico_opcoes_usuario.hide() if usuario['permissoes'][ 'historico_gerenciamento_permissoes'] is False: self.historico_gerenciamento_permissoes.hide() if usuario['permissoes']['historico_intervencoes'] is False: self.historico_intervencoes.hide() if usuario['permissoes'][ 'historico_esclarecimentos'] is False: self.historico_esclarecimentos.hide() if usuario['permissoes']['opcoes_definicoes'] is False: self.opcoes_definicoes.hide() if usuario['permissoes']['opcoes_meu_usuario'] is False: self.opcoes_meu_usuario.hide() if usuario['permissoes'][ 'opcoes_gerenciamento_permissoes'] is False: self.opcoes_gerenciamento_permissoes.hide() else: self.nova_analise_prescricao.hide() self.abrir_analise_prescricao.hide() self.abrir_intervencoes.hide() self.abrir_esclarecimentos.hide() self.dados_por_lar.hide() self.dados_totais.hide() self.cadastro_morador.hide() self.cadastro_medicamento.hide() self.historico_analise_prescricao.hide() self.historico_cadastro_morador.hide() self.historico_cadastro_medicamento.hide() self.historico_opcoes_definicoes.hide() self.historico_opcoes_usuario.hide() self.historico_gerenciamento_permissoes.hide() self.historico_intervencoes.hide() self.historico_esclarecimentos.hide() self.opcoes_definicoes.hide() self.opcoes_meu_usuario.hide() self.opcoes_gerenciamento_permissoes.hide() msg = 'Não foi possível acessar as políticas de módulos sem permissão.' self.statusbar_base.push( self.statusbar_base.get_context_id('permissoes'), aux.statusbar(self.usuario, msg)) break except errors.AutoReconnect: print('Tentando reconectar ao banco de dados.') else: msg = 'Não foi possível estabelecer uma conexão com o banco de dados.' self.statusbar_base.push( self.statusbar_base.get_context_id('db_status'), aux.statusbar(self.usuario, msg))
def __init__(self, banco_dados, usuario, politica_tentativas_conexao, hspw): self.banco_dados = banco_dados self.usuario = usuario self.politica_tentativas_conexao = politica_tentativas_conexao self.coll_definicoes_aplicativo = banco_dados[ 'db'].definicoes_aplicativo self.hspw = hspw builder = Gtk.Builder() builder.add_from_file('glade/tela_base.glade') self.tela_base = builder.get_object('tela_base') self.statusbar_base = builder.get_object('statusbar_base') self.nova_analise_prescricao = builder.get_object( 'nova_analise_prescricao') self.abrir_analise_prescricao = builder.get_object( 'abrir_analise_prescricao') self.abrir_intervencoes = builder.get_object('abrir_intervencoes') self.abrir_esclarecimentos = builder.get_object( 'abrir_esclarecimentos') self.dados_por_lar = builder.get_object('dados_por_lar') self.dados_totais = builder.get_object('dados_totais') self.cadastro_morador = builder.get_object('cadastro_morador') self.cadastro_medicamento = builder.get_object('cadastro_medicamento') self.historico_analise_prescricao = builder.get_object( 'historico_analise_prescricao') self.historico_cadastro_morador = builder.get_object( 'historico_cadastro_morador') self.historico_cadastro_medicamento = builder.get_object( 'historico_cadastro_medicamento') self.historico_opcoes_definicoes = builder.get_object( 'historico_opcoes_definicoes') self.historico_opcoes_usuario = builder.get_object( 'historico_opcoes_usuario') self.historico_gerenciamento_permissoes = builder.get_object( 'historico_gerenciamento_permissoes') self.historico_intervencoes = builder.get_object( 'historico_intervencoes') self.historico_esclarecimentos = builder.get_object( 'historico_esclarecimentos') self.opcoes_definicoes = builder.get_object('opcoes_definicoes') self.opcoes_meu_usuario = builder.get_object('opcoes_meu_usuario') self.opcoes_gerenciamento_permissoes = builder.get_object( 'opcoes_gerenciamento_permissoes') builder.connect_signals({ "gtk_main_quit": Gtk.main_quit, "on_nova_analise_prescricao_activate": self.func_abrir_tela_nova_analise_prescricao, "on_abrir_analise_prescricao_activate": self.func_abrir_tela_abrir_analise_prescricao, "on_abrir_intervencoes_activate": self.func_abrir_tela_abrir_intervencoes, "on_abrir_esclarecimentos_activate": self.func_abrir_tela_abrir_esclarecimentos, "on_dados_por_lar_activate": self.func_abrir_tela_dados_por_lar, "on_dados_totais_activate": self.func_abrir_tela_dados_totais, "on_cadastro_morador_activate": self.func_abrir_tela_cadastro_morador, "on_cadastro_medicamento_activate": self.func_abrir_tela_cadastro_medicamento, "on_historico_analise_prescricao_activate": self.func_abrir_tela_historico_analise_prescricao, "on_historico_cadastro_morador_activate": self.func_abrir_tela_historico_cadastro_morador, "on_historico_cadastro_medicamento_activate": self.func_abrir_tela_historico_cadastro_medicamento, "on_historico_opcoes_definicoes_activate": self.func_abrir_tela_historico_opcoes_definicoes, "on_historico_opcoes_usuario_activate": self.func_abrir_tela_historico_opcoes_usuario, "on_historico_gerenciamento_permissoes_activate": self.func_abrir_tela_historico_gerenciamento_permissoes, "on_historico_intervencoes_activate": self.func_abrir_tela_historico_intervencoes, "on_historico_esclarecimentos_activate": self.func_abrir_tela_historico_esclarecimentos, "on_opcoes_definicoes_activate": self.func_abrir_tela_opcoes_definicoes, "on_opcoes_meu_usuario_activate": self.func_abrir_tela_opcoes_meu_usuario, "on_opcoes_gerenciamento_permissoes_activate": self.func_abrir_tela_opcoes_gerenciamento_permissoes, "on_ajuda_documentacao_activate": self.func_abrir_tela_ajuda_documentacao, "on_ajuda_sobre_activate": self.func_abrir_tela_sobre }) msg = 'Bem-vindo(a) ' + usuario + '!' self.statusbar_base.push(self.statusbar_base.get_context_id('info'), aux.statusbar(self.usuario, msg)) self.tela_base.show_all() self.validar_permissoes()
def __init__(self, banco_dados, politica_tentativas_conexao, usuario, pai): self.banco_dados = banco_dados self.politica_tentativas_conexao = politica_tentativas_conexao self.usuario = usuario self.pai = pai self.coll_usuarios = self.banco_dados['db'].usuarios builder = Gtk.Builder() builder.add_from_file('glade/tela_gerenciamento_permissoes.glade') self.tela_gerenciamento_permissoes = builder.get_object( 'tela_gerenciamento_permissoes') self.botao_autorizar = builder.get_object('autorizar') self.botao_desautorizar = builder.get_object('desautorizar') self.tela_gerenciamento_permissoes.set_transient_for(self.pai) self.botao_desautorizar.set_sensitive(False) self.botao_autorizar.set_sensitive(False) self.lista_desautorizados = builder.get_object('lista_desautorizados') self.armazenamento_desautorizados = builder.get_object( 'armazenamento_desautorizados') self.coluna_desautorizados_usuario = Gtk.TreeViewColumn( 'Usuário', Gtk.CellRendererText(), text=0) self.coluna_desautorizados_nome = Gtk.TreeViewColumn( 'Nome', Gtk.CellRendererText(), text=1) self.coluna_desautorizados_email = Gtk.TreeViewColumn( 'E-mail', Gtk.CellRendererText(), text=2) self.coluna_desautorizados_datasolicitacao = Gtk.TreeViewColumn( 'Data Solicitação', Gtk.CellRendererText(), text=3) self.coluna_desautorizados_usuario.set_sort_column_id(0) self.lista_desautorizados.append_column( self.coluna_desautorizados_usuario) self.lista_desautorizados.append_column( self.coluna_desautorizados_nome) self.lista_desautorizados.append_column( self.coluna_desautorizados_email) self.lista_desautorizados.append_column( self.coluna_desautorizados_datasolicitacao) self.visao_arvore_desautorizados = builder.get_object( 'visao_arvore_desautorizados') self.lista_autorizados = builder.get_object('lista_autorizados') self.armazenamento_autorizados = builder.get_object( 'armazenamento_autorizados') self.coluna_autorizados_usuario = Gtk.TreeViewColumn( 'Usuário', Gtk.CellRendererText(), text=0) self.coluna_autorizados_nome = Gtk.TreeViewColumn( 'Nome', Gtk.CellRendererText(), text=1) self.coluna_autorizados_email = Gtk.TreeViewColumn( 'E-mail', Gtk.CellRendererText(), text=2) self.coluna_autorizados_datasolicitacao = Gtk.TreeViewColumn( 'Data Solicitação', Gtk.CellRendererText(), text=3) self.coluna_autorizados_usuario.set_sort_column_id(0) self.lista_autorizados.append_column(self.coluna_autorizados_usuario) self.lista_autorizados.append_column(self.coluna_autorizados_nome) self.lista_autorizados.append_column(self.coluna_autorizados_email) self.lista_autorizados.append_column( self.coluna_autorizados_datasolicitacao) self.visao_arvore_autorizados = builder.get_object( 'visao_arvore_autorizados') self.lista_usuarios = builder.get_object('lista_usuarios') self.armazenamento_usuarios = builder.get_object( 'armazenamento_usuarios') self.coluna_usuarios = Gtk.TreeViewColumn('Usuário', Gtk.CellRendererText(), text=0) self.coluna_usuarios.set_sort_column_id(0) self.lista_usuarios.append_column(self.coluna_usuarios) self.checkbutton_nova_analise_prescricao = builder.get_object( 'checkbutton_nova_analise_prescricao') self.checkbutton_abrir_analise_prescricao = builder.get_object( 'checkbutton_abrir_analise_prescricao') self.checkbutton_abrir_intervencoes = builder.get_object( 'checkbutton_abrir_intervencoes') self.checkbutton_abrir_esclarecimentos = builder.get_object( 'checkbutton_abrir_esclarecimentos') self.checkbutton_dados_por_lar = builder.get_object( 'checkbutton_dados_por_lar') self.checkbutton_dados_totais = builder.get_object( 'checkbutton_dados_totais') self.checkbutton_cadastro_morador = builder.get_object( 'checkbutton_cadastro_morador') self.checkbutton_cadastro_medicamento = builder.get_object( 'checkbutton_cadastro_medicamento') self.checkbutton_opcoes_definicoes = builder.get_object( 'checkbutton_opcoes_definicoes') self.checkbutton_opcoes_meu_usuario = builder.get_object( 'checkbutton_opcoes_meu_usuario') self.checkbutton_historico_analise_prescricao = builder.get_object( 'checkbutton_historico_analise_prescricao') self.checkbutton_historico_cadastro_morador = builder.get_object( 'checkbutton_historico_cadastro_morador') self.checkbutton_historico_cadastro_medicamento = builder.get_object( 'checkbutton_historico_cadastro_medicamento') self.checkbutton_historico_opcoes_definicoes = builder.get_object( 'checkbutton_historico_opcoes_definicoes') self.checkbutton_historico_opcoes_usuario = builder.get_object( 'checkbutton_historico_opcoes_usuario') self.checkbutton_historico_gerenciamento_permissoes = builder.get_object( 'checkbutton_historico_gerenciamento_permissoes') self.checkbutton_historico_intervencoes = builder.get_object( 'checkbutton_historico_intervencoes') self.checkbutton_historico_esclarecimentos = builder.get_object( 'checkbutton_historico_esclarecimentos') self.checkbutton_opcoes_gerenciamento_permissoes = builder.get_object( 'checkbutton_opcoes_gerenciamento_permissoes') self.statusbar_gerenciamento_permissoes = builder.get_object( 'statusbar_gerenciamento_permissoes') builder.connect_signals({ 'on_fechar_clicked': self.fechar, 'on_lista_desautorizados_cursor_changed': self.desautorizado_selecionado, 'on_lista_autorizados_cursor_changed': self.autorizado_selecionado, 'on_autorizar_clicked': self.autorizar, 'on_desautorizar_clicked': self.desautorizar, 'on_lista_usuarios_cursor_changed': self.carregar_checkboxes, 'on_salvar_clicked': self.salvar }) msg = 'Alterar autorizações e permissões sem autorização é um grave risco de segurança das informações.' self.statusbar_gerenciamento_permissoes.push( self.statusbar_gerenciamento_permissoes.get_context_id('info'), aux.statusbar(self.usuario, msg)) self.carregar_usuarios() self.carregar_desautorizados() self.carregar_autorizados() self.tela_gerenciamento_permissoes.show_all()