From 5ba01ee7d33c1f512a58e58015674db97edff89c Mon Sep 17 00:00:00 2001 From: Oly Date: Wed, 10 Oct 2018 13:24:37 +0100 Subject: [PATCH] Add in over 18 check box to membership sign up. fixes #168 --- config/settings/local.py | 2 +- mhackspace/users/forms.py | 15 +++++++++------ .../migrations/0010_membership_over_18.py | 18 ++++++++++++++++++ mhackspace/users/models.py | 18 +++++++++++++----- 4 files changed, 41 insertions(+), 12 deletions(-) create mode 100644 mhackspace/users/migrations/0010_membership_over_18.py diff --git a/config/settings/local.py b/config/settings/local.py index bc59e8c..50b157e 100644 --- a/config/settings/local.py +++ b/config/settings/local.py @@ -33,7 +33,7 @@ TEST_RUNNER = 'django.test.runner.DiscoverRunner' ########## CELERY # In development, all tasks will be executed locally by blocking until the task returns -CELERY_ALWAYS_EAGER = True +CELERY_TASK_ALWAYS_EAGER = True ########## END CELERY # Your local stuff: Below this line define 3rd party library settings diff --git a/mhackspace/users/forms.py b/mhackspace/users/forms.py index 41465bc..0dbbde7 100644 --- a/mhackspace/users/forms.py +++ b/mhackspace/users/forms.py @@ -1,22 +1,25 @@ # -*- coding: utf-8 -*- from django.db import models from django import forms - from .models import Blurb PAYMENT_PROVIDERS = ( - ('gocardless', 'GoCardless'), + ("gocardless", "GoCardless"), # ('braintree', 'Braintree'), ) + + class BlurbForm(forms.ModelForm): + class Meta: model = Blurb - exclude = ['user'] + exclude = ["user"] + class MembershipJoinForm(forms.Form): payment_provider = forms.ChoiceField( - required=True, - widget=forms.Select, - choices=PAYMENT_PROVIDERS) + required=True, widget=forms.Select, choices=PAYMENT_PROVIDERS + ) amount = forms.DecimalField(required=True, decimal_places=2) + over_18 = forms.BooleanField(required=True) diff --git a/mhackspace/users/migrations/0010_membership_over_18.py b/mhackspace/users/migrations/0010_membership_over_18.py new file mode 100644 index 0000000..5e10009 --- /dev/null +++ b/mhackspace/users/migrations/0010_membership_over_18.py @@ -0,0 +1,18 @@ +# Generated by Django 2.1.1 on 2018-10-08 13:02 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0009_auto_20180904_2035'), + ] + + operations = [ + migrations.AddField( + model_name='membership', + name='over_18', + field=models.BooleanField(default=False, help_text='Please confirm your over 18'), + ), + ] diff --git a/mhackspace/users/models.py b/mhackspace/users/models.py index 9f4936a..b4c86d8 100644 --- a/mhackspace/users/models.py +++ b/mhackspace/users/models.py @@ -25,6 +25,7 @@ class User(AbstractUser): ) # https://github.com/pennersr/django-allauth/issues/520 + @property def image(self): return self._image @@ -90,6 +91,9 @@ class Membership(models.Model): default=0, choices=MEMBERSHIP_STATUS_CHOICES ) email = models.CharField(max_length=255, unique=True) + over_18 = models.BooleanField( + default=False, help_text="Please confirm your over 18" + ) @property def get_status(self): @@ -98,11 +102,13 @@ class Membership(models.Model): def is_active(self): if self.status is MEMBERSHIP_ACTIVE: return True + return False def lookup_status(name): if not name: return 0 + return MEMBERSHIP_STATUS.get(name.lower(), 0) def __str__(self): @@ -110,6 +116,8 @@ class Membership(models.Model): # users rfid card to user mapping, user can have more than one card + + class Rfid(models.Model): code = models.CharField(max_length=7) description = models.CharField( @@ -132,11 +140,11 @@ class Rfid(models.Model): def send_subscription_update_message(sender, instance, **kwargs): matrix_message.delay( - room='admin', - prefix=' - MEMBERSHIP', - message='Changed to %s for user %s' % ( - instance.get_status, - instance.user.username)) + room="admin", + prefix=" - MEMBERSHIP", + message="Changed to %s for user %s" + % (instance.get_status, instance.user.username), + ) # Needs to be change to seend to admin room, and not triger on scheduled job