views.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. from django.shortcuts import get_list_or_404, render_to_response, get_object_or_404
  2. from django.template import RequestContext
  3. from django.http import Http404
  4. from django.contrib.auth.decorators import login_required
  5. from django.http import HttpResponseRedirect
  6. from django.core.urlresolvers import reverse
  7. from django.conf import settings
  8. from datetime import datetime
  9. from classifieds.models import Classified, Subcategory
  10. # from classifieds.forms import ClassifiedForm
  11. def index(request):
  12. subcategories = Subcategory.objects.filter(
  13. classified__expires_on__gt=datetime.now()
  14. ).distinct()
  15. return render_to_response(
  16. "classifieds/index.html", locals(), context_instance=RequestContext(request)
  17. )
  18. def subcat_detail(request, slug):
  19. subcategories = Subcategory.objects.filter(
  20. classified__expires_on__gte=datetime.now()
  21. ).distinct()
  22. object = Subcategory.objects.get(slug=slug)
  23. featured_objects = Classified.featured_objects.filter(subcategory__slug=slug).extra(
  24. order_by=["copy"]
  25. )
  26. objects = Classified.live_objects.filter(subcategory__slug=slug, featured=False)
  27. return render_to_response(
  28. "classifieds/subcat_detail.html",
  29. locals(),
  30. context_instance=RequestContext(request),
  31. )
  32. def subcat_old_redirect(request, underscore_slug):
  33. slug = underscore_slug.replace("_", "-")
  34. subcategories = Subcategory.objects.filter(
  35. classified__expires_on__gte=datetime.now()
  36. ).distinct()
  37. try:
  38. object = Subcategory.objects.get(slug=slug)
  39. except Subcategory.DoesNotExist:
  40. raise Http404
  41. except AssertionError:
  42. raise Http404
  43. featured_objects = Classified.featured_objects.filter(subcategory__slug=slug).extra(
  44. order_by=["copy"]
  45. )
  46. objects = Classified.live_objects.filter(subcategory__slug=slug, featured=False)
  47. return render_to_response(
  48. "classifieds/subcat_detail.html",
  49. locals(),
  50. context_instance=RequestContext(request),
  51. )
  52. """
  53. def classified_detail(request, id):
  54. if request.user.is_authenticated():
  55. ad = Classified.objects.get(pk=id)
  56. if ad.owner == request.user:
  57. object=ad
  58. else:
  59. try:
  60. object=Classified.live_objects.get(pk=id)
  61. objects=Classified.live_objects.filter(subcategory__pk=object.subcategory.pk).exclude(pk=object.pk)
  62. except:
  63. pass
  64. return render_to_response('classifieds/classified_detail.html', locals(),
  65. context_instance=RequestContext(request))
  66. @login_required
  67. def classified_create(request):
  68. form=ClassifiedForm(request.POST or None)
  69. if form.is_valid():
  70. classified=form.save(commit=False)
  71. classified.owner=request.user
  72. classified.save()
  73. return HttpResponseRedirect(reverse('classifieds.views.classified_detail', args=[classified.id]))
  74. return render_to_response('classifieds/classified_create.html', locals(),
  75. context_instance=RequestContext(request))
  76. @login_required
  77. def classified_edit(request, id):
  78. instance = None
  79. if id is not None:
  80. instance = get_object_or_404(Classified, pk=id)
  81. if request.method == 'POST':
  82. form=ClassifiedForm(request.POST, instance=instance)
  83. if form.is_valid():
  84. classified=form.save()
  85. return HttpResponseRedirect(reverse('classifieds.views.classified_detail', args=[classified.id]))
  86. else:
  87. form = ClassifiedForm(instance=instance)
  88. return render_to_response('classifieds/classified_edit.html', locals(),
  89. context_instance=RequestContext(request))
  90. """