:py:mod:`oioioi.base.templatetags.simple_filters`
=================================================
.. py:module:: oioioi.base.templatetags.simple_filters
Module Contents
---------------
Functions
~~~~~~~~~
.. autoapisummary::
oioioi.base.templatetags.simple_filters.is_checkbox
oioioi.base.templatetags.simple_filters.is_checkbox_select_multiple
oioioi.base.templatetags.simple_filters.is_radioselect
oioioi.base.templatetags.simple_filters.lookup
oioioi.base.templatetags.simple_filters.safe_lookup
oioioi.base.templatetags.simple_filters.multival_lookup
oioioi.base.templatetags.simple_filters.indent_string
oioioi.base.templatetags.simple_filters._append_attr
oioioi.base.templatetags.simple_filters.add_class
oioioi.base.templatetags.simple_filters.add_form
oioioi.base.templatetags.simple_filters.partition
oioioi.base.templatetags.simple_filters.cyclic_lookup
oioioi.base.templatetags.simple_filters.zip_lists
oioioi.base.templatetags.simple_filters.jsonify
oioioi.base.templatetags.simple_filters.json_parse
oioioi.base.templatetags.simple_filters.latex_escape
oioioi.base.templatetags.simple_filters.result_color_class
Attributes
~~~~~~~~~~
.. autoapisummary::
oioioi.base.templatetags.simple_filters.register
.. py:data:: register
.. py:function:: is_checkbox(field)
.. py:function:: is_checkbox_select_multiple(field)
.. py:function:: is_radioselect(field)
.. py:function:: lookup(d, key)
Lookup value from dictionary
Example:
{% load simple_filters %}
{{ dict|lookup:key }}
.. py:function:: safe_lookup(d, key)
Lookup value from dictionary. Returns None if key ``key``
is not present in ``d``.
Example:
{% load simple_filters %}
{{ dict|safe_lookup:key }}
.. py:function:: multival_lookup(d, key)
Returns a value list corresponding to a key from Django's MultiValueDict
.. py:function:: indent_string(value, num_spaces=4)
Adds ``num_spaces`` spaces at the
beginning of every line in value.
.. py:function:: _append_attr(field, attribute, value)
.. py:function:: add_class(field, css_class)
Adds css class to a django form field
:param field: form field
:param css_class: css class
:return: field with added class
Example usage
# my_app/forms.py
```python
class MyForm(Form):
my_field = forms.CharField(max_length=100)
# my_app/views.py
```python
def get_form(request):
my_form = MyForm()
return render(request, 'my_form.html', { form: my_form })
```
# my_app/templates/my_form.html
```html
{{ form.field|add_class:"my-class" }}
```
would generate
```html
```
.. py:function:: add_form(field, form_id)
.. py:function:: partition(thelist, n)
From: http://djangosnippets.org/snippets/6/
Break a list into ``n`` pieces. If ``n`` is not a divisor of the
length of the list, then first pieces are one element longer
then the last ones. That is::
>>> l = range(10)
>>> partition(l, 2)
[[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]
>>> partition(l, 3)
[[0, 1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> partition(l, 4)
[[0, 1, 2], [3, 4, 5], [6, 7], [8, 9]]
>>> partition(l, 5)
[[0, 1], [2, 3], [4, 5], [6, 7], [8, 9]]
You can use the filter in the following way:
{% load simple_filters %}
{% for sublist in mylist|parition:"3" %}
{% for item in sublist %}
do something with {{ item }}
{% endfor %}
{% endfor %}
.. py:function:: cyclic_lookup(thelist, index)
.. py:function:: zip_lists(a, b)
.. py:function:: jsonify(value)
Be careful when using it directly in js! Code like that:
contains an XSS vulnerability. That's because browsers
will interpret tag inside js string.
.. py:function:: json_parse(value)
This is a correct way of embedding json inside js in an HTML template.
.. py:function:: latex_escape(x)
Escape string for generating LaTeX report.
Usage:
{{ malicious|latex_escape }}
Remember: when generating LaTeX report, you should always check
whether \write18 is disabled!
http://www.texdev.net/2009/10/06/what-does-write18-mean/
.. py:function:: result_color_class(raw_score)