Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tarefas da aula de 2024-05-17 #189

Open
JorgeStolfi opened this issue May 17, 2024 · 5 comments
Open

Tarefas da aula de 2024-05-17 #189

JorgeStolfi opened this issue May 17, 2024 · 5 comments

Comments

@JorgeStolfi
Copy link
Owner

  • 074126 A classe {obj_comentario.Classe} agora tem campos 'nota' e 'voto'. Implemente a função {obj_comentario.recalcula_nota} que devolve uma nova a nota para um comentário {com}, calculada a partir das notas e votos das suas respostas imediatas (comentários com 'pai' = {com}). A nova nota deve ser a média ponderada de 2.0 com peso 4.0 e dos votos das respostas, sendo que o peso do voto de cada resposta é o quadrado da nota dessa resposta. Implemente tabém a função {obj_video.recalcula_nota} que calcula uma nova nota para um vídeo {vid} a partir das notas e votos dos comentários imediatos (com 'video' = {vid} e 'pai' = {None}), pela mesma fórmula.

  • 164210 A classe {obj_comentario.Classe} agora tem um campo 'bloqueado'. Modifique {html_pag_ver_comentario.gera} (e o que mais for preciso) para levar em conta esse atributo. Especificamente, se for {True}, o 'texto' do comentário deve ser substituído por "[BLOQUEADO]", se possível em vermelho.

  • 174868 A classe {obj_comentario.Classe} agora tem um campo 'bloqueado'. Modifique {html_pag_alterar_comentario.gera}, {comando_solicitar_pag_alterar_comentario.processa} e {comando_alterar_comentario.processa} (e o que mais for preciso) para permitir alteração desse campo, se e somente se o dono da sessão corrente for um administrador; e proibir alterações por outros usuários se esse atributo for {True}.

  • 174928 Implemente o módulo {comando_recalcular_nota}. Recebe argumentos { 'comentario': ID } ou { 'video': ID }. No promeiro caso chama {obj_comentario.recalcula_nota} e usa {obj_comentario.muda_atributos} para alterar o atributo 'nota' do comentári. No segundo caso chama {obj_video.recalcula_nota} e usa {obj_video.muda_atributos}.

  • 178068 Defina um módulo {html_elem_link_text} com função {gera(texto)} que gera um link (elemento "{texto}") para um comando dado com argumentos dados, mostrando o texto sublinhado. Use essa função em {html_linha_resumo_de_{XXX} (XXX = sessao, usuario, video, comentario) nas colunas que são identificadores, de modo que clicar em um identificador (como "V-00000012") emite o comando "ver" correspondente (no caso, "ver_video?video=V-00000012").

  • 194347 A classe {obj_comentario.Classe} agora tem um campo 'nota'. Modifique {html_linha_resumo_de_comentario.gera} para mostrar esse campo.

  • 198594 Escreva o programa de testes {comando_solicitar_pag_buscar_comentarios_TST.py}. Veja testes de módulos parecidos.

  • 203407 A classe {obj_comentario.Classe} agora tem um campo 'nota'. Modifique {html_pag_alterar_comentario.gera} e {comando_alterar_comentario.processa} (e o que mais for preciso) para alterar esse campo, se e somente se o dono da sessão corrente for um administrador.

  • 213368 A classe {obj_comentario.Classe} agora tem um campo 'voto'. Modifique {html_linha_resumo_de_comentario.gera} para mostrar esse campo.

  • 214777 A classe {obj_video.Classe} agora tem um campo 'bloqueado'. Modifique {html_pag_alterar_video.gera}, {comando_solicitar_pag_alterar_video.processa} e {comando_alterar_video.processa} (e o que mais for preciso) para permitir alteração desse campo, se e somente se o dono da sessão corrente for um administrador; e proibir alterações por outros usuários se esse atributo for {True}.

  • 216158 A classe {obj_comentario.Classe} agora tem um campo 'bloqueado'. Modifique {html_linha_resumo_de_comentario.gera} para levar em conta esse campo. Especificamente, se for {True}, o 'texto' do comentário deve ser substituído por "[BLOQUEADO]", se possível em vermelho.

  • 218996 Examine os usos de {html_elem_div.gera(estilo,texto)} em {html_bloco_bemvindo_IMP.py}, {html_bloco_cabecalho_IMP.py}, {html_bloco_cabecalho_de_comentario_IMP.py}, {html_bloco_cabecalho_de_video_IMP.py} e {html_bloco_rodape_de_video_IMP.py}, e procure definir um novo módulo {html_estilo_div_dados} cuja função {gera} produz o {estilo} usado nessas chamadas, possivelmente em função de uns poucos parâmetros como tamanho de letra, cor do texto, etc. Use essa função nos módulos acima.

  • 220142 Para uniformizar as cores dos botões no site, modifique as funções {html_elem_button_simples.gera} e {html_elem_button_submit.gera} de modo que se o parâmetro {cor_fundo} for {None} a prórpia função escolhe uma cor do fundo baseada no parãmetro {texto}. Por exemplo, amarelo-ouro se se {texto} começa com "Ver", lilás se começa com "Buscar", verde claro se começa com "Meus" ou "Minhas", etc. Coloque esse mapeamento num novo módulo {html_estilo_button}, na forma de uma função {html_estilo_button.escolhe_cor_fundo(texto)}. Depois procure todas as chamadas dessas duas funções e troque a cor do fundo para {None}, quando possível.

  • 222333 A classe {obj_comentario.Classe} agora tem um campo 'voto'. Modifique {html_pag_ver_comentario.gera} (e o que mais for preciso) para mostrar esse campo.

  • 224466 Escreva o programa de testes {comando_ver_convera_TST.py}. Veja testes de módulos parecidos.

  • 224956 Escreva o programa de testes {comando_ver_grade_de_videos_TST.py}. Veja testes de módulos parecidos. Na página principal {html_pag_principal.gera}, mostre uma grade de vídeos em vez do vídeo fixo "V-00000001". Veja {comando_ver_grade_de_videos} e {html_bloco_grade_de_videos.gera}.

  • 231442 A classe {obj_comentario.Classe} agora tem um campo 'nota'. Modifique {html_pag_buscar_comentarios.gera} (e o que mais for preciso) para incluir esse campo nas buscas.

  • 232450 A classe {obj_comentario.Classe} agora tem um campo 'bloqueado'. Modifique {html_pag_buscar_comentarios.gera} (e o que mais for preciso) para incluir esse campo nas buscas.

  • 232526 Escreva o programa de testes {comando_buscar_sessoes_TST.py}. Veja testes de módulos parecidos.

  • 235634 Escreva a implementação {html_form_buscar_comentarios_IMP.py}. Veja outros módulos {html_form_buscar_*}.

  • 238464 A classe {obj_comentario.Classe} agora tem um campo 'voto'. Modifique {html_pag_buscar_comentarios.gera} (e o que mais for preciso) para incluir esse campo nas buscas.

  • 240013 Modifique {html_bloco_comentario.gera} e {html_bloco_video.gera} acrescentando um botão opcional "Recalcular nota", que, quando clicado, emite o comando "recalcular_nota" com argumento { 'comentario': ID } ou { 'video': ID }, respectivamente. Acrescente um parâmetro booleano {bt_calcnota} a essas funções que diz se esse botão deve ser incluído. Modifique os programas de teste e todas as funções que chamam essas funções, acrescentando esse parâmetro. O botão deve aparecer se e somente se o dono da sessão for um administrador.

  • 240762 Na função {html_bloco_grade_de_videos.gera}, acrescente dois botões "Melhores", "Aleatórios", e "Piores" na parte de baixo da grade, que permitem exibir a amostra de vídeos ordenada por nota. Esses botões devem emitir o comando "ver_grade_de_videos" com argumento adicional { 'ordem': ord } onde {ord} é +1 para ordem crescente de nota, -1 para ordem descecente, ou 0 para mostrar sem ordenar. Modifique {comando_ver_grade_de_videos.processa} e o que mais for necessário para aceitar o parâmetro 'ordem' e efetuar a ordenação, se exigida, antes de chamar {html_bloco_grade_de_videos.gera}.

  • 241882 Escreva o programa de testes {util_dict_TST.py} testando as funções da interface. Veja testes de módulos parecidos e use {util_testes.testa_funcao}.

  • 242080 Mude {html_linha_resumo_de_video.gera} para que, quando se clica no thumbnail, emite o comando "ver_video?video={id}". Também substitua as colunas "Altura" e "Largura" por uma coluna "Dimensões" com entradas como "640x480 px" (largura x altura, nessa ordem). Veja se é possível alinhar essa coluna e a coluna "Duração" à direita em vez de à esquerda.

  • 242233 A classe {obj_video.Classe} agora tem um campo 'bloqueado'. Modifique {html_pag_ver_video.gera} (e o que mais for preciso) para levar em conta esse atributo. Especificamente, se for {True}, a janela do vídeo deve ser suprimida, e o 'titulo' deve ser substituído por "[BLOQUEADO]", se possível em vermelho.

  • 243433 A classe {obj_video.Classe} agora tem um campo 'bloqueado'. Modifique {html_pag_buscar_videos.gera} (e o que mais for preciso) para incluir esse campo nas buscas.

  • 247144 A classe {obj_video.Classe} agora tem um campo 'bloqueado'. Modifique {html_linha_resumo_de_video.gera} para levar em conta esse campo. Especificamente, se for {True}, o 'titulo' do vídeo deve ser substituído por "[BLOQUEADO]", se possível em vermelho.

  • 248290 A classe {obj_comentario.Classe} agora tem um campo 'voto'. Modifique {html_pag_alterar_comentario.gera} e {comando_alterar_comentario.processa} (e o que mais for preciso) para alterar esse campo, se e somente se o dono da sessão corrente for um administrador ou o autor do comentário.

  • 248326 A classe {obj_comentario.Classe} agora tem um campo 'nota'. Modifique {html_pag_ver_comentario.gera} (e o que mais for preciso) para mostrar esse campo.

@TorMenezes
Copy link
Collaborator

Professor, não tem a branch com o meu RA

@JorgeEduardoFOS
Copy link
Collaborator

Professor, só tem branch para 3 RAs 224956, 243433 e 247144, além da main.

@brunotojo
Copy link
Collaborator

Além disso, não foi criada pasta com relatórios em branco para o dia de hoje

@TorMenezes
Copy link
Collaborator

e na main o servidor não esta iniciando para mim, diz que o banco de dados esta trancado

@GustavoMolino59
Copy link
Collaborator

Professor, criei a branch com meu RA: 247144, pois não havia nenhuma branch com meu RA

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants