86 lines
2.0 KiB
Python
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)
|