nmgfitness/nmgfitness/views.py

86 lines
2.0 KiB
Python

"""NMGFitness views"""
from django.shortcuts import render
from django.http import JsonResponse
from django.contrib.auth.decorators import login_required
from .models import Events
@login_required
def calendar(request):
"""The main calendar view"""
return render(request, 'calendar.html')
@login_required
def all_events(request):
"""
Json api that returns all events
"""
events = Events.objects.all()
out = []
for event in events:
out.append({
'title': event.user.username,
'id': event.id,
'start': event.start.strftime("%m/%d/%Y, %H:%M:%S"),
'end': event.end.strftime("%m/%d/%Y, %H:%M:%S"),
})
return JsonResponse(out, safe=False)
@login_required
def add_event(request):
"""
Json api to add an event
given a start and end time in the request get parameters
"""
start = request.GET.get("start", None)
end = request.GET.get("end", None)
event = Events(start=start, end=end, user=request.user)
event.save()
data = {}
return JsonResponse(data)
@login_required
def update(request):
"""
Json api to update an event
Given an event id, start and end time
Only events from the loged in user are accepted for updates
"""
updateid = request.GET.get("id", None)
event = Events.objects.get(id=updateid)
if request.user != event.user:
return JsonResponse({'Unauthorized': 'wrong user'}, status=401)
start = request.GET.get("start", None)
end = request.GET.get("end", None)
event.start = start
event.end = end
event.save()
data = {}
return JsonResponse(data)
@login_required
def remove(request):
"""
Json api to remove an event
Given an event id
Only events from the loged in user are accepted for removal
"""
updateid = request.GET.get("id", None)
event = Events.objects.get(id=updateid)
if request.user != event.user:
return JsonResponse({'Unauthorized': 'wrong user'}, status=401)
event.delete()
data = {}
return JsonResponse(data)