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
|
2015-04-25 12:51:25 -06:00
|
|
|
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'))
|
|
|
|
|
2015-07-12 10:10:13 -06:00
|
|
|
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,
|
2015-07-12 10:10:13 -06:00
|
|
|
'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"""
|
2015-04-25 12:51:25 -06:00
|
|
|
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')
|