"Unvote" a poll

Is posible remove a vote from a poll?

I only can change my vote, but I can’t “cancel”

4 curtidas

Not sure if that is possible at the current time.

1 curtida

Nope, there’s currently no way to “unvote” on a poll. Added to my :pencil:

8 curtidas

Isso precisa ser implementado, por favor! Eu só estava tentando destacar o texto de uma enquete para copiar/colar (não vejo por que isso não é permitido, aliás), e agora votei acidentalmente em uma enquete.

1 curtida

Você pode fazer isso, seja revotando ou, em alguns casos, há um botão para remover o voto. Não tenho certeza se é um plugin ou se já está disponível.

Não desejo votar por uma opção diferente. Eu estava me abstendo da votação. Eu apenas queria clicar e arrastar para selecionar o texto e copiá-lo para colá-lo.

Oi, há alguma novidade sobre isso? Recebi uma reclamação de um dos meus usuários que não consegue cancelar o voto público dele em uma enquete.

Tópico similar aqui: Ability to remove my choice in a poll

Ainda acho que não há uma maneira, @zogstrip. Talvez valha a pena delegar isso, pois temos tido essa intenção há algum tempo.

  • 1
  • 2
  • 3
0 voters

Talvez a primeira coisa aqui, @designers, seja decidir se queremos permitir isso incondicionalmente ou apenas em pesquisas específicas?

5 curtidas

Eu concordo, já era hora.

@nbianca você pode adicionar isso à sua lista?

1 curtida

Ah, imagino que só precisemos mexer nesta tela:

Adicione um botão após “Mostrar resultados” para “Remover Voto”.

Isso não afetará a forma como as enquetes são exibidas; você precisará investigar para encontrar as opções.

2 curtidas

Uso bastante as enquetes no meu plugin para capturar entradas estruturadas dos usuários, então essa seria uma ótima mudança para mim.

Posso pedir que o evento de votação continue sendo disparado quando os votos forem removidos, para que eu saiba que houve uma alteração?

3 curtidas

Implementei a funcionalidade de desvoto em:

10 curtidas

Olá, acabei de baixar a última build para meu ambiente de desenvolvimento para testar isso e notei uma pequena alteração, talvez não intencional.

É uma mudança pequena, mas é significativa para mim devido à forma peculiar como uso enquetes.

Anteriormente, se não houvesse votos na enquete, o botão “Mostrar resultados” estaria desabilitado. Fazia sentido, não há resultados para ver, então o botão “Mostrar resultados” não deveria ser clicável. Ficava assim…


Note que não houve votos e o botão “Mostrar resultados” está desabilitado

Na nova build “Unvote” parece que o botão “Mostrar Resultados” está sempre habilitado, independentemente de haver votos ou não.


Note que não houve votos, mas o botão “Mostrar resultados” está habilitado

Algumas perguntas: É esse o caso? Isso foi intencional ou uma omissão? Vocês vão mudar isso de volta?

Se for ficar assim, tentarei outra maneira de alcançar o resultado desejado.

De qualquer forma, obrigado pela funcionalidade de “Unvote”, que parece funcionar muito bem!

Contexto

Contexto…

Por que isso é um problema para mim? Uso enquetes para capturar o feedback de (principalmente) usuários individuais. Ou seja, uma enquete me permite fazer perguntas específicas a um usuário em um contexto específico. Raramente há mais de um voto em uma enquete, mas elas facilitam muito a coleta de dados estruturados.

No meu plugin, um tópico pode conter várias enquetes e essas enquetes podem ter muitas opções, o que significa muita rolagem. Para facilitar a navegação dos usuários, após votarem, um componente de tema que escrevi remove as outras opções da interface da enquete, deixando apenas a opção que eles selecionaram.

Para remover essas opções, meu componente de tema mira em um botão “Mostrar resultados” habilitado e “clica” nele. Uma vez que os resultados são mostrados, qualquer opção que não tenha votos é removida.

No final, fica assim.

No momento, como o botão “Mostrar resultados” está habilitado por padrão, meu código clica nele e, como não houve votos, todas as opções são removidas e fica assim…

Acabei de analisar como poderia abordar isso de forma diferente, agora que os resultados são sempre exibidos, e percebi que posso alcançar o que quero de uma maneira muito mais simples.

Então, por favor, deixe como está! LOL :upside_down_face:

Basta selecionar os elementos de resultado escolhidos (ou não .chosen) e defini-los para não serem exibidos.

div.poll div.poll-container ul.results > li:not(.chosen) {
    display: none;
}

Quando escrevi meu código há alguns anos, ou não notei a classe .chosen ou ela foi adicionada recentemente?

De qualquer forma, o que eu tinha era significativamente superengenharia (Javascript com polling!), já que isso parece fazer o que preciso.

6451AF5C-2351-49E0-9A1F-C6C0A3D0D5E9

Obrigado novamente.

1 curtida

Oh, esse foi meu erro. Acabei de reimplementar isso e estará disponível em breve:

Acho que tem sido assim há algum tempo.

3 curtidas

Estou apenas testando agora @nbianca e o botão parece funcionar como antes. Obrigado!

Uma outra pergunta: eu uso o método DiscoursePoll::Poll.vote para votar automaticamente em enquetes. Enfrentei alguns problemas no meu código. Posso confirmar que, durante a refatoração do código das enquetes, você alterou a assinatura do método?

Meu código assumia uma assinatura de:

def vote(post_id, poll_name, options, user)

e agora parece que, após suas alterações, a assinatura é:

def self.vote(user, post_id, poll_name, options)

ou seja, o parâmetro user estava na 4ª posição, mas agora está na 1ª, com todos os outros parâmetros deslocados.

Posso validar se a suposição acima está correta e você acha que há outras mudanças de refatoração semelhantes que possam me causar problemas?

Aliás, a remoção de votos nas enquetes parece funcionar bem!

Você está correto. Eu movi o usuário para ser o primeiro parâmetro na maioria das funções porque essa é a convenção que geralmente seguimos.

3 curtidas

Este tópico foi fechado automaticamente após 9 dias. Novas respostas não são mais permitidas.