{% macro render_table(data,
                      titles=None,
                      primary_key='id',
                      primary_key_title='#',
                      caption=None,
                      table_classes=None,
                      header_classes=None,
                      responsive=False,
                      responsive_class='table-responsive',
                      show_actions=False,
                      actions_title='Actions',
                      view_url=None,
                      edit_url=None,
                      delete_url=None,
                      action_pk_placeholder=':primary_key') %}
  {% if not titles %}
    {% set titles = get_table_titles(data, primary_key, primary_key_title) %}
  {% endif %}
  {% if responsive %}
    <div class="{{ responsive_class }}">
  {% endif %}
<table class="table{% if table_classes %}{{ ' ' + table_classes }}{% endif %}">
  {% if caption %}
    <caption>{{ caption }}</caption>
  {% endif %}
  <thead {% if header_classes %}class="{{ header_classes }}"{% endif %}>
  <tr>
    {% for title in titles %}
      <th scope="col">{{ title[1] }}</th>
    {% endfor %}
    {% if show_actions %}
      <th scope="col">{{ actions_title }}</th>
    {% endif %}
  </tr>
  </thead>
  <tbody>
  {% for row in data %}
    <tr>
      {% for title in titles %}
        {% if title[0] == primary_key %}
          <th scope="row">{{ row[title[0]] }}</th>
        {% else %}
          <td>{{ row[title[0]] }}</td>
        {% endif %}
      {% endfor %}
      {% if show_actions %}
        <td>
          {% if view_url %}
            <a href="{{ view_url | replace(action_pk_placeholder, row[primary_key]) }}"><img src="{{ url_for('bootstrap.static', filename='img/view.svg') }}" alt="View"></a>
          {% endif %}
          {% if edit_url %}
            <a href="{{ edit_url | replace(action_pk_placeholder, row[primary_key]) }}"><img src="{{ url_for('bootstrap.static', filename='img/edit.svg') }}" alt="Edit"></a>
          {% endif %}
          {% if delete_url %}
            <form style="display:inline" action="{{ delete_url | replace(action_pk_placeholder, row[primary_key]) }}" method="post">
              <input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>
              <input type="image" src="{{ url_for('bootstrap.static', filename='img/delete.svg') }}" alt="Delete">
            </form>
          {% endif %}
        </td>
      {% endif %}
    </tr>
  {% endfor %}
  </tbody>
</table>
{% if responsive %}
  </div>
{% endif %}
{% endmacro %}
