Limitare le registrazioni in base all'ufficio di assegnazione

10 contenuti / 0 new
Ultimo contenuto
Limitare le registrazioni in base all'ufficio di assegnazione

Salve a tutti, ho un problema abbastanza urgente che non riesco a risolvere da solo.

Nel mio sito (drupal 7) un utente che si registra inserisce 4 campi:
nome, cogno, email, ufficio.

Ufficio non è altro che una lista (un riferimento nodo realizzato col modulo node reference) di uffici tra i quali scegliere il proprio.

Vorrei però che per ogni ufficio si registrasse un solo utente, quindi il primo che effettua la registrazione, mentre i successivi non trovino più tra le voci disponibili quell'ufficio.

In pratica se il menu a discesa ha 5 voci:
- Ufficio 1
- Ufficio 2
- Ufficio 3
- Ufficio 4
- Ufficio 5

vorrei che dopo che un utente si registra scegliendo per esempio "Ufficio 2" gli utentu successivi vedano come menu a discesa solo:
- Ufficio 1
- Ufficio 3
- Ufficio 4
- Ufficio 5

E così via, sino ad eliminare tutte le voci.
Il mio intento è avere alla fine uno ed un solo referente per ogni ufficio.

Non sono molto esperto di drupal e dover creare questo mettendo mani al codice per me sarebbe quasi impossibile ora. Esiste qualche modulo che può aiutarmi?

Grazie per qualsiasi preziosissimo suggerimento.

Drupal Version:

puoi indicare gli uffici come ruoli che gli utenti possono autoassegnarsi
https://drupal.org/project/autoassignrole
e poi limitare il numero di utenti per quel ruolo
https://drupal.org/project/role_limits

Interessante!!! Grazie per la velocità! Mi ci tuffo dentro sperando faccia a caso mio ;)

In realtà... guardandomi bene intorno... gli uffici sono circa 600.
I ruoli dunque dovranno essere altrettanti. Pensi che possa dare problemi un numero così elevato di ruoli?

A proposito (scusa se approfitto). Proprio per evitare una lista lunghissima durante la scelta avevo pensato di realizzare un procedimento di registrazione step by step essendo ogni ufficio composto in realtà da 4 elementi:
Azienda/città/Indirizzo/interno

Pensavo di fare scegliere a chi si registra:
- l'azienda nella prima pagina da un menu a tendina.
- la città (tra le città relative all'azienda scelta) nella seconda pagina sempre menu a tendina.
- l'indirizzo (tra quelli relativi alla città scelta) nella terza pagina menu a tendina
- l'interno (tra quelli relativi all'indirizzo scelto) quarta pagina tendina

La scelta di pagine diverse è per non utilizzare javascript o comunque altri script lato client.
in alternativa nella pagina di registrazione 4 menu a tendina che si rigenerano, ognuno, tranne il primo, in base alla scelta del menu precedente.

Però non avevo trovato nulla di nulla e avevo mollato. Non è che avresti in mente qualcosa a riguardo?

Hierarchical select, e ti passa la paura. ;)
In alternativa ci sarebbe questo, ma non l'ho mai provato.

Immagina una firma a tuo piacimento....

Grazie, proverò a vedere se fanno al caso mio.
Ma per i circa 600 ruoli che dovrei inserire cosa mi dici? Meglio cambiare strada? Avrò problemi di gestione?

Non ho mai usato node reference, non ho mai avuto necessità simili, ma io farei così [D7]:

  1. installerei entity reference e rules (oppure trigger del core )
  2. aggiungerei un campo "disponibile=sì|no" al content type ufficio
  3. creerei la view di tipo entityreference "dropdown_uffici_disponibili" con filtro "disponibile=sì" e la configurerei come vista d'appoggio per il campo "ufficio" modo che nel form di registrazione utente siano visualizzati solo gli uffici disponibili
  4. creerei una regola (Rules o Trigger) che ad ogni registrazione nuovo utente, prenda il valore del campo ufficio e lo aggiorni in disponibile=no

Rileggendo, mi sembra filare come discorso. Sono solo un po' arrugginita su Rules e Trigger, ma spulciando la documentazione non dovrebbe essere un problema sapere come recuperare il valore di un entità e aggiornare il campo corrispondente.
Se usi node reference è perchè usi D6? Non so se anche node reference offra la possibilità di usare una view per popolare il dropdown di un'entità (nodo) referenziata. Magari serve qualche altro modulo.

Cheers

PS. Io inserirei 600 ruoli solo se la cosa non fosse fattibile diversamente. E forse lo è ;-)

---------------
Più ne sai, più ne puoi, più scopri di non saperne.

Grazie Cheope,
uso il modulo (https://drupal.org/project/references) su D7 perché "ho sbattuto" contro Drupal da circa un anno su un sito abbastanza complesso fatto con D6.
Quindi anche ora che cerco di usare D7 mi rendo conto di non afferrarne bene alcuni concetti.
Mi ripropongo sempre di approfondire meglio per esempio l'uso della tassonomia, ma capita sempre che i progetti devono essere finiti "per ieri" e duinque oni vvolta devo scegliere la via più veloce per me :(((
Per ora credo di limitarmi a creare una vista, accessibile a tutti, che mostri l'elenco degli uffici e i relativi referenti già accreditati.
Quando mi destreggerò meglio dovrò sistemare la cosa (dovrò farlo ma con più tempo) seguendo i preziosi consigli di questo thread ;)

Grazie!!

Figurati! Anche io mastico da poco Drupal. O meglio, sono già 2-3 anni e per quello che so fare rispetto a quello che vorrei fare mi sembra sempre poco. Per le relazioni ti consiglio di usare Entity reference per il semplice fatto che le entità (introdotte con D7) sono il metodo migliore e raccomandato per gestire utenti, nodi e tassonomie. Specialmente se devi partire con un progetto nuovo. ;-)

---------------
Più ne sai, più ne puoi, più scopri di non saperne.

600 ruoli sono un immensità
potresti fare dei sottodomini per città/azienda/competenze etc. vedi tu ti troveresti più siti ma più snelli