1
0
Fork 0
satnogs-db/db/base/views.py

82 lines
3.1 KiB
Python
Raw Normal View History

2015-05-03 15:23:30 -06:00
from django.shortcuts import render, redirect
2015-04-22 05:05:30 -06:00
from django.contrib.auth.models import User
2015-04-25 10:47:22 -06:00
from django.views.decorators.http import require_POST
from django.contrib.auth.decorators import login_required
from django.contrib import messages
from django.core.urlresolvers import reverse
2015-07-17 11:21:35 -06:00
from django.http import HttpResponseNotFound, HttpResponseServerError
from django.shortcuts import render
2015-04-25 10:47:22 -06:00
2015-07-12 10:09:27 -06:00
from db.base.models import Transponder, Satellite, Suggestion, MODE_CHOICES
from db.base.forms import SatelliteSearchForm, SuggestionForm
2015-04-22 05:05:30 -06:00
def home(request):
2015-07-17 11:21:35 -06:00
"""View to render home page."""
2015-04-22 05:05:30 -06:00
satellites = Satellite.objects.all()
2015-04-25 10:47:22 -06:00
if request.method == 'POST':
satellite_form = SatelliteSearchForm(request.POST)
if satellite_form.is_valid():
term = satellite_form.cleaned_data['term']
norad_cat_id = term.split()[0]
try:
satellite = Satellite.objects.get(norad_cat_id=norad_cat_id)
except:
messages.error(request, 'Please select one of the available Satellites')
return redirect(reverse('home'))
suggestions = Suggestion.objects.filter(satellite=satellite).count()
2015-07-12 10:09:27 -06:00
return render(request, 'base/suggest.html', {'satellite': satellite,
'satellites': satellites,
'suggestions': suggestions,
2015-07-12 10:09:27 -06:00
'satellite_form': satellite_form,
'modes': MODE_CHOICES})
2015-04-25 10:47:22 -06:00
2015-07-12 10:09:27 -06:00
transponders = Transponder.objects.all().count()
suggestions = Suggestion.objects.all().count()
contributors = User.objects.filter(is_active=1).count()
2015-04-22 05:05:30 -06:00
return render(request, 'base/home.html', {'satellites': satellites,
'transponders': transponders,
2015-07-12 10:09:27 -06:00
'contributors': contributors,
'suggestions': suggestions})
2015-04-25 10:47:22 -06:00
2015-07-17 11:21:35 -06:00
def custom_404(request):
"""Custom 404 error handler."""
return HttpResponseNotFound(render(request, '404.html'))
def custom_500(request):
"""Custom 500 error handler."""
return HttpResponseServerError(render(request, '500.html'))
2015-04-25 10:47:22 -06:00
@login_required
@require_POST
def suggestion(request):
2015-07-17 11:21:35 -06:00
"""View to process suggestion form"""
suggestion_form = SuggestionForm(request.POST)
2015-04-25 10:47:22 -06:00
if suggestion_form.is_valid():
suggestion = suggestion_form.save(commit=False)
suggestion.user = request.user
suggestion.save()
2015-05-03 15:23:30 -06:00
messages.success(request, ('Your suggestion was stored successfully. '
'Thanks for contibuting!'))
2015-04-25 10:47:22 -06:00
return redirect(reverse('home'))
messages.error(request, 'We are sorry, but some error occured :(')
return redirect(reverse('home'))
2015-06-10 15:16:38 -06:00
def about(request):
2015-07-17 11:21:35 -06:00
"""View to render about page."""
2015-06-10 15:16:38 -06:00
return render(request, 'base/about.html')
2015-07-02 05:39:27 -06:00
def faq(request):
2015-07-17 11:21:35 -06:00
"""View to render faq page."""
2015-07-02 05:39:27 -06:00
return render(request, 'base/faq.html')