Remplacer la valeur par défaut du sondage pour que "public=true"

Je me demandais combien de sites luttaient avec cela aussi. J’aimerais aussi que ce soit Public par défaut.

Je pense aussi que l’interface utilisateur pourrait être meilleure.

  • Vous pouvez créer des sondages à vote unique à partir de sondages à vote multiple, il n’y a donc pas besoin de vote unique à mon avis
  • Je montrerais toujours l’interface utilisateur étendue
  • J’aimerais que l’option Public=Vrai par défaut ou, si plus facile à implémenter, Anonyme=Faux
  • Je déplacerais la case à cocher pour Public en haut ou je créerais une interface utilisateur séparée pour les sondages Publics et Anonymes, elle est trop facilement négligée

Je ne suis pas familier avec la modification des composants de thème, s’il existe une solution de contournement facile pour le moment que quelqu’un a créée, ce serait génial de la partager avec des instructions sur la façon de l’implémenter et quoi vérifier lors de la mise à jour de Discourse.

2 « J'aime »

Je suis un nouveau, mais intéressé par la résolution du problème, alors j’ai demandé à chat-gpt :

Voici la réponse :

Le script que vous avez trouvé est un bon début. Il modifie le contrôleur poll-ui-builder pour définir la propriété publicPoll sur true lorsque la fonction onShow() du contrôleur est appelée. Ceci est en effet destiné à être ajouté en tant que composant de thème.

Cependant, le code pourrait ne pas fonctionner en raison de l’ordre d’exécution. La méthode onShow() d’origine définit publicPoll sur false, puis la modification définit publicPoll sur true par la suite.

Une façon correcte serait d’appeler d’abord la méthode onShow du parent, puis de définir publicPoll sur true :

<script type="text/discourse-plugin" version="0.8">
api.modifyClass("controller:poll-ui-builder", {
  onShow() {
    this._super(...arguments);
    this.set('publicPoll', true);
  }
});
</script>

Vous pouvez ajouter ce script à votre thème en suivant ces étapes :

  1. Allez dans le tableau de bord d’administration de Discourse.
  2. Sous la section “Personnaliser”, cliquez sur “Thèmes”.
  3. Sélectionnez le thème que vous souhaitez modifier.
  4. Dans l’écran d’édition du thème, cliquez sur “Modifier CSS/HTML”.
  5. Dans la barre latérale gauche, cliquez sur “</>” Commun.
  6. Collez le script ci-dessus dans la section “</>” Commun.
  7. Cliquez sur le bouton “Enregistrer”.

Cela appliquera la modification à votre thème. N’oubliez pas que les modifications de thème ne s’appliquent qu’aux utilisateurs qui utilisent ce thème particulier. Si vous avez plusieurs thèmes, vous devrez ajouter cette modification à chacun d’eux.

N’oubliez pas non plus de vider le cache de votre navigateur ou d’effectuer un rechargement forcé pour vous assurer que les modifications sont chargées correctement.

J’essaierai de suivre ces étapes avec l’administrateur de notre forum, mais cela prend du temps. Si quelqu’un d’autre ici veut essayer d’abord, s’il vous plaît, faites-moi part de vos commentaires, j’en serais très heureux.

Une autre chose que j’aimerais changer est le comportement de l’interface utilisateur, je veux sauter l’écran simple, alors j’ai demandé à chat-gpt à nouveau :

Dans votre code actuel, la vue étendue est contrôlée par la propriété showAdvanced. Si elle est définie sur true, la vue avancée sera affichée.

Pour toujours afficher la vue avancée, vous pouvez modifier la méthode onShow() dans le contrôleur poll-ui-builder pour définir showAdvanced sur true. Vous pouvez ajouter cette modification au composant de thème que vous avez créé précédemment. Voici le script mis à jour :

<script type="text/discourse-plugin" version="0.8">
api.modifyClass("controller:poll-ui-builder", {
  onShow() {
    this._super(...arguments);
    this.set('publicPoll', true);
    this.set('showAdvanced', true);
  }
});
</script>

N’oubliez pas de suivre les étapes que j’ai décrites précédemment pour ajouter ce script à votre thème. Une fois le script enregistré, la vue avancée devrait toujours être affichée lorsque l’interface utilisateur du sondage est chargée.

Encore une fois, n’oubliez pas de vider le cache de votre navigateur ou d’effectuer un rechargement forcé pour vous assurer que les modifications sont chargées correctement.

J’aimerais essayer et tester par moi-même d’une manière ou d’une autre, mais comme mentionné précédemment, je ne suis qu’un modérateur, pas l’administrateur de notre site, donc cela prendra quelques jours ou semaines.

2 « J'aime »

C’est super que vous ayez trouvé la solution. :+1:

Juste pour information, lorsque vous souhaitez modifier plusieurs propriétés, vous pouvez utiliser cette syntaxe :

    this.setProperties({
        'publicPoll': true,
        'showAdvanced': true
    });
2 « J'aime »

pas vraiment moi, je donne juste à Chat-GPT le code donné par ce lien :

et ensuite je lui donne la première tentative de @JammyDodger et je lui demande s’il peut résoudre mes deux exigences :smiley:

ce serait super si ça marche et une autre chose cool à propos de discourse que j’ai apprise.

2 « J'aime »

Je l’ai testé et ça marche ! :partying_face:

C’est fantastique. :slight_smile: Merci beaucoup. :pray:

1 « J'aime »

Et voici en tant que composant de thème :

4 « J'aime »

ne fonctionne plus pour notre instance.
je n’ai pas pu vérifier si l’extrait de code est toujours présent, car je n’en ai pas les autorisations.

Est-ce que cela fonctionne toujours sur vos forums @JammyDodger et @nathank ?

1 « J'aime »

Je ne pense pas que cela fonctionne non plus sur mon site de test. Peut-être qu’il doit être mis à jour pour tenir compte de certains changements récents ?

Je vais séparer cela dans un sujet Dev :+1:

2 « J'aime »

J’ai compris que la modale que cela appelait a été refactorisée conformément à ceci :

Cependant, je ne parviens pas à comprendre comment interagir avec cela via l’API. Le nouveau fichier de modale est ici :

https://github.com/discourse/discourse/blob/main/plugins/poll/assets/javascripts/discourse/components/modal/poll-ui-builder.js

Je ne parviens pas à comprendre comment appeler cela maintenant, car la manière de le faire n’est pas couverte par la documentation, d’après ce que je peux dire. Quelqu’un peut-il m’aider ?

1 « J'aime »

Bonne nouvelle. :slight_smile: Je pense que nous avons peut-être quelque chose pour cela…

6 « J'aime »