195396 TAREFA: Acrescentar campos de `endereco` e `CEP` ao objeto ObjCompra. Acrescentar essas colunas à tabela `compras`; veja como são definidas essas colunas na tabela `usuarios`. Quando o ObjCompra è criado, esses campos devem ser copiados do ObjUsuario. Mostrar esses campos no `gera_html_elem.bloco_de_compra`quando `detalhe` for `True`. Deve haver um botão "Alterar endereço" nesse bloco, que emite o comando `submit_alterar_endereco`. AVALIAÇÃO: Colocou endereço e CEP nos itens da compra em vez de no cabeçalho da mesma. Lista {colunas} incorreta. Usou {cpr.atrs} em vez de {compra.obtem_atributos}. Usou 'cep' em vez de 'CEP'. Não pegou dados do usuário ao criar a compra. NÃO TESTOU! 188171 TAREFA: Fatorar o código repetitivo em `gera_html_form` e uniformizar a aparência dos campos e páginas. Procurar reduzir o espaço de tela gasto pelos vários itens, sem prejudicar a legibilidade. AVALIAÇÃO: OK. 187251 TAREFA: Acrescentar um botão `Minha conta` no menu principal. Deve emitir um comando `menu_ver_usuario`. Implementar o módulo `comando_menu_ver_usuario`conforme descrito na interface. Escrever e rodar o programa de teste. Acrescentar esse comando em `processa_comando html_IMP.py` AVALIAÇÃO: Nome do comando devia ser {menu_ver_usuario} e não {menu_usuario}. O botão devia dizer "MinhaConta" e não "Meu Usuário". Botão deveria ser "" quando usuário não está logado. Usou {usuario} como variável. Devolveu só um form, não a página completa. NÃO TESTOU! 186416 TAREFA: Implementar busca de produto com AND, por exemplo "inox AND cabo". AVALIAÇÃO: NÃO TESTOU! 178183 TAREFA: Implementar um módulo `comando_menu_ofertas` que produz uma página com uma lista de até 10 produtos com preço menor que R$ 20.00. AVALIAÇÃO: Função {busca_por_valor} tem interface mal descrita. A implementação ignora o parâmetro {chaves} e procura só "preco < str(valores)" [sic]. NÃO TESTOU! 177224 TAREFA: Acrescentar um campo booleano `oferta` ao objeto ObjProduto, incluindo o bloco que mostra produto e o formulário de acrescentar produto. Acrescentar essa colunas à tabela `produtos`; veja como é definida a coluna `aberta` da tabela `sessoes`. Implementar botão `Ofertas` no menu principal; deve gerar um comando `menu_ofertas`. Não precisa implementar esse comando. AVALIAÇÃO: OK. 175460 TAREFA: Consertar a aparência da página de mensagem de erro. AVALIAÇÃO: OK. 173711 TAREFA: Consertar a alteração de quantidade de produto numa página de descrição de produto. Deve gerar um comando `submit_alterar_qd_de_produto` com os parâmetros necessários para essa função. AVALIAÇÃO: Não fez o que foi pedido. Em vez disso mexeu um pouco em {comando_submit_alterar_qt_de_produto}. 173093 TAREFA: Criar um módulo `comando_submit_trocar_carrinho` com uma função `processa` que é chamada quando o usuário tem mais de um carrinho e quer trocar o carrinho de compras por outro pedido de compras que está em aberto. No parâmetro `args` o usuário deve receber o identificador "C-{NNNNNNNN}" do pedido de compra que vai ser o novo carrinho da sessão. AVALIAÇÃO: Parece OK. 171828 TAREFA: Fazer funcionar alteração de quantidade de produto e o botão de excluir produto no *carrinho de compras*. Basta causar a emissão de comandos `submit_alterar_qt_de_item_de_compra` e `submit_excluir_item_de_compra` com os parâmetros necessários para essas funções. Acrescentar um botão "Ver" que emite um comando `submit_ver_produto`. AVALIAÇÃO: Parece que não criou o FORM em volta do produto? NÃO TESTOU? 158338 TAREFA: Acrescentar campos `peso` (em gramas) e `volume` (em mililitros), ambos de tipo `float`, ao objeto ObjProduto, incluindo o bloco que mostra produto e o formulário de acrescentar produto. Acrescentar essas colunas à tabela `produtos`. Implementar uma função `calcular_frete` no módulo {compras} que recebe uma compra e um CEP e calcula o preço de postagem. Por enquanto, a fórmula não é importante. AVALIAÇÃO: NÃO TESTOU {bloco_produto} - erro de sintaxe! Erros de grafia "milimitros", "militros". Não alinhou colunas. Retirou indevidamente o texto "Mais atributos... " da interface. Comandos dentro de "if" deveriam estar fora. 158160 TAREFA: Criar um formulário para especificar a forma de pagamento de uma compra. Deve ter campos para escolher o cartão de crédito e entrar os dados do mesmo, e um botão `Confirmar` que emite um comando `submit_escolher_pagamento` com os dados necessários. AVALIAÇÃO: NÃO TESTOU! Interface não especifica os nomes dos campos. 158043 TAREFA: Acrecentar em `gera_html_elem.bloco_de_compra` um botão "Carrinho" em cada compra que estiver em aberto, que emite um comando `submit_trocar_carrinho` com o identificador dessa compra como argumento. AVALIAÇÃO: NÃO TESTOU! Resto OK? 157465 TAREFA: Acescentar um campo booleano `administrador` ao objeto ObjUsuario incluindo o formulário de cadastro de usuário. Acrescentar essa coluna à tabela `usuarios`; veja como é definida a coluna `aberta` da tabela `sessoes`. (Por enquanto esse campo não é usado; mais tarde será usado para restringir certas ações, como "Acrescentar Produto".) AVALIAÇÃO: NÃO TESTOU? Alinhamento de colunas. Campo no formulário devolve string "on", precisava converter para bool. 155619 TAREFA: Implementar o botão "Minhas compras" no menu principal. Deve emitir comando `menu_ver_todas_as_compras`. Fazer funcionar esse comando. AVALIAÇÃO: Descrição na interface incorreta (copiada de outra função sem editar). NÃO TESTOU? 147939 TAREFA: Fazer funcionar login e logout. Note que quando o usuáro faz logout a sessão corrente deve passar a ser `None`. AVALIAÇÃO: Não pôde fazer nada porque cookies ainda não funcionam. OK... 146343 TAREFA: Implementar módulo `comando_submit_alterar_endereco_de_entrega`. Escrever e rodar o programa de teste. AVALIAÇÃO: NÃO TESTOU? # ---------------------------------------------------------------------- 170609 TAREFA: Implementar o botão "Acr.Produto" no menu principal. Deve emitir comando `menu_acrescentar_produto`. Escrever a implementação do módulo `comando_menu_acrescentar_produto` conforme especificado na interface. (Note que NÃO é o mesmo que `comando_submit_acrescentar_produto`) Escrever e rodar o módulo de teste correspondente. AVALIAÇÃO: **AUSENTE**