Diverse Code Cleanups
*Code wurde PEP-8 gerecht formatiert * Kleine Fehler die der PyCharm Inspector beanstandet wurden korrigiert
This commit is contained in:
committed by
Christian Berg
parent
f34281089d
commit
86a0db050d
@@ -1,8 +1,8 @@
|
||||
'''
|
||||
"""
|
||||
Created on 19.09.2011
|
||||
|
||||
@author: christian
|
||||
'''
|
||||
"""
|
||||
# import stuff we need from django
|
||||
from django.contrib import admin
|
||||
from membership.models import Membership, ActivationRequest
|
||||
@@ -15,6 +15,8 @@ def activate_user(modeladmin, request, queryset):
|
||||
membership = Membership.objects.get(username=activation.user.username)
|
||||
membership.save()
|
||||
activation.activate()
|
||||
|
||||
|
||||
activate_user.short_description = _('Activate selected User')
|
||||
|
||||
|
||||
@@ -22,6 +24,8 @@ def cleanup_activation(modeladmin, request, queryset):
|
||||
for activation in queryset:
|
||||
if activation.expired:
|
||||
activation.user.delete()
|
||||
|
||||
|
||||
cleanup_activation.short_description = _("Cleanup selected Activation Requests")
|
||||
|
||||
|
||||
@@ -39,24 +43,28 @@ class MembershipAdmin(admin.ModelAdmin):
|
||||
)
|
||||
list_editable = ('confirmed', 'paid_until',)
|
||||
list_display_links = ('nickname',)
|
||||
fieldsets = ((None, {
|
||||
'fields': ('gender', ('first_name', 'last_name'), ('email', 'website'))
|
||||
fieldsets = (
|
||||
(None, {
|
||||
'fields': ('gender', ('first_name', 'last_name'), ('email', 'website'))
|
||||
}),
|
||||
(_('Membership'), {
|
||||
'classes': ('collapse',),
|
||||
'fields': (('membership', 'confirmed'), 'birthday', 'telephone',
|
||||
'street_name', ('post_code', 'city'))
|
||||
'street_name', ('post_code', 'city'))
|
||||
}),
|
||||
)
|
||||
ordering = ('nickname',)
|
||||
search_fields = ('nickname', 'first_name', 'last_name',)
|
||||
|
||||
|
||||
admin.site.register(Membership, MembershipAdmin)
|
||||
|
||||
|
||||
class RegistrationAdmin(admin.ModelAdmin):
|
||||
list_display = ('username', 'first_name', 'last_name', 'email',
|
||||
'registration_date', 'expired')
|
||||
'registration_date', 'expired')
|
||||
search_fields = ('user__username', 'user__first_name')
|
||||
actions = [cleanup_activation, activate_user]
|
||||
|
||||
|
||||
admin.site.register(ActivationRequest, RegistrationAdmin)
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
'''
|
||||
"""
|
||||
Created on 03.10.2011
|
||||
|
||||
@author: Christian
|
||||
'''
|
||||
"""
|
||||
from . import models
|
||||
from django.conf import settings
|
||||
from django.contrib.auth.models import User
|
||||
from django.contrib import auth
|
||||
from django.contrib.sites.models import Site
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from utils.html5 import forms
|
||||
@@ -26,29 +26,25 @@ class MembershipForm(forms.ModelForm):
|
||||
)
|
||||
|
||||
def clean_birthday(self):
|
||||
if self.cleaned_data['membership'] \
|
||||
and not self.cleaned_data['birthday']:
|
||||
if self.cleaned_data['membership'] and not self.cleaned_data['birthday']:
|
||||
raise forms.ValidationError(_('For your membership, we need this. \
|
||||
Please fill out this field yet.'))
|
||||
return self.cleaned_data['birthday']
|
||||
|
||||
def clean_telephone(self):
|
||||
if self.cleaned_data['membership'] \
|
||||
and not self.cleaned_data['telephone']:
|
||||
if self.cleaned_data['membership'] and not self.cleaned_data['telephone']:
|
||||
raise forms.ValidationError(_('For your membership, we need this. \
|
||||
Please fill out this field yet.'))
|
||||
return self.cleaned_data['telephone']
|
||||
|
||||
def clean_street_name(self):
|
||||
if self.cleaned_data['membership'] \
|
||||
and not self.cleaned_data['street_name']:
|
||||
if self.cleaned_data['membership'] and not self.cleaned_data['street_name']:
|
||||
raise forms.ValidationError(_('For your membership, we need this. \
|
||||
Please fill out this field yet.'))
|
||||
return self.cleaned_data['street_name']
|
||||
|
||||
def clean_post_code(self):
|
||||
if self.cleaned_data['membership'] \
|
||||
and not self.cleaned_data['post_code']:
|
||||
if self.cleaned_data['membership'] and not self.cleaned_data['post_code']:
|
||||
raise forms.ValidationError(_('For your membership, we need this. \
|
||||
Please fill out this field yet.'))
|
||||
return self.cleaned_data['post_code']
|
||||
@@ -71,41 +67,43 @@ class RegistrationForm(forms.ModelForm):
|
||||
required_css_class = 'required'
|
||||
|
||||
first_name = forms.CharField(max_length=30, required=True,
|
||||
label=_('Given Name'))
|
||||
label=_('Given Name'))
|
||||
last_name = forms.CharField(max_length=30, required=True,
|
||||
label=_('Last Name'))
|
||||
label=_('Last Name'))
|
||||
username = forms.SlugField(required=True, max_length=30,
|
||||
label=_('Username'),
|
||||
help_text=_("The Username can only contain the letters from A to Z, \
|
||||
label=_('Username'),
|
||||
help_text=_("The Username can only contain the letters from A to Z, \
|
||||
Numbers, and the underscore. It must be at least 2 characters long, \
|
||||
and cannot be longer the 30. The first character must be a letter."))
|
||||
email = forms.EmailField(required=True)
|
||||
password1 = forms.CharField(widget=forms.PasswordInput(),
|
||||
label=_('password'))
|
||||
label=_('password'))
|
||||
password2 = forms.CharField(widget=forms.PasswordInput(),
|
||||
label=_('password (again)'))
|
||||
label=_('password (again)'))
|
||||
recaptcha = forms.ReCaptchaField()
|
||||
|
||||
class Meta:
|
||||
model = User
|
||||
model = auth.get_user_model()
|
||||
fields = ('first_name', 'last_name', 'username', 'email',)
|
||||
|
||||
def clean_username(self):
|
||||
'''
|
||||
"""
|
||||
Validate that the username is not already in use.
|
||||
'''
|
||||
"""
|
||||
try:
|
||||
User.objects.get(username__iexact=self.cleaned_data['username'])
|
||||
except User.DoesNotExist:
|
||||
auth.get_user_model().objects.get(
|
||||
username__iexact=self.cleaned_data['username']
|
||||
)
|
||||
except auth.get_user_model().DoesNotExist:
|
||||
return self.cleaned_data['username']
|
||||
raise forms.ValidationError(_(u'This username is already taken. \
|
||||
Please choose another.'))
|
||||
|
||||
def clean_email(self):
|
||||
'''
|
||||
"""
|
||||
Validate that the supplied email address is unique for the site.
|
||||
'''
|
||||
if User.objects.filter(email__iexact=self.cleaned_data['email']):
|
||||
"""
|
||||
if auth.get_user_model().objects.filter(email__iexact=self.cleaned_data['email']):
|
||||
raise forms.ValidationError(_(u'This email address is already in \
|
||||
use. Please supply a different email address.'))
|
||||
return self.cleaned_data['email']
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
from django.core.management.base import BaseCommand
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from membership.models import ActivationRequest
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = "Delete all expired user registrations from the database"
|
||||
|
||||
|
||||
def handle(self, *args, **options):
|
||||
|
||||
for activation in ActivationRequest.objects.expired():
|
||||
activation.user.delete()
|
||||
|
||||
|
||||
@@ -8,10 +8,10 @@ It might help your debugging to know or you might want to contact the user to
|
||||
tell them you have fixed the problem.
|
||||
"""
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
from django.conf import settings
|
||||
from django.contrib import auth
|
||||
from django.contrib.sessions.models import Session
|
||||
from django.core.management.base import BaseCommand, CommandError
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.core.management.base import BaseCommand
|
||||
from optparse import make_option
|
||||
|
||||
|
||||
@@ -19,33 +19,36 @@ class Command(BaseCommand):
|
||||
args = '<session_key session_key ...>'
|
||||
help = 'If the session still exists find it and show the related User'
|
||||
option_list = BaseCommand.option_list + (
|
||||
make_option('--delete',
|
||||
make_option(
|
||||
'--delete',
|
||||
action='store_true',
|
||||
dest='delete',
|
||||
default=False,
|
||||
help='Delete the Useraccount'),
|
||||
make_option('--ban',
|
||||
help='Delete the Useraccount'
|
||||
),
|
||||
make_option(
|
||||
'--ban',
|
||||
action='store_true',
|
||||
dest='ban',
|
||||
default=False,
|
||||
help='Ban the Useraccount'),
|
||||
)
|
||||
|
||||
help='Ban the Useraccount'
|
||||
),
|
||||
)
|
||||
|
||||
def handle(self, *args, **options):
|
||||
for session_key in args:
|
||||
try:
|
||||
session = Session.objects.get(session_key=session_key)
|
||||
uid = session.get_decoded().get('_auth_user_id')
|
||||
user = User.objects.get(pk=uid)
|
||||
user = auth.get_user_model().objects.get(pk=uid)
|
||||
except Session.DoesNotExist:
|
||||
self.stderr.write('Session "%s" does not exist' % session_key)
|
||||
continue
|
||||
except User.DoesNotExist:
|
||||
except settings.AUTH_USER_MODEL.DoesNotExist:
|
||||
self.stderr.write('Session "%s" has no registed User' % session_key)
|
||||
continue
|
||||
if options['delete']:
|
||||
self.stdout.write('deleting %s'% user.username)
|
||||
self.stdout.write('deleting %s' % user.username)
|
||||
user.delete()
|
||||
elif options['ban']:
|
||||
self.stdout.write('banning %s' % user.username)
|
||||
|
||||
@@ -4,7 +4,6 @@ from . import PAID_MEMBERSHIP_GROUP
|
||||
from datetime import timedelta
|
||||
from django.utils import timezone
|
||||
from django.conf import settings
|
||||
from django.contrib.auth.models import User
|
||||
from django.core.exceptions import FieldError
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.db import models
|
||||
@@ -23,29 +22,29 @@ GENDER_CHOICES = (
|
||||
|
||||
|
||||
def get_upload_path(instance, filename):
|
||||
'''
|
||||
"""
|
||||
Erstellt den Pfad und Dateinamen für den Upload dynmisch.
|
||||
|
||||
@param instance: The Membership Object for the uploaded image
|
||||
@param filename: the filename of the uploaded image
|
||||
'''
|
||||
"""
|
||||
extension = path.splitext(filename)[1]
|
||||
return 'membership/%s%s' % (instance.user.username, extension)
|
||||
|
||||
|
||||
class ActivationManager(models.Manager):
|
||||
'''
|
||||
"""
|
||||
Manages pending user registrations
|
||||
'''
|
||||
"""
|
||||
|
||||
def activate(self, activation_key):
|
||||
'''
|
||||
"""
|
||||
searches the pending registrations for the given activation key.
|
||||
Set the corresponding user to active, if the key was found
|
||||
and the key has not expired yet.s
|
||||
|
||||
@param activation_key: the key found in the activation email
|
||||
'''
|
||||
"""
|
||||
try:
|
||||
activation_request = self.get(activation_key=activation_key)
|
||||
if activation_request.expired():
|
||||
@@ -61,10 +60,10 @@ class ActivationManager(models.Manager):
|
||||
return False
|
||||
|
||||
def create_pending_registration(self, user):
|
||||
'''
|
||||
"""
|
||||
creates a PendingActivation instance with an random activation key.
|
||||
@param user: the user that requests activation.
|
||||
'''
|
||||
"""
|
||||
salt = str(random.random())
|
||||
activation_key = hashlib.sha1(salt + user.username).hexdigest()
|
||||
|
||||
@@ -78,12 +77,16 @@ class ActivationManager(models.Manager):
|
||||
|
||||
|
||||
class ActivationRequest(models.Model):
|
||||
'''
|
||||
"""
|
||||
Each ActivationRequest contains an activation key and an user.
|
||||
The key will be send by email to the user
|
||||
if the user clicks on the link he can activate his in_active account.
|
||||
'''
|
||||
user = models.ForeignKey(User, unique=True, verbose_name=_('user'))
|
||||
"""
|
||||
user = models.ForeignKey(
|
||||
settings.AUTH_USER_MODEL,
|
||||
unique=True,
|
||||
verbose_name=_('user')
|
||||
)
|
||||
activation_key = models.CharField(_('activation key'), max_length=40)
|
||||
objects = ActivationManager()
|
||||
|
||||
@@ -115,6 +118,7 @@ class ActivationRequest(models.Model):
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
expired.boolean = True
|
||||
|
||||
@property
|
||||
@@ -135,28 +139,26 @@ class ActivationRequest(models.Model):
|
||||
|
||||
|
||||
class MembershipManager(models.Manager):
|
||||
|
||||
def get(self, *args, **kwargs):
|
||||
'''
|
||||
"""
|
||||
First try's to fetch the requested Membership Object from the Database,
|
||||
if the requestetd Membership does not Exists (yet) try to fetch the
|
||||
corresponding User, and create the Membership with the filled in
|
||||
Userdata.
|
||||
'''
|
||||
"""
|
||||
try:
|
||||
if 'username' in kwargs:
|
||||
return models.Manager.get(self,
|
||||
user__username=kwargs['username']
|
||||
)
|
||||
user__username=kwargs['username'])
|
||||
else:
|
||||
return models.Manager.get(self, *args, **kwargs)
|
||||
except FieldError:
|
||||
user = User.objects.get(*args, **kwargs)
|
||||
user = settings.AUTH_USER_MODEL.objects.get(*args, **kwargs)
|
||||
except Membership.DoesNotExist:
|
||||
if 'user' in kwargs:
|
||||
user = User.objects.get(pk=kwargs['user'].id)
|
||||
user = settings.AUTH_USER_MODEL.objects.get(pk=kwargs['user'].id)
|
||||
else:
|
||||
user = User.objects.get(*args, **kwargs)
|
||||
user = settings.AUTH_USER_MODEL.objects.get(*args, **kwargs)
|
||||
|
||||
membership = Membership(
|
||||
user=user,
|
||||
@@ -169,7 +171,10 @@ class MembershipManager(models.Manager):
|
||||
|
||||
|
||||
class Membership(models.Model):
|
||||
user = models.OneToOneField(User)
|
||||
user = models.ForeignKey(
|
||||
settings.AUTH_USER_MODEL,
|
||||
unique=True
|
||||
)
|
||||
nickname = models.SlugField(_('Nickname'), unique=True)
|
||||
gender = models.CharField(
|
||||
_("Gender"),
|
||||
@@ -186,39 +191,46 @@ class Membership(models.Model):
|
||||
blank=True,
|
||||
null=True
|
||||
)
|
||||
membership = models.BooleanField(_('Membership'),
|
||||
membership = models.BooleanField(
|
||||
_('Membership'),
|
||||
default=False,
|
||||
help_text=_('Yes, I confirm that I am in agreement with the statutes \
|
||||
and would like to become a member.')
|
||||
)
|
||||
birthday = models.DateField(_("Birthday Date"), blank=True, null=True)
|
||||
telephone = models.CharField(_("Telephone"),
|
||||
telephone = models.CharField(
|
||||
_("Telephone"),
|
||||
max_length=30,
|
||||
blank=True,
|
||||
null=True
|
||||
)
|
||||
street_name = models.CharField(_("Address"),
|
||||
street_name = models.CharField(
|
||||
_("Address"),
|
||||
max_length=75,
|
||||
blank=True,
|
||||
null=True
|
||||
)
|
||||
post_code = models.PositiveSmallIntegerField(_("Postcode"),
|
||||
post_code = models.PositiveSmallIntegerField(
|
||||
_("Postcode"),
|
||||
blank=True,
|
||||
null=True
|
||||
)
|
||||
city = models.CharField(_("Town/City"),
|
||||
city = models.CharField(
|
||||
_("Town/City"),
|
||||
max_length=75,
|
||||
blank=True,
|
||||
null=True
|
||||
)
|
||||
deposit = models.PositiveSmallIntegerField(default=0, editable=False)
|
||||
registration_date = models.DateField(auto_now_add=True, editable=False)
|
||||
paid_until = models.DateField(_('Paid until'),
|
||||
paid_until = models.DateField(
|
||||
_('Paid until'),
|
||||
blank=True,
|
||||
null=True,
|
||||
editable=True
|
||||
)
|
||||
confirmed = models.BooleanField(_('Confirmed'),
|
||||
confirmed = models.BooleanField(
|
||||
_('Confirmed'),
|
||||
default=False,
|
||||
help_text=_('This person has paid the membership fee.')
|
||||
)
|
||||
@@ -258,7 +270,8 @@ class Membership(models.Model):
|
||||
self.email = self.user.email
|
||||
|
||||
def get_absolute_url(self):
|
||||
return reverse('membership-details',
|
||||
return reverse(
|
||||
'membership-details',
|
||||
kwargs={'username': self.user.username}
|
||||
)
|
||||
|
||||
|
||||
@@ -1,21 +1,24 @@
|
||||
from imagekit.specs import ImageSpec
|
||||
from imagekit import processors
|
||||
|
||||
|
||||
|
||||
class ResizeThumbnail(processors.Resize):
|
||||
width = 60
|
||||
height = 60
|
||||
crop = True
|
||||
|
||||
|
||||
class ResizeProfile(processors.Resize):
|
||||
width = 140
|
||||
height = 140
|
||||
crop = True
|
||||
|
||||
|
||||
class Thumbnail(ImageSpec):
|
||||
pre_cache = True
|
||||
processors = (ResizeThumbnail,)
|
||||
|
||||
|
||||
class Profile(ImageSpec):
|
||||
pre_cache = False
|
||||
processors = (ResizeProfile,)
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
<table>
|
||||
<thead><tr>
|
||||
<th>{% trans 'Start' %}<//th>
|
||||
<th>{% trans 'Start' %}</th>
|
||||
<th>{% trans 'Event' %}</th>
|
||||
<th colspan="4">{% trans 'Players' %}</th>
|
||||
<th>{% trans 'Kyu Points' %}</th>
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
'''
|
||||
"""
|
||||
Created on 03.10.2011
|
||||
|
||||
@author: christian
|
||||
'''
|
||||
"""
|
||||
from django.conf.urls import * # @UnusedWildImport
|
||||
|
||||
from . import views
|
||||
|
||||
|
||||
urlpatterns = patterns('',
|
||||
urlpatterns = patterns(
|
||||
'',
|
||||
url('', include('social.apps.django_app.urls', namespace='social')),
|
||||
url('', include('django.contrib.auth.urls')),
|
||||
url(r'^register/$',
|
||||
|
||||
@@ -4,16 +4,17 @@ 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
|
||||
|
||||
from . import forms, models
|
||||
|
||||
|
||||
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):
|
||||
@@ -79,7 +80,7 @@ class MembershipDetail(mixins.LoginRequiredMixin, generic.DetailView):
|
||||
|
||||
def get_object(self, queryset=None):
|
||||
if self.kwargs.get('username'):
|
||||
return models.Membership.objects.get(username=self.kwargs['username'])
|
||||
return models.Membership.objects.get_or_create(username=self.kwargs['username'])[0]
|
||||
elif self.request.user.is_authenticated():
|
||||
return models.Membership.objects.get(user=self.request.user)
|
||||
|
||||
@@ -88,13 +89,13 @@ class MembershipDetail(mixins.LoginRequiredMixin, generic.DetailView):
|
||||
try:
|
||||
context['kyu_dan_ranking'] = KyuDanRanking.objects.get(
|
||||
user_id=self.object.user_id)
|
||||
except:
|
||||
except KyuDanRanking.DoesNotExist:
|
||||
context['kyu_dan_ranking'] = None
|
||||
try:
|
||||
context['ladder_ranking'] = LadderRanking.objects.get(
|
||||
user_id=self.object.user_id,
|
||||
season=LadderSeason.objects.current())
|
||||
except:
|
||||
except LadderRanking.DoesNotExist:
|
||||
context['ladder_ranking'] = LadderRanking(user=self.object.user)
|
||||
return context
|
||||
|
||||
|
||||
Reference in New Issue
Block a user