Anfänglicher Commit: Producion Version Stand: Oktober 2014

This commit is contained in:
Christian Berg
2014-11-25 23:43:21 +01:00
commit daa35f5913
3381 changed files with 132346 additions and 0 deletions

109
src/membership/views.py Normal file
View File

@@ -0,0 +1,109 @@
from django import http
from django.conf import settings
from django.contrib import auth, messages
from django.core.urlresolvers import reverse
from django.utils.translation import ugettext as _
from django.views import generic
from mahjong_ranking.models import KyuDanRanking, LadderRanking, LadderSeason
import forms
import models
from utils import mixins
class ActivateRegistration(generic.DetailView):
'''
Activates the Registration of an User and logs him in
'''
template_name = 'membership/activation_error.html'
def get(self, request, **kwargs):
activation_key = self.kwargs.get('activation_key')
user = self.get_user(activation_key)
print 'User: ', user
if user:
return self.login(user)
else:
self.object = user
context = self.get_context_data()
return self.render_to_response(context)
def get_context_data(self, **kwargs):
context = generic.DetailView.get_context_data(self, **kwargs)
context.update({
'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS,
'activation_key': self.kwargs.get('activation_key'),
})
return context
def get_user(self, activation_key):
user = models.ActivationRequest.objects.activate(activation_key)
if user:
return user
elif self.request.user.is_authenticated():
return self.request.user
else:
return None
def login(self, user):
backend = auth.get_backends()[0]
user.backend = "%s.%s" % (backend.__module__, backend.__class__.__name__) # @IgnorePep8
auth.login(self.request, user)
messages.success(self.request, _('Activation successful. \
You can now login anytime with you username and password.'))
redirect_url = reverse('membership-edit', args=(user.username,))
return http.HttpResponseRedirect(redirect_url) # @IgnorePep8
class ActivationSent(generic.TemplateView):
template_name = 'membership/activation_sent.html'
class EditMembership(mixins.LoginRequiredMixin, generic.UpdateView):
form_class = forms.MembershipForm
def get_object(self, queryset=None):
if self.request.user.has_perm('membership.change_membership'):
return models.Membership.objects.get(
username=self.kwargs['username'])
else:
return models.Membership.objects.get(user=self.request.user)
def form_valid(self, form):
messages.success(self.request, _('User Profile changed successfully'))
return generic.UpdateView.form_valid(self, form)
class MembershipDetail(mixins.LoginRequiredMixin, generic.DetailView):
model = models.Membership
def get_object(self, queryset=None):
if self.kwargs.get('username'):
return models.Membership.objects.get(username=self.kwargs['username'])
elif self.request.user.is_authenticated():
return models.Membership.objects.get(user=self.request.user)
def get_context_data(self, **kwargs):
context = generic.DetailView.get_context_data(self, **kwargs)
try:
context['kyu_dan_ranking'] = KyuDanRanking.objects.get(
user_id=self.object.user_id)
except:
context['kyu_dan_ranking'] = None
try:
context['ladder_ranking'] = LadderRanking.objects.get(
user_id=self.object.user_id,
season=LadderSeason.objects.current())
except:
context['ladder_ranking'] = LadderRanking(user=self.object.user)
return context
class RegisterForm(generic.FormView):
form_class = forms.RegistrationForm
success_url = '/membership/activation_sent/'
template_name = 'membership/register_form.html'
def form_valid(self, form):
form.save()
return generic.FormView.form_valid(self, form)