Dieses Repository enthält Python-Dateien die im Rahmen des Wahlpflichtmoduls "Informationssysteme in der Medizintechnik" (Dozent: Prof. Dr. Oliver Hofmann) erstellt wurden und verwaltet deren Versionskontrolle.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

views.py 3.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. from posts.models import Notice
  2. from django.utils import timezone
  3. from django.shortcuts import render
  4. from django.http import HttpResponse
  5. def index(request):
  6. #return render(request, 'posts/index.html')
  7. #-------------------- eigener Versuch ---------------------
  8. # relevant_notices = Notice.objects.filter(pub_start__lt = timezone.datetime.now())
  9. # relevant_notices = Notice.objects.filter(pub_end__gt = timezone.datetime.now())
  10. # for curr_msg in relevant_notices:
  11. # context['now'] += "TITEL DER NACHRICHT: " + curr_msg.notice_title + "TEXT DER NACHRICHT: " + curr_msg.notice_text
  12. # # unschöne Lösung, da hier ein Fließtext ohne Layout-Möglichkeiten (z.B. backspace zwischen jeder neuen Zeile) entsteht
  13. # # bessere Variante: for-Schleife in das Template (allMessages.html) auslagern
  14. #------------------ ab hier: schöne Variante --------------------
  15. relevant_notices = Notice.objects.all()
  16. relevant_notices = Notice.objects.filter(pub_start__lt=timezone.datetime.now())
  17. relevant_notices = Notice.objects.filter(pub_end__gt=timezone.datetime.now())
  18. # all diese Befehle importieren noch NHCTS aus der Datenbank! Sie bauen nur einen SQL-Zugriffs-Befehl auf (mit entsprevchender Filterung) und erst beim Auslesen wird auf Datenbank zugegriffen
  19. context = { "notices" : relevant_notices }
  20. return render(request, 'posts/allMessages.html', context)
  21. from posts.forms import NoticeForm
  22. from django.shortcuts import redirect
  23. def new(request):
  24. #return HttpResponse("Eingabe einer neuen Nachricht!")
  25. if request.method == "POST":
  26. eingabeFenster = NoticeForm(request.POST)
  27. if eingabeFenster.is_valid():
  28. newNotice = Notice(notice_title = eingabeFenster.cleaned_data['title'],
  29. notice_text = eingabeFenster.cleaned_data['text'],
  30. pub_start = eingabeFenster.cleaned_data['start'],
  31. pub_end = eingabeFenster.cleaned_data['end'])
  32. newNotice.save()
  33. return redirect('index')
  34. context = {'form' : NoticeForm() }
  35. return render(request, 'posts/edit.html', context)
  36. def delete(request, id):
  37. msg_to_delete = Notice.objects.get(id = id)
  38. msg_to_delete.clean()
  39. return redirect('index')
  40. from posts.models import Notice
  41. from posts.serializers import NoticeSerializer
  42. from django.http import JsonResponse
  43. from rest_framework.parsers import JSONParser
  44. from django.views.decorators.csrf import csrf_exempt
  45. @csrf_exempt
  46. def notice_list(request):
  47. if request.method == 'GET':
  48. notices = Notice.objects.all()
  49. serializer = NoticeSerializer(notices, many=True)
  50. return JsonResponse(serializer.data, safe=False)
  51. elif request.method == 'POST':
  52. data = JSONParser().parse(request)
  53. serializer = NoticeSerializer(data = data)
  54. if serializer.is_valid():
  55. serializer.save()
  56. return JsonResponse(serializer.data, status=201)
  57. else:
  58. return JsonResponse(serializer.errors, status=400)
  59. else:
  60. return HttpResponse(status=405)
  61. @csrf_exempt
  62. def notice_detail(request, id):
  63. try:
  64. notice = Notice.objects.get(id=id)
  65. except:
  66. return HttpResponse(status=404)
  67. if request.method == 'GET':
  68. serializer = NoticeSerializer(notice)
  69. return JsonResponse(serializer.data)
  70. elif request.method== 'PUT':
  71. data = JSONParser().parse(request)
  72. serializer = NoticeSerializer(notice, data=data)
  73. if serializer.is_valid():
  74. serializer.save()
  75. return JsonResponse(serializer.data)
  76. else:
  77. return JsonResponse(serializer.errors, status=400)
  78. elif request.method == 'DELETE':
  79. notice.delete()
  80. return HttpResponse(status=204)
  81. else:
  82. return HttpResponse(status=405)