From d80138e4ed7c2dbc2d13235e9bc690f9422284b0 Mon Sep 17 00:00:00 2001 From: brett Date: Fri, 6 Oct 2017 20:16:34 +0100 Subject: [PATCH] Completed register app --- config/settings/common.py | 1 + mhackspace/register/admin.py | 6 +++++- mhackspace/register/managers.py | 9 +++------ mhackspace/register/models.py | 4 ++-- mhackspace/register/views.py | 23 +++++++++-------------- 5 files changed, 20 insertions(+), 23 deletions(-) diff --git a/config/settings/common.py b/config/settings/common.py index a6121a7..67361ea 100644 --- a/config/settings/common.py +++ b/config/settings/common.py @@ -141,6 +141,7 @@ LOCAL_APPS = ( 'mhackspace.blog', 'mhackspace.core', 'mhackspace.requests', + 'mhackspace.register', 'mhackspace.rfid', ) diff --git a/mhackspace/register/admin.py b/mhackspace/register/admin.py index 8c38f3f..beaeeb1 100644 --- a/mhackspace/register/admin.py +++ b/mhackspace/register/admin.py @@ -1,3 +1,7 @@ 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') diff --git a/mhackspace/register/managers.py b/mhackspace/register/managers.py index 1381eb7..50471d8 100644 --- a/mhackspace/register/managers.py +++ b/mhackspace/register/managers.py @@ -4,9 +4,6 @@ import datetime class RegisteredUserManager(models.Manager): - def is_registered(self, name): - if name is None: - return False - - today = datetime.date.today() - datetime.timedelta(days=1) - return super(RegisteredUserManager, self).get_queryset().filter(name=name, created_at__gt=today).exists() + def is_registered(self, user): + today = datetime.date.today() + return super(RegisteredUserManager, self).get_queryset().filter(user=user, created_at__gte=today).exists() diff --git a/mhackspace/register/models.py b/mhackspace/register/models.py index 8e34356..0a62921 100644 --- a/mhackspace/register/models.py +++ b/mhackspace/register/models.py @@ -5,8 +5,8 @@ from mhackspace.register.managers import RegisteredUserManager class RegisteredUser(models.Model): - user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='+') - name = models.CharField(max_length=100) + user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='+', null=True, blank=True) + name = models.CharField(max_length=100, null=False, blank=False) created_at = models.DateTimeField(default=timezone.now) objects = RegisteredUserManager() diff --git a/mhackspace/register/views.py b/mhackspace/register/views.py index 102b837..8fae192 100644 --- a/mhackspace/register/views.py +++ b/mhackspace/register/views.py @@ -1,4 +1,5 @@ from django.views.generic.edit import FormView + from mhackspace.register.forms import RegisteredUserForm from mhackspace.register.models import RegisteredUser @@ -9,22 +10,16 @@ class RegisterForm(FormView): success_url = '/register/success' 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(): - form_kwargs = self.get_form_kwargs() - form_kwargs['data'] = { - 'user': request.user, - 'name': request.user.name - } - form = self.get_form_class(**form_kwargs) - return self.form_valid(form) + if not RegisteredUser.objects.is_registered(request.user): + registered_user = RegisteredUser.objects.create(user=request.user, name=request.user.username) + registered_user.save() + return super(RegisterForm, self).form_valid(None) 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 - # Need to think of a way to prevent people registering multiple times with different names - + return super(RegisterForm, self).form_valid(form)