Creare un plugin per sovrascrivere QUERY_RESULT_MAX_LIMIT

Ho tentato ingenuamente di creare un plugin (cosa che non ho mai fatto, se non seguire il tutorial sui plugin qualche anno fa) per sovrascrivere i limiti impostati nel modulo DataExplorer, tuttavia non riesco a farlo funzionare.

Sono sulla strada giusta o questo è un approccio completamente sbagliato?

Nota: sto impostando QUERY_RESULT_DEFAULT_LIMIT a 1 per rendere più facile testare se i limiti personalizzati hanno effetto.

Sconsiglio un plugin qui.

Invece, invia una PR per aggiungere una GlobalSetting (che è supportata dall’ambiente).

5 Mi Piace

Apparentemente questa non è stata una priorità alta per nessuno negli ultimi 2 anni, ma ne avevo bisogno oggi e l’ho risolto modificando manualmente il file all’interno del container.

Una soluzione alternativa è qualcosa di simile a quanto segue in app.yml:

  after_bundle_exec:
   - replace:
        filename: "/var/www/discourse/plugins/discourse-data-explorer/plugin.rb"
        from: /QUERY_RESULT_MAX_LIMIT = 10_000/
        to: QUERY_RESULT_MAX_LIMIT = 100_000

Ma sembra che la PR sarebbe qualcosa come aggiungere questo a plugin.rb:

GlobalSetting.add_default(:query_result_max_limit, 10000)

e poi cambiare il modulo sopra in qualcosa come

  QUERY_RESULT_MAX_LIMIT = GlobalSetting.query_result_max_limit || 10_000

È tutto ciò che servirebbe?

2 Mi Piace

Chiudi…

Ti suggerirei di smettere di usare la costante e di usare invece GlobalSetting.query_result_max_limit ovunque; stai già configurando un valore predefinito, perché configurarlo due volte.

Ma deve esserci un valore predefinito se non impostano GlobalSetting?

Lo imposti, in plugin.rb

OHHHHHH. Immagino che “add_default” aggiunga effettivamente un default. :person_shrugging:

Oops.

Quindi aggiungi il GlobalSetting predefinito e sostituisci tutti i riferimenti alla vecchia costante con il GlobalSetting.

Capito.

Vedrò cosa posso fare.