Skip to content

Instantly share code, notes, and snippets.

@gijs
Created September 10, 2008 09:15
Show Gist options
  • Save gijs/9853 to your computer and use it in GitHub Desktop.
Save gijs/9853 to your computer and use it in GitHub Desktop.
def getxml(request):
"""docstring for getxml"""
"""
<vars>
<prices type="array">
<price count="0" type="int">0</price>
<price count="1" type="int">1</price>
<price count="2" type="int">2</price>
<price count="3" type="int">3</price>
<price count="4" type="int">4</price>
<price count="5" type="int">5</price>
<price count="6" type="int">6</price>
</prices>
</vars>
"""
# import pdb
# pdb.set_trace()
from stupidxml import Node
root = Node("vars")
prices = root.append(Node("prices", type="array"))
distance = request.GET['distance']
volwassenen = request.GET['volwassenen']
kinderen = request.GET['kinderen']
woningtype = request.GET['woningtype']
kamers = request.GET['kamers']
current = request.GET['huidigevraag']
if current == "0":
# partnerkeuze
try:
d = Distance.objects.filter(distance_min__lte=distance).filter(distance_max__gte=distance)
v = Volume.objects.filter(volwassenen='1').filter(kinderen=kinderen).filter(woningtype=woningtype).filter(kamers=kamers)
print "v: ", v
p = Price.objects.filter(volume_min__lte=v[0].volume, volume_max__gte=v[0].volume, distance=d[0])
prices.append(Node("price", str(p[0]), type="int", count="0"))
v = Volume.objects.filter(volwassenen='2').filter(kinderen=kinderen).filter(woningtype=woningtype).filter(kamers=kamers)
p = Price.objects.filter(volume_min__lte=v[0].volume, volume_max__gte=v[0].volume, distance=d[0])
prices.append(Node("price", str(p[0]), type="int", count="1"))
except:
# prices.append(Node("price", "0", type="int", count="0"))
pass
return HttpResponse(root.dom.toxml("UTF-8"))
elif current == "1":
# kinderen
try:
d = Distance.objects.filter(distance_min__lte=distance).filter(distance_max__gte=distance)
v = Volume.objects.filter(volwassenen=volwassenen).filter(kinderen='0').filter(woningtype=woningtype).filter(kamers=kamers)
p = Price.objects.filter(volume_min__lte=v[0].volume, volume_max__gte=v[0].volume, distance=d[0])
prices.append(Node("price", str(p[0]), type="int", count="0"))
v = Volume.objects.filter(volwassenen=volwassenen).filter(kinderen='1').filter(woningtype=woningtype).filter(kamers=kamers)
p = Price.objects.filter(volume_min__lte=v[0].volume, volume_max__gte=v[0].volume, distance=d[0])
prices.append(Node("price", str(p[0]), type="int", count="1"))
v = Volume.objects.filter(volwassenen=volwassenen).filter(kinderen='2').filter(woningtype=woningtype).filter(kamers=kamers)
p = Price.objects.filter(volume_min__lte=v[0].volume, volume_max__gte=v[0].volume, distance=d[0])
prices.append(Node("price", str(p[0]), type="int", count="2"))
v = Volume.objects.filter(volwassenen=volwassenen).filter(kinderen='3').filter(woningtype=woningtype).filter(kamers=kamers)
p = Price.objects.filter(volume_min__lte=v[0].volume, volume_max__gte=v[0].volume, distance=d[0])
prices.append(Node("price", str(p[0]), type="int", count="3"))
v = Volume.objects.filter(volwassenen=volwassenen).filter(kinderen='4').filter(woningtype=woningtype).filter(kamers=kamers)
p = Price.objects.filter(volume_min__lte=v[0].volume, volume_max__gte=v[0].volume, distance=d[0])
prices.append(Node("price", str(p[0]), type="int", count="4"))
v = Volume.objects.filter(volwassenen=volwassenen).filter(kinderen='5').filter(woningtype=woningtype).filter(kamers=kamers)
p = Price.objects.filter(volume_min__lte=v[0].volume, volume_max__gte=v[0].volume, distance=d[0])
prices.append(Node("price", str(p[0]), type="int", count="5"))
v = Volume.objects.filter(volwassenen=volwassenen).filter(kinderen='6').filter(woningtype=woningtype).filter(kamers=kamers)
p = Price.objects.filter(volume_min__lte=v[0].volume, volume_max__gte=v[0].volume, distance=d[0])
prices.append(Node("price", str(p[0]), type="int", count="6"))
except:
# prices.append(Node("price", "0", type="int", count="0"))
pass
return HttpResponse(root.dom.toxml("UTF-8"))
elif current == "2":
# kamers
try:
d = Distance.objects.filter(distance_min__lte=distance).filter(distance_max__gte=distance)
v = Volume.objects.filter(volwassenen=volwassenen).filter(kinderen=kinderen).filter(woningtype=woningtype).filter(kamers='1')
p = Price.objects.filter(volume_min__lte=v[0].volume, volume_max__gte=v[0].volume, distance=d[0])
prices.append(Node("price", str(p[0]), type="int", count="0"))
v = Volume.objects.filter(volwassenen=volwassenen).filter(kinderen=kinderen).filter(woningtype=woningtype).filter(kamers='2')
p = Price.objects.filter(volume_min__lte=v[0].volume, volume_max__gte=v[0].volume, distance=d[0])
prices.append(Node("price", str(p[0]), type="int", count="1"))
v = Volume.objects.filter(volwassenen=volwassenen).filter(kinderen=kinderen).filter(woningtype=woningtype).filter(kamers='3')
p = Price.objects.filter(volume_min__lte=v[0].volume, volume_max__gte=v[0].volume, distance=d[0])
prices.append(Node("price", str(p[0]), type="int", count="2"))
v = Volume.objects.filter(volwassenen=volwassenen).filter(kinderen=kinderen).filter(woningtype=woningtype).filter(kamers='4')
p = Price.objects.filter(volume_min__lte=v[0].volume, volume_max__gte=v[0].volume, distance=d[0])
prices.append(Node("price", str(p[0]), type="int", count="3"))
v = Volume.objects.filter(volwassenen=volwassenen).filter(kinderen=kinderen).filter(woningtype=woningtype).filter(kamers='5')
p = Price.objects.filter(volume_min__lte=v[0].volume, volume_max__gte=v[0].volume, distance=d[0])
prices.append(Node("price", str(p[0]), type="int", count="4"))
except:
# prices.append(Node("price", "0", type="int", count="0"))
pass
return HttpResponse(root.dom.toxml("UTF-8"))
elif current == "3":
# woningtype
try:
d = Distance.objects.filter(distance_min__lte=distance).filter(distance_max__gte=distance)
v = Volume.objects.filter(volwassenen=volwassenen).filter(kinderen=kinderen).filter(woningtype='1').filter(kamers=kamers)
p = Price.objects.filter(volume_min__lte=v[0].volume, volume_max__gte=v[0].volume, distance=d[0])
prices.append(Node("price", str(p[0]), type="int", count="0"))
v = Volume.objects.filter(volwassenen=volwassenen).filter(kinderen=kinderen).filter(woningtype='2').filter(kamers=kamers)
p = Price.objects.filter(volume_min__lte=v[0].volume, volume_max__gte=v[0].volume, distance=d[0])
prices.append(Node("price", str(p[0]), type="int", count="1"))
v = Volume.objects.filter(volwassenen=volwassenen).filter(kinderen=kinderen).filter(woningtype='3').filter(kamers=kamers)
p = Price.objects.filter(volume_min__lte=v[0].volume, volume_max__gte=v[0].volume, distance=d[0])
prices.append(Node("price", str(p[0]), type="int", count="2"))
v = Volume.objects.filter(volwassenen=volwassenen).filter(kinderen=kinderen).filter(woningtype='4').filter(kamers=kamers)
p = Price.objects.filter(volume_min__lte=v[0].volume, volume_max__gte=v[0].volume, distance=d[0])
prices.append(Node("price", str(p[0]), type="int", count="3"))
v = Volume.objects.filter(volwassenen=volwassenen).filter(kinderen=kinderen).filter(woningtype='5').filter(kamers=kamers)
p = Price.objects.filter(volume_min__lte=v[0].volume, volume_max__gte=v[0].volume, distance=d[0])
prices.append(Node("price", str(p[0]), type="int", count="4"))
except Exception, e:
# prices.append(Node("price", "0", type="int", count="0"))
pass
return HttpResponse(root.dom.toxml("UTF-8"))
elif current == "4":
# distance
try:
d = Distance.objects.filter(distance_min__lte=distance).filter(distance_max__gte=distance)
v = Volume.objects.filter(volwassenen=volwassenen).filter(kinderen=kinderen).filter(woningtype=woningtype).filter(kamers=kamers)
p = Price.objects.filter(volume_min__lte=v[0].volume, volume_max__gte=v[0].volume, distance=d[0])
print "d: ", d
print "v: ", v
print "p: ", p
prices.append(Node("price", str(p[0]), type="int", count="0"))
except:
# prices.append(Node("price", "0", type="int", count="0"))
pass
return HttpResponse(root.dom.toxml("UTF-8"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment