Skip to content
This repository was archived by the owner on May 11, 2026. It is now read-only.

Fix matrufsc save feature#8

Open
ramoslucas-lr wants to merge 3 commits into
pet-comp-ufsc:masterfrom
ramoslucas-lr:fix-matrufsc-save-feature
Open

Fix matrufsc save feature#8
ramoslucas-lr wants to merge 3 commits into
pet-comp-ufsc:masterfrom
ramoslucas-lr:fix-matrufsc-save-feature

Conversation

@ramoslucas-lr

@ramoslucas-lr ramoslucas-lr commented Dec 11, 2025

Copy link
Copy Markdown

Esta alteração implementa uma refatoração nos mecanismos de persistência, tanto no frontend (JavaScript) quanto no backend (Python), com foco em modernizar os endpoints e aprimorar a lógica de feedback ao usuário após o salvamento de um horário.

Principais Alterações

Backend (py/capim.py)

  • Renomeação de Endpoints: Os endpoints de carregamento (load2.cgi) e salvamento (save2.cgi) foram renomeados para /load e /store, respectivamente. Isso pois as função de save e load no js não enviam mais como load2.cgi e save2.cgi:
self.save = function(identifier) {
        if (!identifier || identifier == "") {
            ui_logger.set_text("identifier invalido", "lightcoral");
            return;
        }

        let url = 'store/' + identifier; // ou let url = 'load + identifier;
[...]
  • Geração de Nome de Arquivo: A função encoded_fname foi refatorada para aceitar o identifier diretamente e usar a codificação UTF-8 seguida de .hex() para gerar o nome do arquivo. Pelo mesmo motivo. Antes o identificar era esperado assim: /save2.cgi?q=1234. Porém, com o update para /store/id, o encodefname pode ser alterado para obter o identificador diretamente do path.

  • Tratamento de Requisição: No endpoint /store, a leitura do corpo da requisição (environ['wsgi.input']) agora considera o CONTENT_LENGTH do ambiente WSGI.

  • Retorno: O retorno de sucesso do endpoint /store foi ajustado para b'OK' (bytes).

Frontend (js/main.js)

  • Lógica Condicional: A mensagem de sucesso ('horário para "' + identifier + '" foi salvo'), a escrita de persistência (persistence.write_id(identifier)), e a atualização da flag de mudanças (mudancas = false) agora estão em um bloco else.
  • Motivação: Isso garante que o feedback de sucesso e a atualização do estado ocorram apenas se o bloco de tratamento de erro anterior não for acionado, resolvendo uma falha na lógica de feedback do usuário, apresentada abaixo:
image

Não consegui rodar o matrufsc diretamente a ponto de testar a funcionalidade de salvar. Tive que fazer várias atualizações aqui que não faria sentido incluir no PR, pois acredito que isso seja devido principalmente à uma incompatibilidade entre as versões das bibliotecas que usei.

@ramoslucas-lr ramoslucas-lr marked this pull request as ready for review December 11, 2025 21:31
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant