views.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. from django.contrib.auth.models import User
  2. from django.shortcuts import render, get_object_or_404, redirect
  3. from main.forms import StoryForm, EpicForm
  4. from main.models import Story, Epic
  5. def index(request):
  6. epics = Epic.objects.filter(closed=False)
  7. return render(request, 'index.html', {'epics': epics})
  8. def story_index(request):
  9. stories = Story.objects.all()
  10. return render(request, 'story_index.html', {'stories': stories})
  11. def story_details(request, story_id):
  12. story = get_object_or_404(Story, id=story_id)
  13. return render(request, 'story_details.html', {'story': story})
  14. def story_create(request, epic_id):
  15. if request.method == 'POST':
  16. form = StoryForm(request.POST)
  17. if form.is_valid():
  18. story = form.save(commit=False)
  19. story.author = User.objects.get(username=request.user)
  20. story.save()
  21. return redirect("story_details", story.id)
  22. else:
  23. story = Story()
  24. story.epic = get_object_or_404(Epic, id=epic_id)
  25. form = StoryForm(instance=story)
  26. return render(request, 'story_form.html', {'form': form})
  27. def story_edit(request, story_id):
  28. if request.method == 'POST':
  29. story = get_object_or_404(Story, id=story_id)
  30. form = StoryForm(request.POST, instance=story)
  31. if form.is_valid():
  32. form.save()
  33. return redirect("story_details", story.id)
  34. else:
  35. story = get_object_or_404(Story, id=story_id)
  36. form = StoryForm(instance=story)
  37. return render(request, 'story_form.html', {'form': form})
  38. def story_delete(request, story_id):
  39. if request.method == 'POST':
  40. story = get_object_or_404(Story, id=story_id)
  41. story.delete()
  42. return redirect("index")
  43. else:
  44. story = get_object_or_404(Story, id=story_id)
  45. return render(request, 'deletion.html', {'object': story})
  46. def story_close(request, story_id):
  47. story = get_object_or_404(Story, id=story_id)
  48. story.closed = True
  49. story.save()
  50. return render(request, 'epic_details.html', {'epic': story.epic})
  51. def story_reopen(request, story_id):
  52. story = get_object_or_404(Story, id=story_id)
  53. story.closed = False
  54. story.save()
  55. return render(request, 'story_details.html', {'story': story})
  56. def epic_details(request, epic_id):
  57. epic = get_object_or_404(Epic, id=epic_id)
  58. return render(request, 'epic_details.html', {'epic': epic})
  59. def epic_create(request):
  60. if request.method == 'POST':
  61. form = EpicForm(request.POST)
  62. if form.is_valid():
  63. epic = form.save(commit=False)
  64. epic.author = User.objects.get(username=request.user)
  65. epic.save()
  66. return redirect("epic_details", epic.id)
  67. else:
  68. form = EpicForm()
  69. return render(request, 'epic_form.html', {'form': form})
  70. def epic_edit(request, epic_id):
  71. if request.method == 'POST':
  72. epic = get_object_or_404(Epic, id=epic_id)
  73. form = EpicForm(request.POST, instance=epic)
  74. if form.is_valid():
  75. form.save()
  76. return redirect("epic_details", epic.id)
  77. else:
  78. epic = get_object_or_404(Epic, id=epic_id)
  79. form = EpicForm(instance=epic)
  80. return render(request, 'epic_form.html', {'form': form})
  81. def epic_delete(request, epic_id):
  82. if request.method == 'POST':
  83. epic = Epic.objects.get(id=epic_id)
  84. epic.delete()
  85. return redirect("index")
  86. else:
  87. epic = Epic.objects.get(id=epic_id)
  88. return render(request, 'deletion.html', {'object': epic})