Completed register app

This commit is contained in:
brett 2017-10-06 20:16:34 +01:00
parent de4f11878b
commit d80138e4ed
5 changed files with 20 additions and 23 deletions

View File

@ -141,6 +141,7 @@ LOCAL_APPS = (
'mhackspace.blog', 'mhackspace.blog',
'mhackspace.core', 'mhackspace.core',
'mhackspace.requests', 'mhackspace.requests',
'mhackspace.register',
'mhackspace.rfid', 'mhackspace.rfid',
) )

View File

@ -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')

View File

@ -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()

View File

@ -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()

View File

@ -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