mirror of
https://github.com/zulip/zulip.git
synced 2026-06-24 21:08:25 +08:00
This results in a substantial performance improvement for all of
Zulip's backend templates.
Changes in templates:
- Change `block.super` to `super()`.
- Remove `load` tag because Jinja2 doesn't support it.
- Use `minified_js()|safe` instead of `{% minified_js %}`.
- Use `compressed_css()|safe` instead of `{% compressed_css %}`.
- `forloop.first` -> `loop.first`.
- Use `{{ csrf_input }}` instead of `{% csrf_token %}`.
- Use `{# ... #}` instead of `{% comment %}`.
- Use `url()` instead of `{% url %}`.
- Use `_()` instead of `{% trans %}` because in Jinja `trans` is a block tag.
- Use `{% trans %}` instead of `{% blocktrans %}`.
- Use `{% raw %}` instead of `{% verbatim %}`.
Changes in tools:
- Check for `trans` block in `check-templates` instead of `blocktrans`
Changes in backend:
- Create custom `render_to_response` function which takes `request` objects
instead of `RequestContext` object. There are two reasons to do this:
1. `RequestContext` is not compatible with Jinja2
2. `RequestContext` in `render_to_response` is deprecated.
- Add Jinja2 related support files in zproject/jinja2 directory. It
includes a custom backend and a template renderer, compressors for js
and css and Jinja2 environment handler.
- Enable `slugify` and `pluralize` filters in Jinja2 environment.
Fixes #620.
50 lines
894 B
HTML
50 lines
894 B
HTML
{% extends "zerver/base.html" %}
|
|
|
|
{# User Activity. #}
|
|
|
|
{% block title %}
|
|
<title>{{ title }}</title>
|
|
{% endblock %}
|
|
|
|
|
|
{% block customhead %}
|
|
{{ super() }}
|
|
{{ minified_js('activity')|safe }}
|
|
{{ compressed_css('activity')|safe }}
|
|
{% endblock %}
|
|
|
|
{% block content %}
|
|
|
|
{% if not is_home %}
|
|
<a class="show-all" href="/activity">Home</a>
|
|
<br />
|
|
{% endif %}
|
|
|
|
<h4>{{ title }}</h4>
|
|
|
|
{% if realm_link %}
|
|
<a href="{{ realm_link }}">Graph</a><br />
|
|
{% endif %}
|
|
|
|
<ul class="nav nav-tabs">
|
|
{% for name, activity in data %}
|
|
<li {% if loop.first %} class="active" {% endif %}>
|
|
<a href="#{{ name|slugify }}" data-toggle="tab">{{ name }}</a>
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
|
|
<div class="tab-content">
|
|
|
|
{% for name, activity in data %}
|
|
|
|
<div class="tab-pane {% if loop.first %} active {% endif %}" id="{{ name|slugify }}">
|
|
{{ activity|safe }}
|
|
</div>
|
|
|
|
{% endfor %}
|
|
|
|
</div>
|
|
|
|
{% endblock %}
|