1
0

views.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. from django.http import HttpRequest, HttpResponseRedirect
  2. from django.shortcuts import render, get_object_or_404
  3. from django.urls import reverse
  4. from .models import Article
  5. def index(request):
  6. latest_article_list = Article.objects.filter(published=True).order_by('-updated')[:5]
  7. for article in latest_article_list:
  8. article = article_decoration(article)
  9. context = {
  10. 'parent_title': 'Knowledgebase',
  11. 'parent_url': 'knowledgebase:index',
  12. 'parent_icon': 'newspaper outline',
  13. 'title': 'Index',
  14. 'icon': 'list',
  15. 'description': 'Index of knowledgebase articles.',
  16. 'keywords': 'knowledgebase, articles, index',
  17. 'latest_article_list': latest_article_list,
  18. }
  19. #output = ', '.join([article.title for article in latest_article_list])
  20. return render(request, 'knowledgebase/index.html', context)
  21. def article(request, article_slug):
  22. article = get_object_or_404(Article, slug=article_slug)
  23. article = article_decoration(article)
  24. context = {
  25. 'parent_title': 'Knowledgebase',
  26. 'parent_url': 'knowledgebase:index',
  27. 'parent_icon': 'newspaper outline',
  28. 'title': article.title,
  29. 'icon': 'file alternate outline',
  30. 'description': article.description,
  31. 'keywords': article.keywords,
  32. 'article': article,
  33. 'category': article.category,
  34. }
  35. return render(request, 'knowledgebase/article.html', context)
  36. def edit_article(request, article_slug):
  37. article = get_object_or_404(Article, slug=article_slug)
  38. article = article_decoration(article)
  39. context = {
  40. 'parent_title': 'Knowledgebase',
  41. 'parent_url': 'knowledgebase:index',
  42. 'parent_icon': 'newspaper outline',
  43. 'title': 'Edit ' + article.title,
  44. 'icon': 'file alternate outline',
  45. 'article': article,
  46. }
  47. return render(request, 'knowledgebase/edit_article.html', context)
  48. def save_article(request, article_slug):
  49. article = get_object_or_404(Article, slug=article_slug)
  50. article.title = request.POST['title']
  51. article.description = request.POST['description']
  52. article.category = request.POST['category']
  53. article.content = request.POST['content']
  54. article.save()
  55. return HttpResponseRedirect(reverse('knowledgebase:article', args=(article.slug,)))
  56. def article_decoration(article):
  57. if article.category == 'ot':
  58. article.verbose_category = 'Other'
  59. article.icon = 'archive'
  60. else:
  61. article.verbose_category = 'Unkown'
  62. article.icon = 'question'
  63. return article