{% load timestamp %}
+{% load defined %}
{
"response": {
{% if meta %}{% for key, value in meta.items %}
"text": "{{ error.text }}"
},
{% endif %}
-{% if servers %}
+{% if servers|defined %}
"servers": {
"@href": "{% url recycloid-api-servers %}",
"server": [
]
},
{% endif %}
-{% if owners %}
+{% if owners|defined %}
"owners": {
"@href": "{% url recycloid-api-owners %}",
"owner": [
]
},
{% endif %}
-{% if stashes %}
+{% if stashes|defined %}
"stashes": {
"@href": "{% url recycloid-api-stashes %}",
"stash": [
]
},
{% endif %}
-{% if items %}
+{% if items|defined %}
"items": {
"@href": "{% url recycloid-api-items %}",
"item": [
]
},
{% endif %}
-{% if images %}
+{% if images|defined %}
"images": {
"@href": "{% url recycloid-api-images %}",
"image": [
{% spaceless %}
{% load timestamp %}
+{% load defined %}
<?xml version="1.0" encoding="UTF-8"?>
<response{% if meta %}{% for key, value in meta.items %} {{ key }}="{{ value }}"{% endfor %}{% endif %}>
{% if error %}
<text>{{ error.text }}</text>
</error>
{% endif %}
-{% if servers %}
+{% if servers|defined %}
<servers href="{% url recycloid-api-servers %}">
{% for server in servers %}
<server uuid="{{ server.uuid }}">
{% endfor %}
</servers>
{% endif %}
-{% if owners %}
+{% if owners|defined %}
<owners href="{% url recycloid-api-owners %}">
{% for owner in owners %}
<owner uuid="{{ owner.uuid }}" server="{{ owner.server.uuid }}">
{% endfor %}
</owners>
{% endif %}
-{% if stashes %}
+{% if stashes|defined %}
<stashes href="{% url recycloid-api-stashes %}">
{% for stash in stashes %}
<stash uuid="{{ stash.uuid }}" owner="{{ stash.owner.uuid }}" server="{{ stash.server.uuid }}">
{% endfor %}
</stashes>
{% endif %}
-{% if items %}
+{% if items|defined %}
<items href="{% url recycloid-api-items %}">
{% for item in items %}
<item uuid="{{ item.uuid }}" stash="{{ item.stash.uuid }}">
{% endfor %}
</items>
{% endif %}
-{% if images %}
+{% if images|defined %}
<images href="{% url recycloid-api-images %}">
{% for image in images %}
<image uuid="{{ image.uuid }}" item="{{ image.item.uuid }}">
--- /dev/null
+from django import template
+
+register = template.Library()
+
+
+@register.filter
+def defined(value):
+ """
+ Answers whether the value is defined or not.
+
+ This is useful when you want to distinguish between an empty value and an undefined value::
+
+ {% if athletes_list %}
+ There are athletes.
+ {% else %}
+ List of athletes is either empty or not defined at all.
+ {% endif %}
+
+ {% if athletes_list|length >= 0 %}
+ List of athletes is either empty or not defined at all.
+ {% else %}
+ There are athletes.
+ {% endif %}
+
+ {% if athletes_list|defined %}
+ List of athletes is defined but might be empty.
+ {% else %}
+ List of athletes is not defined.
+ {% endif %}
+
+ Note that technically this compares the value against ``None``, which
+ is what template system returnes for undefined variables in the
+ context. In other words, if the context has the variable, but its
+ value is ``None``, it is considered undefined byt this filter.
+ """
+ if value is None:
+ return False
+ return True
image = r'(?P<image>' + uuid + r')'
urlpatterns = patterns('recycloid_api.views',
+ url(r'^$', 'index', name='recycloid-api-index'),
url(r'^servers/$', 'servers', name='recycloid-api-servers'),
url(r'^servers/' + server + r'/$', 'servers', name='recycloid-api-server'),
url(r'^servers/' + server + r'/stashes/$', 'stashes'),
return __response(request, context)
+def index(request):
+ """
+ Returns a list of links.
+
+ :param request: HttpRequest
+ :return: HttpReponse
+ """
+ context = {'servers': [],
+ 'owners': [],
+ 'stashes': [],
+ 'items': [],
+ 'images': []}
+ return __response(request, context)
+
+
def servers(request, server=None):
"""
Returns a list of servers or one server.