Quindi, il mio partner è un insegnante (greco antico e latino classico) e utilizza Discourse nelle sue classi da diversi anni. Lo usa principalmente per distribuire i compiti agli studenti e discuterli successivamente. Tuttavia, fino a ora tutti i compiti venivano consegnati su carta durante le lezioni.
Fino a oggi – dato che le scuole sono state chiuse a causa del panico legato al coronavirus, sta passando all’insegnamento completamente online, inclusi i compiti. Quindi tutti gli studenti stanno attualmente inviando i loro lavori via e-mail. Questo è molto inefficiente, poiché richiede a lei di svolgere una notevole quantità di attività amministrative (e posso dirvi che non è molto brava in questo tipo di cose ;)).
Abbiamo discusso alcune opzioni e lei ha detto: “Perché non posso avere un argomento in cui le persone possano vedere solo i miei post (cioè i post creati dall’autore dell’argomento) e i loro? Questo mi permetterebbe di pubblicare un compito come argomento e far sì che ogni studente risponda sotto di esso senza poter vedere le risposte degli altri. Poi, quando tutti avranno inserito il loro lavoro e sarà il momento di discuterne, vorrò poter premere un pulsante per far sparire il velo e rendere visibili a tutti tutti i post nell’argomento, così potranno vedere e discutere il lavoro degli altri.”
Sì, brillante! (È per questo che la amo).
Sto per creare un plugin per questo, probabilmente sfruttando il plugin “solved” per la funzione “magic switch” (rendi tutto visibile non appena l’argomento viene risolto). Ma prima di iniziare volevo sentire la vostra opinione, ricevere dei feedback e magari raccogliere alcune idee per rendere tutto ancora migliore.
Suggerimenti e indicazioni su come implementare questo in modo efficiente sarebbero molto apprezzati – dato che ci sono molti modi per recuperare un argomento e, se un singolo studente trova un modo per aggirare questa protezione, allora tutto diventa inutile.
Tutto ciò che riguarda un argomento passa attraverso un TopicView? Potrei sfruttare username_filters? O costruire qualcosa di simile? O è meglio utilizzare un guardian?
Dipende molto dalle garanzie di sicurezza necessarie in questo caso, ma dato che presumo che gli studenti siano abbastanza esperti, una soluzione basata solo su CSS non funzionerà.
Ora, se una soluzione CSS non funziona e questi ragazzi probabilmente faranno i discoli, sfruttando ogni scappatoia per barare.
Potrebbero verificarsi espansioni backdoor [quote] e ogni sorta di altre marachelle. Una semplice correzione per “può vedere il post” potrebbe non essere sufficiente.
Un modo molto sicuro per farlo sarebbe tramite i messaggi privati: gli studenti inviano il materiale via PM e, una volta finito… un “clic” sposta tutti i PM nel topic. Pulito… semplice… sicuro.
Le soluzioni sono file caricati o testi del compositore?
Se si tratta di file caricati, utilizzando i nuovi Caricamenti multimediali sicuri, più un plugin per modificare il modo in cui viene generato l’URL temporaneo per i download degli utenti, generando solo URL “validi” per lo staff, potrebbe funzionare e richiedere una modifica minima. Dopo che un argomento è stato risolto/contrassegnato/chiuso, l’URL temporaneo torna allo stato normale, così tutti possono vedere tutto.
È anche interessante che si possa vedere chi sta inviando senza poter vedere il contenuto dell’invio.
Il problema è che ha 6 classi diverse con forse 2 o 3 compiti ciascuno in corso contemporaneamente, quindi ha circa 15 compiti diversi da gestire. Quindi non sarà così facile, immagino.
No, solo CSS non funzionerà, è certo. D’altra parte non sarebbe un grosso problema se venisse aggirato una o due volte, purché non mi trovi a dover correggere problemi ogni giorno.
È un’idea davvero interessante. Ma sono soprattutto testi inseriti nel compositore, e lei non vuole obbligare a trasformare tutto in caricamenti.
Sto per modificare il titolo, dato che questa è la richiesta.
Il mio istinto mi dice che si tratta più di un plugin per gli spoiler che di altro. Gli spoiler sarebbero rivelabili solo dal proprietario dell’argomento.
Lo spoiler sarà un po’ complicato perché dovrai proteggere anche le rotte /raw.
Forse:
L’insegnante pubblica “Perché è scoppiata la guerra in Indocina”
Lo studente crea un messaggio privato a se stesso con il compito, e una volta finito, pubblica un link nell’argomento. (Vantaggio: revisioni, non disturba l’insegnante)
L’insegnante può quindi fornire “feedback diretto” nel messaggio privato
Una volta che tutto è stato valutato, l’insegnante clicca su “Pubblica”, che copia il contenuto grezzo del messaggio privato e sostituisce il link al messaggio privato nell’argomento del compito.
Le persone chiedono questo diverse volte all’anno e la risposta è sempre: “Non è possibile avere permessi specifici per argomento.” Se riesci a risolvere questa questione, credo che ci sarà un notevole interesse.
Bene, questa è una situazione un po’ delicata. Ho lavorato un po’ su TopicView e PostGuardian e questo mi porta all’80% senza troppi sforzi, inclusi /raw e trucchi con la modifica dei numeri dei post citati. Al momento riesco ancora a vedere post che non dovrei poter vedere tramite:
ricerca
attività dell’utente
email di riepilogo
Quindi serve qualche altra patch. Per ora, questo è tutto ciò che mi viene in mente. Sono benvenute suggerimenti su altri modi per accedere a un post.
E quella è ancora la risposta. Onestamente, credo che anche porre questa domanda indichi che chi la fa non ha davvero riflettuto su ciò che intende realizzare.
Non mi dispiace affatto una modalità spoiler avanzata; anzi, penso abbia senso.
Dopo aver installato e abilitato il plugin, il proprietario del topic (e lo staff) troverà un pulsante aggiuntivo nella parte inferiore di ogni topic chiamato Risposte Private.
Il pulsante può essere utilizzato per attivare o disattivare la modalità “Risposte Private” per il topic.
Quando la modalità Risposte Private è attiva:
il proprietario del topic può comunque vedere tutti i post
tutti gli altri utenti vedranno solo i post pubblicati dal proprietario del topic, dallo staff e da se stessi.
Un topic di questo tipo è riconoscibile da un banner nella parte superiore del topic:
Quando il proprietario del topic decide di rendere i post pubblici, può utilizzare lo stesso pulsante nella parte inferiore del topic (ora chiamato “Risposte Pubbliche”) per disattivare la modalità Risposte Private. Il banner scomparirà e tutti i post saranno visibili a tutti (rispettando naturalmente le impostazioni di sicurezza della categoria).
Il plugin disabilita i seguenti metodi per recuperare il contenuto dei post:
visualizzazione del topic (cioè il modo normale di vedere i post)
profilo utente - attività
ricerca
raw (/raw/topic_id/post_id)
Nota 1:
Il plugin non nasconde completamente chi ha pubblicato nel topic. Gli avatar degli utenti nell’elenco dei topic rimangono invariati e i topic sono visibili anche nel riepilogo del profilo utente. Tuttavia, nessuno di questi elementi rivela il contenuto dei post.
Nota 2:
Non so se esistano altri metodi per recuperare il contenuto dei post che potrei aver trascurato. (Devo ancora testare, ad esempio, se i riassunti possano rivelare qualcosa). Il mio SO testerà questo aspetto nelle prossime settimane e non ho dubbi che i suoi studenti riusciranno a individuare alcune fessure intelligenti. Cercherò di chiuderle non appena ne verrò a conoscenza. Suggerimenti e consigli sono benvenuti!
Più avanti questa settimana pubblicherò un post nella categoria dei plugin e un buon README.md. Nel frattempo, non vedo l’ora di ricevere il vostro feedback!
Quali sono le implicazioni sulle prestazioni? Molti plugin di terze parti riescono a introdurre query di tipo N+1, N al quadrato, N al cubo, N elevato a N… speriamo che qui si possa evitare.
Sarebbe anche carino se potesse essere attivato/disattivato per singolo argomento, con zero impatto sulle prestazioni per tutti gli altri argomenti tranne quelli in cui è attivo, invece di un costo globale da pagare continuamente.
Ho fatto del mio meglio per mantenere tutto il più efficiente possibile, ovvero valutare il più pigramente possibile ed uscire il più rapidamente possibile da eventuali filtri.
C’è assolutamente spazio per piccole ottimizzazioni, come la memorizzazione nella cache degli ID utente dello staff e degli ID dei topic protetti, ma penso di aver fatto un buon lavoro per una prima versione. Se qualcuno non è d’accordo, si senta libero di criticare il mio codice.