Completed register app
This commit is contained in:
parent
de4f11878b
commit
d80138e4ed
|
@ -141,6 +141,7 @@ LOCAL_APPS = (
|
||||||
'mhackspace.blog',
|
'mhackspace.blog',
|
||||||
'mhackspace.core',
|
'mhackspace.core',
|
||||||
'mhackspace.requests',
|
'mhackspace.requests',
|
||||||
|
'mhackspace.register',
|
||||||
'mhackspace.rfid',
|
'mhackspace.rfid',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
from mhackspace.register.models import RegisteredUser
|
||||||
|
|
||||||
# Register your models here.
|
|
||||||
|
@admin.register(RegisteredUser)
|
||||||
|
class RegisteredUserAdmin(admin.ModelAdmin):
|
||||||
|
list_display = ('name', 'user_id', 'created_at')
|
||||||
|
|
|
@ -4,9 +4,6 @@ import datetime
|
||||||
|
|
||||||
class RegisteredUserManager(models.Manager):
|
class RegisteredUserManager(models.Manager):
|
||||||
|
|
||||||
def is_registered(self, name):
|
def is_registered(self, user):
|
||||||
if name is None:
|
today = datetime.date.today()
|
||||||
return False
|
return super(RegisteredUserManager, self).get_queryset().filter(user=user, created_at__gte=today).exists()
|
||||||
|
|
||||||
today = datetime.date.today() - datetime.timedelta(days=1)
|
|
||||||
return super(RegisteredUserManager, self).get_queryset().filter(name=name, created_at__gt=today).exists()
|
|
||||||
|
|
|
@ -5,8 +5,8 @@ from mhackspace.register.managers import RegisteredUserManager
|
||||||
|
|
||||||
|
|
||||||
class RegisteredUser(models.Model):
|
class RegisteredUser(models.Model):
|
||||||
user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='+')
|
user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='+', null=True, blank=True)
|
||||||
name = models.CharField(max_length=100)
|
name = models.CharField(max_length=100, null=False, blank=False)
|
||||||
created_at = models.DateTimeField(default=timezone.now)
|
created_at = models.DateTimeField(default=timezone.now)
|
||||||
|
|
||||||
objects = RegisteredUserManager()
|
objects = RegisteredUserManager()
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
from django.views.generic.edit import FormView
|
from django.views.generic.edit import FormView
|
||||||
|
|
||||||
from mhackspace.register.forms import RegisteredUserForm
|
from mhackspace.register.forms import RegisteredUserForm
|
||||||
from mhackspace.register.models import RegisteredUser
|
from mhackspace.register.models import RegisteredUser
|
||||||
|
|
||||||
|
@ -9,22 +10,16 @@ class RegisterForm(FormView):
|
||||||
success_url = '/register/success'
|
success_url = '/register/success'
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
name = request.POST.get('name')
|
|
||||||
if RegisteredUser.objects.is_registered(name):
|
|
||||||
return self.form_valid()
|
|
||||||
|
|
||||||
if request.user.is_authenticated():
|
if request.user.is_authenticated():
|
||||||
form_kwargs = self.get_form_kwargs()
|
if not RegisteredUser.objects.is_registered(request.user):
|
||||||
form_kwargs['data'] = {
|
registered_user = RegisteredUser.objects.create(user=request.user, name=request.user.username)
|
||||||
'user': request.user,
|
registered_user.save()
|
||||||
'name': request.user.name
|
return super(RegisterForm, self).form_valid(None)
|
||||||
}
|
|
||||||
form = self.get_form_class(**form_kwargs)
|
|
||||||
return self.form_valid(form)
|
|
||||||
|
|
||||||
return super(RegisterForm, self).get(self, request, *args, **kwargs)
|
return super(RegisterForm, self).get(self, request, *args, **kwargs)
|
||||||
|
|
||||||
|
def form_valid(self, form):
|
||||||
|
if form.is_valid():
|
||||||
|
form.save()
|
||||||
|
|
||||||
# Need to prevent a user registering twice
|
return super(RegisterForm, self).form_valid(form)
|
||||||
# Need to think of a way to prevent people registering multiple times with different names
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue