def menu_cfg(msg): '''Exibe um diálogo com opções para procurar e copiar um arquivo de configuração do d10r, criar um novo arquivo e sair do programa.''' botoes = ('Novo', 'Procurar', 'Sair') data.CONFIG msg += ''' O que deseja fazer? %s: Criar um novo arquivo %s: Utilizar um outro arquivo %s: Sair do programa''' % tuple(botoes) botao = gui.menu(msg, botoes) if botao == botoes[0]: init() elif botao == botoes[1]: caminho = gui.escolher_arquivo('Escolha o arquivo desejado', 'cfg') if caminho: if gui.perguntar( 'O arquivo selecionado está fora do local padrão, ' + 'de forma que o programa sempre perguntará por ele ' + 'quando iniciar. Deseja copiar o arquivo para o local ' + 'padrão?\n\nSe sim, você precisará fazer backup do arquivo ' + 'sempre que for utilizá-lo em outro computador.'): shutil.copy2(caminho, data.CONFIG) gui.notificar('Arquivo copiado com sucesso!') else: data.CONFIG = caminho else: gui.notificar('Preciso do arquivo de configuração para continuar!') else: raise SystemExit(0)
def menu_cfg(msg): '''Exibe um diálogo com opções para procurar e copiar um arquivo de configuração do d10r, criar um novo arquivo e sair do programa.''' botoes = ('Novo', 'Procurar', 'Sair') data.CONFIG msg += ''' O que deseja fazer? %s: Criar um novo arquivo %s: Utilizar um outro arquivo %s: Sair do programa''' % tuple(botoes) botao = gui.menu(msg, botoes) if botao == botoes[0]: init() elif botao == botoes[1]: caminho = gui.escolher_arquivo('Escolha o arquivo desejado', 'cfg') if caminho: if gui.perguntar('O arquivo selecionado está fora do local padrão, ' + 'de forma que o programa sempre perguntará por ele ' + 'quando iniciar. Deseja copiar o arquivo para o local ' + 'padrão?\n\nSe sim, você precisará fazer backup do arquivo ' + 'sempre que for utilizá-lo em outro computador.'): shutil.copy2(caminho, data.CONFIG) gui.notificar('Arquivo copiado com sucesso!') else: data.CONFIG = caminho else: gui.notificar('Preciso do arquivo de configuração para continuar!') else: raise SystemExit(0)
def init(): '''Inicializa o arquivo de configuração do d10r.''' gui.notificar( 'Obrigado por usar o d10r (este programa que vos fala).\n' + 'A seguir eu farei algumas perguntas para que eu possa te ajudar' + ' a gerenciar o tempo que você deve gastar com cada atividade da' + ' sua rotina. Muita produtividade pra você!') atividades = ler_atividades() ordprioridade = gui.prioridade_dialog(atividades) if not ordprioridade: gui.notificar('Se você não sabe, não sou eu quem vai saber.' + '\nMe execute de novo quando decidir. ;)') raise SystemExit(1) prioridades = calcula_prioridades(ordprioridade) toth = gui.entrar('Quantas horas semanais você deseja administrar?', True) if not toth: gui.notificar('Se não é pra administrar horas, pra quê você me quer?' + ' =|\nTchau!') raise SystemExit(1) referencial = sum(prioridades.values()) for nome in atividades: pts = (prioridades[nome] * 1.0) / referencial data.Atividade(nome, pts, 0) data.salvar_config(toth, datetime.date.today().isoweekday(), 0) gui.notificar('Configurações salvas com sucesso.')
def init(): '''Inicializa o arquivo de configuração do d10r.''' gui.notificar('Obrigado por usar o d10r (este programa que vos fala).\n' + 'A seguir eu farei algumas perguntas para que eu possa te ajudar' + ' a gerenciar o tempo que você deve gastar com cada atividade da' + ' sua rotina. Muita produtividade pra você!') atividades = ler_atividades() ordprioridade = gui.prioridade_dialog(atividades) if not ordprioridade: gui.notificar('Se você não sabe, não sou eu quem vai saber.' + '\nMe execute de novo quando decidir. ;)') raise SystemExit(1) prioridades = calcula_prioridades(ordprioridade) toth = gui.entrar('Quantas horas semanais você deseja administrar?', True) if not toth: gui.notificar('Se não é pra administrar horas, pra quê você me quer?' + ' =|\nTchau!') raise SystemExit(1) referencial = sum(prioridades.values()) for nome in atividades: pts = (prioridades[nome] * 1.0) / referencial data.Atividade(nome, pts, 0) data.salvar_config(toth, datetime.date.today().isoweekday(), 0) gui.notificar('Configurações salvas com sucesso.')
def ler_atividades(): '''ler_atividades(msg) -> lista de entradas Exibe uma janela para que o usuário entre com o nome das atividades.''' entradas = [] while True: msg = 'Informe uma nova atividade ou cancele para continuar.' if entradas: complemento = u'\nAs seguintes atividades já foram adicionadas:\n' atividades = '\n'.join([' - ' + e for e in entradas]) msg += complemento + atividades entrada = gui.entrar(msg) if entrada: entradas.append(entrada) entradas = list(set(entradas)) # remove duplicadas else: # cancelar foi pressionado if len(entradas) >= 2: return set(entradas) else: gui.notificar('É preciso informar ao menos duas atividades.' + '\nVocê é monotarefa?') raise SystemExit(1)
if data.creditar_tudo(toth, inicio, timestamp): # guarda a data do último crédito timestamp = datetime.date.today() debito = 0 try: atividade = escolher_ativ() if atividade.saldo > 0: debito = debitar(atividade) else: if gui.perguntar( 'Esta atividade não possui mais horas a serem' + ' cumpridas.\nDeseja continuar mesmo assim?'): debito = debitar(atividade, False) except gui.FimAlcancado: debito = atividade.saldo gui.notificar(u'Você acabou de cumprir as horas da atividade:\n' + atividade.nome) except AttributeError, e: # usuário clicou em Sair, ou não... =/ break finally: if debito and gui.perguntar(u'Confirma %s horas gastas com %s?' % (formatah(debito), atividade.nome)): atividade.debitarh(debito) data.salvar_config(toth, inicio, timestamp) if __name__ == '__main__': main()
if (not timestamp) or (datetime.date.today() > timestamp): if data.creditar_tudo(toth, inicio, timestamp): # guarda a data do último crédito timestamp = datetime.date.today() debito = 0 try: atividade = escolher_ativ() if atividade.saldo > 0: debito = debitar(atividade) else: if gui.perguntar('Esta atividade não possui mais horas a serem' + ' cumpridas.\nDeseja continuar mesmo assim?'): debito = debitar(atividade, False) except gui.FimAlcancado: debito = atividade.saldo gui.notificar(u'Você acabou de cumprir as horas da atividade:\n' + atividade.nome) except AttributeError, e: # usuário clicou em Sair, ou não... =/ break finally: if debito and gui.perguntar(u'Confirma %s horas gastas com %s?' % (formatah(debito), atividade.nome)): atividade.debitarh(debito) data.salvar_config(toth, inicio, timestamp) if __name__ == '__main__': main()