wikimedia/eventmetrics

View on GitHub
templates/programs/show.html.twig

Summary

Maintainability
Test Coverage
{% extends 'base.html.twig' %}
{% import 'macros/layout.html.twig' as layout %}

{% block breadcrumb %}
    <ol class="breadcrumb">
        {% if isOrganizer %}
            <li><a href="{{ path('Programs') }}">{{ msg('my-programs') }}</a></li>
        {% endif %}
        <li class="active">{{ bdi(program.displayTitle) }}</li>
    </ol>
{% endblock %}

{% block body %}
    <div class="container">
        <div class="page-header">
            <div class="page-title">{{ msg('event-list')|upper }}</div>
            <div class="btn-group pull-right">
                <a class="btn btn-default" href="{{ path('EditProgram', {'programId': program.id}) }}">{{ msg('settings') }}</a>
                {% if isOrganizer %}
                    <a href="{{ path('NewEvent', {'programId': program.id}) }}" class="btn btn-primary">
                        {{ msg('create-new-event') }}
                    </a>
                {% endif %}
            </div>
            <h1 class="page-subject-title">
                {{ bdi(program.displayTitle) }}
            </h1>
            <div class="programs-organizers">
                {{ msg('organizers') }}:
                {% set user_links = [] %}
                {% for username in program.organizerNames %}
                    {% set user_links = user_links|merge(['<a target="_blank" href="https://meta.wikimedia.org/wiki/User:' ~ username ~ '">' ~ username ~ '</a>']) %}
                {% endfor %}
                {{ user_links|list_format|raw }}
            </div>
        </div>

        {% if program.events|length < 1 %}
            <div class="text-center">{{ msg('no-events') }}</div>
        {% else %}
            <table class="table em-table events-list">
                <thead>
                    <tr>
                        <th>
                            <div class="sort-link sort-link--event" data-column="event">
                                {{ msg('event') }}
                            </div>
                        </th>
                        {% if isOrganizer %}
                            <th class="text-nowrap"></th>
                        {% endif %}
                        {% for metric in visibleMetrics if metrics[metric] is defined %}
                            <th class="text-nowrap">
                                <div class="sort-link sort-link--{{ metric }}" data-column="{{ metric }}">
                                    {{ msg(metric, [metrics[metric]]) }}
                                </div>
                            </th>
                        {% endfor %}
                    </tr>
                </thead>
                <tbody>
                    {% for event in program.events %}
                        <tr class="event-entry">
                            <td class="sort-entry--event" data-value="{{ event.title }}">
                                <a href="{{ path('Event', {'programId': program.id, 'eventId': event.id}) }}">{{ bdi(event.displayTitle) }}</a>
                            </td>
                            {% set num_participants = event.numParticipants %}
                            {% if isOrganizer %}
                                <td class="text-nowrap">
                                    {{ layout.actionButtons('Event', event, {'programId': program.id, 'eventId': event.id}, num_participants == 0) }}
                                </td>
                            {% endif %}
                            {% for metric in visibleMetrics if metrics[metric] is defined %}
                                {% set stat = event.statistic(metric) %}
                                <td class="text-nowrap sort-entry--{{ metric }} text-nowrap" data-value="{{ stat ? stat.value : -1 }}">
                                    {{ (stat ? stat.value|num_format : '&ndash;')|raw }}
                                </td>
                            {% endfor %}
                        </tr>
                    {% endfor %}
                </tbody>
            </table>
        {% endif %}
    </div>
{% endblock %}