: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)