Administrador

La interfaz de administración de oTree te permite crear, monitorear y exportar datos de las sesiones.

Abre tu navegador en localhost:8000 o en la URL de tu servidor.

Protección por contraseña

Cuando instalas oTree por primera vez, toda la interfaz de administración es accesible sin una contraseña. Sin embargo, cuando estés listo para desplegar a tu audiencia, deberías proteger la administración con una contraseña.

If you are launching an experiment and want visitors to only be able to play your app if you provided them with a start link, set the environment variable OTREE_AUTH_LEVEL to STUDY.

To put your site online in public demo mode where anybody can play a demo version of your game (but not access the full admin interface), set OTREE_AUTH_LEVEL to DEMO.

The normal admin username is «admin». You should set your password in the OTREE_ADMIN_PASSWORD environment variable (on Heroku, log into your Heroku dashboard, and define it as a config var).

If you change the admin username or password, you need to reset the database.

Etiquetas de participantes

Ya sea que estés usando un room o no, puedes agregar un parámetro participant_label a la URL de inicio de cada participante para identificarlos, por ejemplo, por nombre, número de ID o estación de trabajo. Por ejemplo:

http://localhost:8000/room/my_room_name/?participant_label=John

oTree registrará esta etiqueta de participante. Se utilizará para identificar a ese participante en la interfaz de administración de oTree y en la página de pagos, etc. También puedes acceder a ella desde tu código como participant.label.

Otro beneficio de las etiquetas de participante es que si el participante abre su enlace de inicio dos veces, se le asignará de nuevo al mismo participante (si estás utilizando un enlace de sala o de sesión). Esto reduce la participación duplicada.

Orden de llegada

oTree asignará a la primera persona que llegue como P1, a la segunda como P2, etc., a menos que estés utilizando enlaces de un solo uso.

Customizing the admin interface

You can customize what data is shown in the admin interface. For basic customization, you can define ADMIN_VIEW_FIELDS in your constants class. For advanced customization, you can create a custom «admin report» tab.

ADMIN_VIEW_FIELDS

Nota

To use this, you must install oTree 6.0

You can choose what fields are shown in the admin’s «Session Data» view, to focus on the important fields and ignore the rest. Define ADMIN_VIEW_FIELDS in your constants class. It can have 'player', 'group', and 'subsession' keys.

class C(BaseConstants):
    ...
    ADMIN_VIEW_FIELDS = {
        'player': ['guess', 'is_winner', 'payoff'],
        # 'group': [...],
        # 'subsession': [...],
    }

Admin reports

Puedes agregar una pestaña personalizada a la página de administración de una sesión con cualquier contenido que desees; por ejemplo:

  • Un gráfico/tabla con los resultados del juego

  • Una página de pagos personalizada que es diferente de la incorporada en oTree

Aquí hay una captura de pantalla:

_images/admin-report.png

Aquí hay un ejemplo trivial, donde agregamos un informe de administración que muestra una lista ordenada de pagos para una ronda dada.

Primero, define una función vars_for_admin_report. Esto funciona de la misma manera que vars_for_template(). Por ejemplo:

def vars_for_admin_report(subsession):
    payoffs = sorted([p.payoff for p in subsession.get_players()])
    return dict(payoffs=payoffs)

Luego crea una plantilla incluible admin_report.html en tu aplicación, y muestra cualquier variable que se haya pasado en vars_for_admin_report:

<p>Here is the sorted list of payoffs in round {{ subsession.round_number }}</p>

<ul>
    {{ for payoff in payoffs }}
        <li>{{ payoff }}</li>
    {{ endfor }}
</ul>

Notas:

  • subsession, session y C se pasan a la plantilla automáticamente.

  • admin_report.html no necesita usar {{ block }}. El ejemplo anterior es válido como el contenido completo de admin_report.html.

Si una o más aplicaciones en tu sesión tienen un admin_report.html, tu página de administración tendrá una pestaña de «Informes». Usa el menú para seleccionar la aplicación y el número de ronda, para ver el informe de esa subsesión.

Exportar Datos

En la interfaz de administración, haz clic en «Datos» para descargar tus datos en formato CSV o Excel.

También hay una exportación de datos para «tiempos de página», que muestra el tiempo exacto en que los usuarios completaron cada página. Aquí hay un script de Python que puedes ejecutar que tabula cuánto tiempo se pasa en cada página. Puedes modificar este script para calcular cosas similares, como cuánto tiempo pasa cada participante en las páginas de espera en total.

Exportaciones de datos personalizadas

Puedes crear tu propia exportación de datos personalizada para una aplicación. En oTree Studio, ve al modelo «Player» y haz clic en «custom_export» en la parte inferior. (Si usas un editor de texto, define la función a continuación). El argumento players es un queryset de todos los jugadores en la base de datos. Usa un yield para cada fila de datos.

def custom_export(players):
    # header row
    yield ['session', 'participant_code', 'round_number', 'id_in_group', 'payoff']
    for p in players:
        participant = p.participant
        session = p.session
        yield [session.code, participant.code, p.round_number, p.id_in_group, p.payoff]

O puedes ignorar el argumento players y exportar otros datos en su lugar, por ejemplo:

def custom_export(players):
    # Export an ExtraModel called "Trial"

    yield ['session', 'participant', 'round_number', 'response', 'response_msec']

    # 'filter' without any args returns everything
    trials = Trial.filter()
    for trial in trials:
        player = trial.player
        participant = player.participant
        session = player.session
        yield [session.code, participant.code, player.round_number, trial.response, trial.response_msec]

Una vez que esta función esté definida, tu exportación de datos personalizada estará disponible en la página de exportación de datos regular.

Multiple custom_export functions

Nota

To use this, you must install oTree 6.0

You can define multiple custom export functions; just make sure they all start with custom_export; e.g. def custom_export_xyz(players):.

Información de depuración

Cuando oTree se ejecuta en modo DEBUG (es decir, cuando la variable de entorno OTREE_PRODUCTION no está configurada), la información de depuración se muestra en la parte inferior de todas las pantallas.

Pagos

Si defines un participant field llamado finished, entonces puedes establecer participant.finished = True cuando un participante termina la sesión, y esto se mostrará en varios lugares como la página de pagos.