12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- <!--
- This file is part of Lodel 2 (https://github.com/OpenEdition)
-
- Copyright (C) 2015-2017 Cléo UMS-3287
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as published
- by the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details.
-
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- -->
-
-
- <!-- Produce a <li></li> with objects informations -->
- {% macro object_ul(leo, max_depth = 0, exclude = []) -%}
- <ul>
- {% if max_depth <= 0 %}
- <!-- No need to go deeper -->
- {% for fname, fvalue in leo.datas(True).items() %}
- <li><em>{{ fname }}</em> : {{fvalue}}</li>
- {%endfor%}
- {% else %}
- {% for fname in leo.fieldnames(True) %}
- {% set fvalue = leo.data(fname) %}
- {% set fdh = leo.data_handler(fname) %}
- {% if fvalue is not none and fdh.is_reference() %}
- {% if fdh.is_singlereference() %}
- {% set referenced = fdh.get_referenced(fvalue) %}
- {% if (referenced.__class__.__name__, referenced.uid) in exclude %}
- <li><em>{{fname}}</em> : {{fvalue}}</li>
- {% else %}
- <li><em>{{fname}}</em> : {{object_ul(referenced, max_depth - 1, exclude + [(leo.__class__.__name__, leo.uid())] )}}</li>
- {% endif %}
- {% else %}
- <li><em>{{fname}}</em> : <ul>
- {% for referenced in fdh.get_referenced(fvalue) %}
- {% if (referenced.__class__.__name__, referenced.uid) in exclude %}
- <li><em>{{fname}}</em> : {{fvalue}}</li>
- {% else %}
- <li><em>{{fname}}</em> : {{object_ul(referenced, max_depth - 1, exclude + [(leo.__class__.__name__, leo.uid())] )}}</li>
- {% endif %}
- {% endfor %}
- </ul></li>
- {% endif %}
- {% else %}
- <li><em>{{fname}}</em> : {{fvalue}}</li>
- {% endif %}
- {% endfor %}
- {% endif %}
- </ul>
- {%- endmacro %}
|