Skip to content

Commit

Permalink
Optional fields in formList such as manifestUrl should be empty incas…
Browse files Browse the repository at this point in the history
…e none exists.

fixes #1519

Signed-off-by: Lincoln Simba <[email protected]>
  • Loading branch information
lincmba committed Jan 22, 2019
1 parent 27855d5 commit c744845
Showing 1 changed file with 16 additions and 7 deletions.
23 changes: 16 additions & 7 deletions onadata/libs/renderers/renderers.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,11 @@
import math
from io import BytesIO

from future.utils import iteritems

import pytz
from django.utils.dateparse import parse_datetime
from django.utils.encoding import smart_text
from django.utils.xmlutils import SimplerXMLGenerator

import pytz
from future.utils import iteritems
from rest_framework import negotiation
from rest_framework.compat import six
from rest_framework.renderers import (BaseRenderer, JSONRenderer,
Expand All @@ -31,6 +29,14 @@
'meta/sessionID',
]

FORMLIST_MANDATORY_FIELDS = [
'formID',
'name',
'version',
'hash',
'downloadUrl'
]


def pairing(val1, val2):
"""
Expand Down Expand Up @@ -244,9 +250,12 @@ def _to_xml(self, xml, data):

elif isinstance(data, dict):
for (key, value) in iteritems(data):
xml.startElement(key, {})
self._to_xml(xml, value)
xml.endElement(key)
if key not in FORMLIST_MANDATORY_FIELDS and value is None:
pass
else:
xml.startElement(key, {})
self._to_xml(xml, value)
xml.endElement(key)

elif data is None:
# Don't output any value
Expand Down

0 comments on commit c744845

Please sign in to comment.