views.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. from datetime import datetime
  2. from django.conf import settings
  3. from django.template.context import RequestContext
  4. from django.views.generic import list_detail
  5. from django.shortcuts import render_to_response, get_object_or_404
  6. from django.template import loader
  7. from django.http import HttpResponse
  8. from django.core.xheaders import populate_xheaders
  9. DEFAULT_TEMPLATE = "marketplace/guide/default.html"
  10. from marketplace.models import *
  11. def index(request):
  12. categories = Category.objects.all()
  13. features = Business.objects.filter(status=3)[:3]
  14. guides = Guide.objects.filter(published=True, pub_date__lte=datetime.now)
  15. return render_to_response(
  16. "marketplace/index.html", locals(), context_instance=RequestContext(request)
  17. )
  18. def category_index(request, slug):
  19. category = get_object_or_404(Category, slug=slug)
  20. subcategories = Subcategory.objects.filter(category=category)
  21. businesses = Business.objects.filter(categories=category)
  22. return render_to_response(
  23. "marketplace/category_index.html",
  24. locals(),
  25. context_instance=RequestContext(request),
  26. )
  27. def subcategory_index(request, category_slug, slug):
  28. category = get_object_or_404(Category, slug=category_slug)
  29. subcategory = get_object_or_404(Subcategory, slug=slug)
  30. businesses = Business.objects.filter(subcategories=subcategory)
  31. return render_to_response(
  32. "marketplace/subcategory_index.html",
  33. locals(),
  34. context_instance=RequestContext(request),
  35. )
  36. def business_detail(request, slug):
  37. business = get_object_or_404(Business, slug=slug)
  38. if business.hours_set.all():
  39. hours = business.hours_set.all()
  40. if business.dininghours_set.all():
  41. dining_hours = business.dininghours_set.all()
  42. if business.menu_set:
  43. menus = business.menu_set.all()
  44. if business.point:
  45. latitude = business.point.lat_lon.split(",")[0]
  46. longitude = business.point.lat_lon.split(",")[1]
  47. gmaps_api_key = settings.GOOGLE_API_KEY
  48. return render_to_response(
  49. "marketplace/business_detail.html",
  50. locals(),
  51. context_instance=RequestContext(request),
  52. )
  53. def guide_index(request):
  54. guides = Guide.objects.filter(
  55. published=True, featured=True, pub_date__lte=datetime.now
  56. )
  57. return render_to_response(
  58. "marketplace/guide_index.html",
  59. locals(),
  60. context_instance=RequestContext(request),
  61. )
  62. def guide_detail(request, slug):
  63. guide = get_object_or_404(Guide, slug=slug)
  64. if guide.template_name:
  65. t = loader.select_template((guide.template_name, DEFAULT_TEMPLATE))
  66. else:
  67. t = loader.get_template(DEFAULT_TEMPLATE)
  68. c = RequestContext(request, {"guide": guide,})
  69. response = HttpResponse(t.render(c))
  70. populate_xheaders(request, response, guide, guide.id)
  71. return response