Problema con la creazione di Topic con external_id

Ciao,

  1. Creato un Topic (utilizzando l’API REST) con il campo “external_id”
  2. Eliminato quel Topic, presumo che il Topic sarà presente nel Database ma sarà nascosto agli utenti
  3. Ho provato a creare lo stesso Topic con lo stesso “external_id”, ricevo “External has already been taken”

Se il Topic viene eliminato dal punto di vista dell’utente, allora l’utente dovrebbe essere in grado di creare un nuovo Topic con gli stessi dati, ma perché non succede non sembra esserci modo di utilizzare lo stesso “external_id”. Sembra un bug.

2022/10/12 12:33:32 resp: &{Status:404 Not Found StatusCode:404 Proto:HTTP/2.0 ProtoMajor:2 ProtoMinor:0 Header:map[Content-Type:[application/json; charset=utf-8] Date:[Wed, 12 Oct 2022 10:33:32 GMT] Referrer-Policy:[strict-origin-when-cross-origin] Server:[nginx] Vary:[Accept-Encoding] X-Content-Type-Options:[nosniff] X-Discourse-Route:[topics/show_by_external_id] X-Discourse-Username:[mohan43u] X-Download-Options:[noopen] X-Frame-Options:[SAMEORIGIN] X-Permitted-Cross-Domain-Policies:[none] X-Request-Id:[26b86048-937c-451c-ac0c-b23dbcd3c8ca] X-Runtime:[0.013603] X-Xss-Protection:[0]] Body:0xc000183bc0 ContentLength:-1 TransferEncoding:[] Close:false Uncompressed:true Trailer:map[] Request:0xc00030a800 TLS:0xc0000d22c0}
2022/10/12 12:33:32 req: &{Method:GET URL:https://forums.tamillinuxcommunity.org/t/external_id/7N69MKNwQAs.json Proto:HTTP/1.1 ProtoMajor:1 ProtoMinor:1 Header:map[Api-Key:[] Api-Username:[mohan43u]] Body:<nil> GetBody:<nil> ContentLength:0 TransferEncoding:[] Close:false Host:forums.tamillinuxcommunity.org Form:map[] PostForm:map[] MultipartForm:<nil> Trailer:map[] RemoteAddr: RequestURI: TLS:<nil> Cancel:<nil> Response:<nil> ctx:0xc0000260b8}
2022/10/12 12:33:32 {"errors":["The requested URL or resource could not be found."],"error_type":"not_found"}
2022/10/12 12:33:32 uploading  https://www.youtube.com/watch?v=7N69MKNwQAs
2022/10/12 12:33:32 {"title":"[Youtube] ஆண்ட்ராய்டுக்கான கட்டற்ற மென்பொருள் | FOSS for Android | F-Droid | Tamil","raw":"https://www.youtube.com/watch?v=7N69MKNwQAs\nஇந்த காணொளியில் F-Droid எவ்வாறு பயன்படுத்துவது? அதன் பயன் என்ன ? - என்பதை காண்போம்.\n\nகாணொளி வழங்கியவர்: \nமணிமாறன், விழுப்புரம் கட்டற்ற மென்பொருள் குழுமம்\n\nF-Droid: http://fdroid.org/\n\n#fdroid #fossforandroid #tamil #android #vglug","category":3,"external_id":"7N69MKNwQAs"}

2022/10/12 12:33:33 failed to create Topic: https://www.youtube.com/watch?v=7N69MKNwQAs
2022/10/12 12:33:33 err: <nil>
2022/10/12 12:33:33 resp: &{Status:422 Unprocessable Entity StatusCode:422 Proto:HTTP/2.0 ProtoMajor:2 ProtoMinor:0 Header:map[Cache-Control:[no-cache, no-store] Content-Type:[application/json; charset=utf-8] Date:[Wed, 12 Oct 2022 10:33:33 GMT] Referrer-Policy:[strict-origin-when-cross-origin] Server:[nginx] X-Content-Type-Options:[nosniff] X-Discourse-Route:[posts/create] X-Discourse-Username:[mohan43u] X-Download-Options:[noopen] X-Frame-Options:[SAMEORIGIN] X-Permitted-Cross-Domain-Policies:[none] X-Request-Id:[217f7585-269a-48b3-ac5e-215e02e76bdb] X-Runtime:[0.060606] X-Xss-Protection:[0]] Body:{cs:0xc00032c180} ContentLength:-1 TransferEncoding:[] Close:false Uncompressed:false Trailer:map[] Request:0xc000352100 TLS:0xc0000d22c0}
2022/10/12 12:33:33 req: &{Method:POST URL:https://forums.tamillinuxcommunity.org/posts.json Proto:HTTP/1.1 ProtoMajor:1 ProtoMinor:1 Header:map[Api-Key:[] Api-Username:[mohan43u] Content-Type:[application/json]] Body:0xc0005b0228 GetBody:0x6b0e40 ContentLength:733 TransferEncoding:[] Close:false Host:forums.tamillinuxcommunity.org Form:map[] PostForm:map[] MultipartForm:<nil> Trailer:map[] RemoteAddr: RequestURI: TLS:<nil> Cancel:<nil> Response:<nil> ctx:0xc0000260b8}
2022/10/12 12:33:33 {"action":"create_post","errors":["Title has already been used","External has already been taken"]}

Cosa succederebbe se il primo argomento venisse ripristinato?

1 Mi Piace

non c’è modo di annullare l’eliminazione di quell’argomento, non vedo alcuna icona/pulsante per annullare l’eliminazione.

Ciao Mohan. :wave:

Penso che a cosa si riferisse @RGJ: questo non è un bug, poiché Discourse utilizza un approccio di “eliminazione logica” per impostazione predefinita. L’external_id verrebbe utilizzato in quel contesto, il che è voluto. :+1:

2 Mi Piace

L’icona per annullare l’eliminazione è questa:

C’è anche l’opzione nella chiave inglese dell’argomento:

Non c’è niente di simile

Il punto è che un argomento del genere può essere ripristinato e, in tal caso, ci sarebbero due argomenti con lo stesso ID esterno. L’ID esterno dovrebbe essere univoco, tra tutti gli argomenti, inclusi quelli eliminati. Come ha detto @maiki, questo è per progettazione.

1 Mi Piace

può essere ripristinato? come? Anch’io voglio ripristinare quell’argomento, il mio problema sparirebbe. ma non c’è modo di ripristinare quell’argomento.

O discourse dovrebbe permettere di usare l’external_id che viene utilizzato su un argomento eliminato o dovrebbe avere un modo per ripristinare l’argomento eliminato con quell’external_id. Non vedo nessuna di queste due cose.

Quindi ovviamente è un bug.

I post sopra di me indicano chiaramente che gli argomenti possono essere ripristinati. Il fatto che tu sembri incapace di ripristinare questo specifico argomento non significa che si tratti di un bug, ma di una questione di permessi o impostazioni.

Sei amministratore del forum?

Comunque, per favore, smetti di classificarlo come Bug.

1 Mi Piace

dovrei classificarlo come bug?

No, non dovresti.

Si prega di utilizzare la modalità provvisoria e vedere se è possibile farlo. Se non è possibile, si prega di dirci in grande dettaglio cosa si vede invece. Gli screenshot aiuteranno.

Fammi sapere se sto provando nel modo sbagliato

2 Mi Piace

Il pulsante “Ripristina” si trova nell’argomento “eliminato”. Quindi devi visualizzarlo e ripristinarlo da lì.

Non puoi accedere al menu appropriato dall’elenco dei post eliminati dall’utente. Devi andare all’argomento stesso per vedere l’opzione nel menu:


@Mohan43u, questo risponde alla tua domanda originale, su come viene utilizzato external_id? :slight_smile:

Sì, ma @Mohan43u ha un punto, non c’è modo di andarci dall’elenco dei “post eliminati”. Quindi, come si arriva a quell’argomento?

Inoltre, ?status=deleted non sembra più funzionare?

Non c’è modo di accedere a quell’argomento eliminato se non dalla mia pagina del profilo. Non è raggiungibile dalle categorie.

/latest?status=deleted funziona sul mio sito di test?


Ahhh, ora capisco. Il video ha decisamente aiutato. :slight_smile: Sì, il titolo dell’argomento attualmente non appare negli argomenti eliminati da quella vista. Questo è stato segnalato in precedenza, ma potrebbe valere la pena di dargli un’altra occhiata. :+1:

Potresti provare [Il Tuo Sito]/latest?status=deleted e vedere se riesci ad accedere all’argomento dall’elenco degli argomenti lì invece?

E ora che ho trovato l’altro argomento, c’è anche un altro suggerimento per navigare all’argomento eliminato tramite i tuoi log dello staff, se può essere d’aiuto:

1 Mi Piace

Forum completamente pulito, test superati da stamattina. Quando annullo l’eliminazione dell’argomento, questo riappare su latest.

Buon suggerimento!!
Ma sarebbe davvero bello se anche il post eliminato nel profilo permettesse la navigazione.

1 Mi Piace

Penso che il tuo sia nascosto dal banner di benvenuto dell’argomento CTA. Potresti provare a nasconderlo nella tua console e vedere se l’argomento è dietro di esso? (o modificare l’argomento di benvenuto per chiudere il banner :slight_smile:)

1 Mi Piace

Hai ragione!

È sia brillante (la tua risposta) che molto triste (il motivo) allo stesso tempo.

Quindi ora abbiamo due motivi per ricategorizzare questo in UX

1 Mi Piace

Grazie mille, sono riuscito a recuperare quell’argomento e il mio client rest-api è soddisfatto.

3 Mi Piace