Vereinfachung Membership ist nun ein custom login model, keine Abhängikeiten mehr zu auth.User.

absofort können alle Benutzer ins Ranking eingetragen werden und nicht mehr nur "zahlende Mitglieder".
This commit is contained in:
Christian Berg
2015-08-10 20:49:07 +02:00
committed by Christian Berg
parent 37d3cb78c1
commit 617b7131fe
100 changed files with 3857 additions and 420 deletions

View File

@@ -7,7 +7,8 @@ import hashlib
from django.utils import timezone
from django.conf import settings
from django.contrib.auth import get_user_model
from django.contrib import auth
from django.contrib.auth.models import AbstractUser
from django.core.urlresolvers import reverse
from django.db import models
from django.utils.translation import ugettext as _
@@ -32,7 +33,7 @@ def get_upload_path(instance, filename):
@param filename: the filename of the uploaded image
"""
extension = path.splitext(filename)[1]
return 'membership/%s%s' % (instance.user.username, extension)
return 'membership/%s%s' % (instance.username, extension)
class ActivationManager(models.Manager):
@@ -139,7 +140,7 @@ class ActivationRequest(models.Model):
def username(self):
return self.user.username
'''
class MembershipManager(models.Manager):
def get(self, user=None, username=None, **kwargs):
"""
@@ -150,7 +151,7 @@ class MembershipManager(models.Manager):
"""
try:
if username and not user:
user = get_user_model().objects.get(username=username)
user = auth.get_user_model().objects.get(username=username)
return super(MembershipManager, self).get(user=user)
except Membership.DoesNotExist:
membership = Membership(
@@ -162,19 +163,19 @@ class MembershipManager(models.Manager):
)
membership.save()
return membership
'''
class Membership(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL)
nickname = models.SlugField(_('Nickname'), unique=True)
class Membership(AbstractUser):
# user = models.OneToOneField(settings.AUTH_USER_MODEL)
# nickname = models.SlugField(_('Nickname'), unique=True)
gender = models.CharField(
_("Gender"),
max_length=1,
choices=GENDER_CHOICES
)
first_name = models.CharField(_("Given Name"), max_length=30)
last_name = models.CharField(_("Last Name"), max_length=30)
email = models.EmailField(_('Email'), unique=True)
# first_name = models.CharField(_("Given Name"), max_length=30)
# last_name = models.CharField(_("Last Name"), max_length=30)
# email = models.EmailField(_('Email'), unique=True)
website = models.URLField(blank=True)
avatar = models.ImageField(
upload_to=get_upload_path,
@@ -226,7 +227,7 @@ class Membership(models.Model):
help_text=_('This person has paid the membership fee.')
)
comment = models.TextField(blank=True)
objects = MembershipManager()
# objects = MembershipManager()
thumbnail = ImageSpecField(
processors=[SmartResize(width=60, height=60)],
@@ -242,15 +243,17 @@ class Membership(models.Model):
class Meta(object):
ordering = ('last_name', 'first_name',)
swappable = 'AUTH_USER_MODEL'
verbose_name = _('Membership')
verbose_name_plural = _('Memberships')
def __unicode__(self):
return _('Userprofile for %s' % self.user.username)
return self.username
def clean(self):
# Update the Profile Info from the User Object
'''
if not self.nickname:
self.nickname = self.user.username
if not self.first_name:
@@ -259,23 +262,24 @@ class Membership(models.Model):
self.last_name = self.user.last_name
if not self.email:
self.email = self.user.email
'''
def get_absolute_url(self):
return reverse(
'membership-details',
kwargs={'username': self.user.username}
kwargs={'username': self.username}
)
def save(self, *args, **kwargs):
super(Membership, self).save(*args, **kwargs)
'''
self.user.username = self.nickname
self.user.first_name = self.first_name
self.user.last_name = self.last_name
self.user.email = self.email
'''
if self.confirmed:
self.user.groups.add(PAID_MEMBERSHIP_GROUP)
self.groups.add(PAID_MEMBERSHIP_GROUP)
else:
self.user.groups.remove(PAID_MEMBERSHIP_GROUP)
self.user.save()
self.groups.remove(PAID_MEMBERSHIP_GROUP)