Move agreement to terms to a Category
- Remove field from attendee model - Create the category instead - Add a product as well
This commit is contained in:
parent
348e1c5c82
commit
e325454fab
4 changed files with 64 additions and 23 deletions
|
@ -28,5 +28,4 @@ class ProfileForm(forms.ModelForm):
|
||||||
}
|
}
|
||||||
field_classes = {
|
field_classes = {
|
||||||
"of_legal_age": YesNoField,
|
"of_legal_age": YesNoField,
|
||||||
"agreement": YesNoField,
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,6 +67,20 @@ class Command(BaseCommand):
|
||||||
limit_per_user=1,
|
limit_per_user=1,
|
||||||
order=1,
|
order=1,
|
||||||
)
|
)
|
||||||
|
self.terms = self.find_or_make(
|
||||||
|
inv.Category,
|
||||||
|
("name",),
|
||||||
|
name="Terms, Conditions, and Code of Conduct Acceptance",
|
||||||
|
description="I agree to the "
|
||||||
|
"<a href=\"https://linux.conf.au/attend/terms-and-conditions\"> "
|
||||||
|
"terms and conditions of attendance</a>, and I have read, "
|
||||||
|
"understood, and agree to act according to the standards set "
|
||||||
|
"forth in our <a href=\"https://linux.conf.au/attend/code-of-conduct\">"
|
||||||
|
"Code of Conduct</a>.",
|
||||||
|
required=True,
|
||||||
|
render_type=inv.Category.RENDER_TYPE_CHECKBOX,
|
||||||
|
order=10,
|
||||||
|
)
|
||||||
self.penguin_dinner = self.find_or_make(
|
self.penguin_dinner = self.find_or_make(
|
||||||
inv.Category,
|
inv.Category,
|
||||||
("name",),
|
("name",),
|
||||||
|
@ -78,7 +92,7 @@ class Command(BaseCommand):
|
||||||
required=False,
|
required=False,
|
||||||
render_type=inv.Category.RENDER_TYPE_QUANTITY,
|
render_type=inv.Category.RENDER_TYPE_QUANTITY,
|
||||||
limit_per_user=10,
|
limit_per_user=10,
|
||||||
order=10,
|
order=20,
|
||||||
)
|
)
|
||||||
self.speakers_dinner_ticket = self.find_or_make(
|
self.speakers_dinner_ticket = self.find_or_make(
|
||||||
inv.Category,
|
inv.Category,
|
||||||
|
@ -91,7 +105,7 @@ class Command(BaseCommand):
|
||||||
required=False,
|
required=False,
|
||||||
render_type=inv.Category.RENDER_TYPE_QUANTITY,
|
render_type=inv.Category.RENDER_TYPE_QUANTITY,
|
||||||
limit_per_user=5,
|
limit_per_user=5,
|
||||||
order=20,
|
order=30,
|
||||||
)
|
)
|
||||||
self.pdns_category = self.find_or_make(
|
self.pdns_category = self.find_or_make(
|
||||||
inv.Category,
|
inv.Category,
|
||||||
|
@ -105,7 +119,7 @@ class Command(BaseCommand):
|
||||||
required=False,
|
required=False,
|
||||||
render_type=inv.Category.RENDER_TYPE_RADIO,
|
render_type=inv.Category.RENDER_TYPE_RADIO,
|
||||||
limit_per_user=1,
|
limit_per_user=1,
|
||||||
order=30,
|
order=40,
|
||||||
)
|
)
|
||||||
self.t_shirt = self.find_or_make(
|
self.t_shirt = self.find_or_make(
|
||||||
inv.Category,
|
inv.Category,
|
||||||
|
@ -115,7 +129,7 @@ class Command(BaseCommand):
|
||||||
"linux.conf.au 2018 artwork.",
|
"linux.conf.au 2018 artwork.",
|
||||||
required=False,
|
required=False,
|
||||||
render_type=inv.Category.RENDER_TYPE_ITEM_QUANTITY,
|
render_type=inv.Category.RENDER_TYPE_ITEM_QUANTITY,
|
||||||
order=40,
|
order=50,
|
||||||
)
|
)
|
||||||
# self.accommodation = self.find_or_make(
|
# self.accommodation = self.find_or_make(
|
||||||
# inv.Category,
|
# inv.Category,
|
||||||
|
@ -258,6 +272,17 @@ class Command(BaseCommand):
|
||||||
order=90,
|
order=90,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Agreements
|
||||||
|
self.accept_terms = self.find_or_make(
|
||||||
|
inv.Product,
|
||||||
|
("name","category",),
|
||||||
|
category = self.terms,
|
||||||
|
name="I Accept",
|
||||||
|
price=Decimal("00.00"),
|
||||||
|
reservation_duration=hours(24),
|
||||||
|
order=10,
|
||||||
|
limit_per_user=1,
|
||||||
|
)
|
||||||
# Penguin dinner
|
# Penguin dinner
|
||||||
|
|
||||||
self.penguin_adult = self.find_or_make(
|
self.penguin_adult = self.find_or_make(
|
||||||
|
@ -637,7 +662,23 @@ class Command(BaseCommand):
|
||||||
self.extras,
|
self.extras,
|
||||||
self.t_shirt,
|
self.t_shirt,
|
||||||
self.penguin_dinner,
|
self.penguin_dinner,
|
||||||
|
self.pdns_category,
|
||||||
])
|
])
|
||||||
|
# Require attendees to accept the T&Cs and Code of Conduct
|
||||||
|
needs_agreement = self.find_or_make(
|
||||||
|
cond.CategoryFlag,
|
||||||
|
("description", ),
|
||||||
|
description="Must Accept Terms",
|
||||||
|
condition=cond.FlagBase.DISABLE_IF_FALSE,
|
||||||
|
enabling_category = self.terms,
|
||||||
|
)
|
||||||
|
needs_agreement.categories.set([
|
||||||
|
self.extras,
|
||||||
|
self.t_shirt,
|
||||||
|
self.penguin_dinner,
|
||||||
|
self.pdns_category,
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
def populate_discounts(self):
|
def populate_discounts(self):
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.11.5 on 2017-10-01 08:14
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('pinaxcon_registrasion', '0007_auto_20170930_1610'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='attendeeprofile',
|
||||||
|
name='agreement',
|
||||||
|
),
|
||||||
|
]
|
|
@ -66,12 +66,6 @@ class AttendeeProfile(rego.AttendeeProfileBase):
|
||||||
"Please fill in line 1 before filling line 2",
|
"Please fill in line 1 before filling line 2",
|
||||||
))
|
))
|
||||||
|
|
||||||
if not self.agreement:
|
|
||||||
errors.append((
|
|
||||||
"agreement",
|
|
||||||
"Agreement to the terms and conditions and to the Code of Conduct is required.",
|
|
||||||
))
|
|
||||||
|
|
||||||
if errors:
|
if errors:
|
||||||
raise ValidationError(dict(errors))
|
raise ValidationError(dict(errors))
|
||||||
|
|
||||||
|
@ -201,18 +195,6 @@ class AttendeeProfile(rego.AttendeeProfileBase):
|
||||||
blank=True,
|
blank=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
agreement = models.BooleanField(
|
|
||||||
blank=False,
|
|
||||||
help_text="I agree to the "
|
|
||||||
"<a href=\"https://linux.conf.au/attend/terms-and-conditions\"> "
|
|
||||||
"terms and conditions of attendance</a>, and I have read, "
|
|
||||||
"understood, and agree to act according to the standards set "
|
|
||||||
"forth in our "
|
|
||||||
"<a href=\"https://linux.conf.au/attend/code-of-conduct\">"
|
|
||||||
"Code of Conduct</a>."
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
past_lca = models.ManyToManyField(
|
past_lca = models.ManyToManyField(
|
||||||
PastEvent,
|
PastEvent,
|
||||||
verbose_name="Which past linux.conf.au events have you attended?",
|
verbose_name="Which past linux.conf.au events have you attended?",
|
||||||
|
|
Loading…
Reference in a new issue