views.py 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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(classified__expires_on__gt=datetime.now()).distinct()
  13. return render_to_response('classifieds/index.html', locals(),
  14. context_instance=RequestContext(request))
  15. def subcat_detail(request, slug):
  16. subcategories=Subcategory.objects.filter(classified__expires_on__gte=datetime.now()).distinct()
  17. object=Subcategory.objects.get(slug=slug)
  18. featured_objects=Classified.featured_objects.filter(subcategory__slug=slug).extra(order_by=['copy'])
  19. objects=Classified.live_objects.filter(subcategory__slug=slug, featured=False)
  20. return render_to_response('classifieds/subcat_detail.html', locals(),
  21. context_instance=RequestContext(request))
  22. def subcat_old_redirect(request, underscore_slug):
  23. slug = underscore_slug.replace('_', '-')
  24. subcategories=Subcategory.objects.filter(classified__expires_on__gte=datetime.now()).distinct()
  25. try:
  26. object=Subcategory.objects.get(slug=slug)
  27. except Subcategory.DoesNotExist:
  28. raise Http404
  29. except AssertionError:
  30. raise Http404
  31. featured_objects=Classified.featured_objects.filter(subcategory__slug=slug).extra(order_by=['copy'])
  32. objects=Classified.live_objects.filter(subcategory__slug=slug, featured=False)
  33. return render_to_response('classifieds/subcat_detail.html', locals(),
  34. context_instance=RequestContext(request))
  35. '''
  36. def classified_detail(request, id):
  37. if request.user.is_authenticated():
  38. ad = Classified.objects.get(pk=id)
  39. if ad.owner == request.user:
  40. object=ad
  41. else:
  42. try:
  43. object=Classified.live_objects.get(pk=id)
  44. objects=Classified.live_objects.filter(subcategory__pk=object.subcategory.pk).exclude(pk=object.pk)
  45. except:
  46. pass
  47. return render_to_response('classifieds/classified_detail.html', locals(),
  48. context_instance=RequestContext(request))
  49. @login_required
  50. def classified_create(request):
  51. form=ClassifiedForm(request.POST or None)
  52. if form.is_valid():
  53. classified=form.save(commit=False)
  54. classified.owner=request.user
  55. classified.save()
  56. return HttpResponseRedirect(reverse('classifieds.views.classified_detail', args=[classified.id]))
  57. return render_to_response('classifieds/classified_create.html', locals(),
  58. context_instance=RequestContext(request))
  59. @login_required
  60. def classified_edit(request, id):
  61. instance = None
  62. if id is not None:
  63. instance = get_object_or_404(Classified, pk=id)
  64. if request.method == 'POST':
  65. form=ClassifiedForm(request.POST, instance=instance)
  66. if form.is_valid():
  67. classified=form.save()
  68. return HttpResponseRedirect(reverse('classifieds.views.classified_detail', args=[classified.id]))
  69. else:
  70. form = ClassifiedForm(instance=instance)
  71. return render_to_response('classifieds/classified_edit.html', locals(),
  72. context_instance=RequestContext(request))
  73. '''