Salas
oTree te permite configurar «salas», que proporcionan:
Enlaces que puedes asignar a los participantes o a las computadoras del laboratorio, que permanecen constantes a lo largo de las sesiones.
Una «sala de espera» que te permite ver qué participantes están actualmente esperando para comenzar una sesión.
Enlaces cortos que son fáciles de escribir para los participantes, ideales para demostraciones rápidas en vivo.
Aquí hay una captura de pantalla:
Creando salas
Puedes crear múltiples salas, por ejemplo, para diferentes clases que enseñas o diferentes laboratorios que gestionas.
Si estás utilizando oTree Studio
En la barra lateral, ve a «Settings» y luego añade una sala en la parte inferior.
Si estás utilizando PyCharm
Ve a tu settings.py y configura ROOMS.
Por ejemplo:
ROOMS = [
dict(
name='econ101',
display_name='Econ 101 class',
participant_label_file='_rooms/econ101.txt',
use_secure_urls=True
),
dict(
name='econ_lab',
display_name='Experimental Economics Lab'
),
]
Si estás utilizando etiquetas de participante (ver más abajo), necesitas un participant_label_file que es una ruta relativa (o absoluta) a un archivo de texto con las etiquetas de participante.
Configurando una sala
Etiquetas de participante
Esta es la «lista de invitados» para la sala. Debe contener una etiqueta de participante por línea. Por ejemplo:
LAB01
LAB02
LAB03
LAB04
LAB05
LAB06
LAB07
LAB08
LAB09
LAB10
Si no especificas etiquetas de participante, cualquiera puede unirse siempre que conozca la URL del salón. Consulta Si no tienes un participant_label_file.
use_secure_urls (opcional)
Esta configuración proporciona seguridad adicional sobre el participant_label_file. Por ejemplo, sin URLs seguras, tus URLs de inicio se verían algo así:
http://localhost:8000/room/econ101/?participant_label=Student1
http://localhost:8000/room/econ101/?participant_label=Student2
Si Student1 es travieso, podría cambiar la etiqueta de participante de su URL de «Student1» a «Student2», para poder hacerse pasar por Student2. Sin embargo, si usas use_secure_urls, cada URL obtiene un código único como este:
http://localhost:8000/room/econ101/?participant_label=Student1&hash=29cd655f
http://localhost:8000/room/econ101/?participant_label=Student2&hash=46d9f31d
Entonces, Student1 no puede hacerse pasar por Student2 sin el código secreto.
Uso de salas
En la interfaz de administración, haz clic en «Salas» en la barra de encabezado y haz clic en la sala que creaste. Desplázate hacia abajo hasta la sección con las URL de los participantes.
Si tienes un participant_label_file
En la página de administración de la sala, monitorea qué participantes están presentes y, cuando estés listo, crea una sesión para el número deseado de personas.
Puedes usar las URL específicas de los participantes o la URL general de la sala.
Las URL específicas para participantes ya contienen la etiqueta del participante. Por ejemplo:
http://localhost:8000/room/econ101/?participant_label=Student2
La URL de la sala no la contiene:
http://localhost:8000/room/econ101/
Entonces, si usas URLs de sala, se requerirá que los participantes ingresen su etiqueta de participante:
Si no tienes un participant_label_file
Simplemente haz que cada participante abra la URL de la sala. Luego, en la página de administración de la sala, verifica cuántas personas están presentes y crea una sesión para el número deseado de personas.
Aunque esta opción es simple, es menos confiable que usar etiquetas de participantes, porque alguien podría jugar dos veces abriendo la URL en 2 navegadores diferentes.
Reutilización para múltiples sesiones
Las URLs de las salas están diseñadas para ser reutilizadas entre sesiones. En un laboratorio, puedes configurarlas como la página de inicio del navegador (usando URLs generales de la sala o URLs específicas de participantes).
En experimentos en el aula, puedes dar a cada estudiante su URL que pueden usar durante el semestre.
¿Qué pasa si no todos los participantes se presentan?
Si estás realizando un experimento de laboratorio y el número de participantes es impredecible, puedes considerar usar la URL de la sala y pedir a los participantes que ingresen manualmente su etiqueta de participante. Los participantes solo se cuentan como presentes después de que ingresen su etiqueta de participante.
O puedes abrir los navegadores en URLs específicas para participantes, pero antes de crear la sesión, cierra los navegadores en las computadoras desatendidas.
Los participantes pueden unirse después de que se haya creado la sesión, siempre que queden lugares disponibles.
Asignación previa de participantes a etiquetas
oTree asigna a los participantes según el tiempo de llegada, por ejemplo, la primera persona en llegar es el participante 1. Sin embargo, en algunas situaciones esto puede no ser deseable, por ejemplo:
Quieres que las etiquetas de los participantes se alineen con los IDs de oTree, en un orden fijo, por ejemplo, para que LAB29 sea siempre el participante 29.
Quieres que Alice/Bob/Charlie sean siempre los participantes 1/2/3, para que se agrupen y jueguen juntos.
Simplemente asigna esas etiquetas de participantes en creating_session:
def creating_session(subsession):
labels = ['alice', 'bob', 'charlie']
for player, label in zip(subsession.get_players(), labels):
player.participant.label = label
Si alguien abre un enlace de inicio con participant_label=alice, oTree verifica si algún participante en la sesión ya tiene esa etiqueta. (Esto es necesario para que al hacer clic en un enlace de inicio dos veces se asigne de nuevo al mismo participante.)
Pasar datos sobre un participante a oTree
Consulta «Participant vars for room» endpoint.
Room welcome pages (consent forms, etc)
Nota
To use this, you must install oTree 6.0
When you use a Room, oTree will show a Welcome page that asks the user to confirm to start.
This page is customizable. This means you can put a consent form or questionnaire or any other content.
Technical details
In settings.py, add welcome_page in your room definition:
ROOMS = [
dict(
name='my_room',
display_name="My Room",
welcome_page="_welcome_pages/RoomWelcomePage.html",
),
]
The welcome page is raw HTML. It doesn’t use oTree’s template system with {{ formfields }},
etc.
The job of your welcome page is
(1) to optionally validate the user (have them enter any info, check their response),
and (2) when they submit, send them to the room by adding welcome_page_ok=1 to the URL.
Consent form / quiz, etc.
You can add any form fields you want (dropdowns, checkboxes, etc.)
and check the user’s inputs using JavaScript and HTML attributes such as
required, min, max, etc.
When it’s validated, then add welcome_page_ok as above.
Custom welcome page + manual entry of participant label
If your app has a participant_label_file and you want users to enter their labels manually,
then you need to validate that it’s correct.
This can be done with an AJAX POST request to the page’s URL,
passing JSON like {"participant_label": "JohnSmith"}.
If the validation fails, the server will send back JSON like
{"errors": {"participant_label": "Invalid participant label"}}.
Display a message to your user and ask them to re-enter.
Once it succeeds, the server will return {"status": "ok"}.
in that case, you should append welcome_page_ok=1 to the URL and reload.