1
0
Fork 0
satnogs-network/network/users/views.py

59 lines
1.8 KiB
Python
Raw Normal View History

2014-08-26 13:36:38 -06:00
from django.core.urlresolvers import reverse
2018-03-07 08:45:59 -07:00
from django.shortcuts import get_object_or_404, render
2014-08-26 13:36:38 -06:00
from django.views.generic import RedirectView
from django.views.generic import UpdateView
from braces.views import LoginRequiredMixin
2014-12-03 19:22:59 -07:00
from rest_framework.authtoken.models import Token
2014-12-19 06:06:58 -07:00
from network.users.forms import UserForm
from network.users.models import User
from network.base.forms import StationForm
from network.base.models import Station, Observation, Antenna, Rig
2014-08-26 13:36:38 -06:00
class UserRedirectView(LoginRequiredMixin, RedirectView):
permanent = False
def get_redirect_url(self):
return reverse("users:view_user",
2014-08-26 13:36:38 -06:00
kwargs={"username": self.request.user.username})
class UserUpdateView(LoginRequiredMixin, UpdateView):
form_class = UserForm
model = User
def get_success_url(self):
return reverse("users:view_user",
2014-08-26 13:36:38 -06:00
kwargs={"username": self.request.user.username})
def get_object(self):
return User.objects.get(username=self.request.user.username)
def view_user(request, username):
"""View for user page."""
2018-03-07 08:45:59 -07:00
user = get_object_or_404(User, username=username)
observations = Observation.objects.filter(author=user)[0:10]
stations = Station.objects.filter(owner=user)
2014-12-13 10:49:15 -07:00
try:
token = Token.objects.get(user=user)
except Token.DoesNotExist:
2014-12-13 10:49:15 -07:00
token = Token.objects.create(user=user)
2014-12-03 10:58:23 -07:00
form = StationForm()
2014-12-14 05:47:50 -07:00
antennas = Antenna.objects.all()
rigs = Rig.objects.all()
return render(request, 'users/user_detail.html',
{'user': user,
'observations': observations,
2014-12-03 10:58:23 -07:00
'stations': stations,
2014-12-03 19:22:59 -07:00
'token': token,
2014-12-14 05:47:50 -07:00
'form': form,
'antennas': antennas,
'rigs': rigs})