'conferencefeedbackopen', 'scheduleactive', 'sessionsactive',
'schedulewidth', 'pixelsperminute',
'testers', 'talkvoters', 'staff', 'volunteers',
- 'asktshirt', 'askfood', 'asknick', 'asktwitter', 'askshareemail', 'skill_levels',
- 'additionalintro', 'callforpapersintro', 'sendwelcomemail', 'welcomemail',
+ 'asktshirt', 'askfood', 'asknick', 'asktwitter', 'askshareemail', 'askphotoconsent',
+ 'skill_levels', 'additionalintro', 'callforpapersintro', 'sendwelcomemail', 'welcomemail',
'invoice_autocancel_hours', 'attendees_before_waitlist']
selectize_multiple_fields = ['testers', 'talkvoters', 'staff', 'volunteers']
del self.fields['twittername']
else:
self.fields['twittername'].validators.append(TwitterValidator)
+ if not self.instance.conference.askphotoconsent:
+ del self.fields['photoconsent']
+ else:
+ self.fields['photoconsent'].required = True
if self.regforother:
self.fields['email'].widget.attrs['readonly'] = True
class Meta:
model = ConferenceRegistration
exclude = ('conference','attendee','registrator','payconfirmedat','payconfirmedby','created', 'regtoken', )
+ widgets = {
+ 'photoconsent': forms.Select(choices=((None, ''), (True, 'I consent to having my photo taken'), (False, "I don't want my photo taken"))),
+ }
@property
def fieldsets(self):
'legend': 'Conference information',
'fields': fields}
+ if self.instance.conference.askphotoconsent:
+ yield {'id': 'consent_info',
+ 'legend': 'Consent',
+ 'fields': [self[x] for x in ['photoconsent', ]],
+ }
+
if conf.conferenceadditionaloption_set.filter(public=True).exists():
yield {'id': 'additional_options',
'legend': 'Additional options',
--- /dev/null
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('confreg', '0023_accesstokens'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='conference',
+ name='askphotoconsent',
+ field=models.BooleanField(default=True, help_text=b'Include field for getting photo consent', verbose_name=b'Field: photo consent'),
+ ),
+ migrations.AddField(
+ model_name='conferenceregistration',
+ name='photoconsent',
+ field=models.NullBooleanField(verbose_name=b'Consent to having your photo taken at the event by the organisers'),
+ ),
+ ]
asktwitter = models.BooleanField(null=False, blank=False, default=False, verbose_name="Field: twitter name", help_text="Include field for twitter name")
asknick = models.BooleanField(null=False, blank=False, default=False, verbose_name="Field: nick", help_text="Include field for nick")
askshareemail = models.BooleanField(null=False, blank=False, default=False, verbose_name="Field: share email", help_text="Include field for sharing email with sponsors")
+ askphotoconsent = models.BooleanField(null=False, blank=False, default=True, verbose_name="Field: photo consent", help_text="Include field for getting photo consent")
skill_levels = models.BooleanField(blank=False, null=False, default=True)
additionalintro = models.TextField(blank=True, null=False, help_text="Additional text shown just before the list of available additional options")
jinjadir = models.CharField(max_length=200, blank=True, null=True, default=None, help_text="Full path to new style jinja repository root")
twittername = models.CharField(max_length=100, null=False, blank=True, verbose_name="Twitter account")
nick = models.CharField(max_length=100, null=False, blank=True, verbose_name="Nickname")
shareemail = models.BooleanField(null=False, blank=False, default=False, verbose_name="Share e-mail address with sponsors")
+ photoconsent = models.NullBooleanField(null=True, blank=False, verbose_name="Consent to having your photo taken at the event by the organisers")
# Admin fields!
payconfirmedat = models.DateTimeField(null=True, blank=True, verbose_name="Payment confirmed")