diff --git a/symposion/proposals/models.py b/symposion/proposals/models.py
index 23f65608..0a45b9d8 100644
--- a/symposion/proposals/models.py
+++ b/symposion/proposals/models.py
@@ -86,28 +86,56 @@ class ProposalBase(models.Model):
kind = models.ForeignKey(ProposalKind, verbose_name=_("Kind"))
title = models.CharField(max_length=100, verbose_name=_("Title"))
- description = models.TextField(
- _("Brief Description"),
- max_length=400, # @@@ need to enforce 400 in UI
- help_text=_("If your proposal is accepted this will be made public and printed in the "
- "program. Should be one paragraph, maximum 400 characters.")
- )
abstract = models.TextField(
- _("Detailed Abstract"),
- help_text=_("Detailed outline. Will be made public if your proposal is accepted. Edit "
- "using Markdown.")
+ _("Abstract"),
+ help_text=_("This will appear in the conference programme. Up to about "
+ "500 words. Edit using Markdown.")
)
abstract_html = models.TextField(blank=True)
- additional_notes = models.TextField(
- _("Addtional Notes"),
- blank=True,
- help_text=_("Anything else you'd like the program committee to know when making their "
- "selection: your past experience, etc. This is not made public. Edit using "
- "Markdown.")
)
- additional_notes_html = models.TextField(blank=True)
+ private_abstract_html = models.TextField(blank=True)
+
+ technical_requirements = models.TextField(
+ _("Special Requirements"),
+ blank=True,
+ help_text=_("Speakers will be provided with: Internet access, power, "
+ "projector, audio. If you require anything in addition, "
+ "please list your technical requirements here. Such as: a "
+ "static IP address, A/V equipment or will be demonstrating "
+ "security-related techniques on the conference network. "
+ "Edit using Markdown.")
+ )
+ technical_requirements_html = models.TextField(blank=True)
+
+ project = models.CharField(
+ max_length=100,
+ blank=True,
+ help_text=_("The name of the project you will be talking about."),
+ )
+ project_url = models.URLField(
+ _("Project URL"),
+ blank=True,
+ help_text=_("If your project has a webpage, specify the URL here so "
+ "the committee can find out more about your proposal.")
+ )
+ video_url = models.URLField(
+ _("Video"),
+ blank=True,
+ help_text=_("You may optionally provide us with a link to a video of "
+ "you speaking at another event, or of a short 'elevator "
+ "pitch' of your proposed talk.")
+ )
+
submitted = models.DateTimeField(
default=now,
editable=False,
@@ -130,7 +158,8 @@ class ProposalBase(models.Model):
def save(self, *args, **kwargs):
self.abstract_html = parse(self.abstract)
- self.additional_notes_html = parse(self.additional_notes)
+ self.private_abstract_html = parse(self.private_abstract)
+ self.technical_requirements_html = parse(self.technical_requirements)
return super(ProposalBase, self).save(*args, **kwargs)
def can_edit(self):
diff --git a/symposion/speakers/forms.py b/symposion/speakers/forms.py
index 122b064c..d4643415 100644
--- a/symposion/speakers/forms.py
+++ b/symposion/speakers/forms.py
@@ -11,13 +11,21 @@ class SpeakerForm(forms.ModelForm):
fields = [
"name",
"biography",
+ "experience",
"photo",
+ "telephone",
+ "homepage",
"twitter_username",
"accessibility",
"travel_assistance",
"accommodation_assistance",
+ "agreement",
]
+ def __init__(self, *a, **k):
+ super(SpeakerForm, self).__init__(*a, **k)
+ self.fields['agreement'].required = True
+
def clean_twitter_username(self):
value = self.cleaned_data["twitter_username"]
if value.startswith("@"):
diff --git a/symposion/speakers/models.py b/symposion/speakers/models.py
index a3542e8a..1e94693b 100644
--- a/symposion/speakers/models.py
+++ b/symposion/speakers/models.py
@@ -24,12 +24,40 @@ class Speaker(models.Model):
name = models.CharField(verbose_name=_("Name"), max_length=100,
help_text=_("As you would like it to appear in the"
" conference program."))
- biography = models.TextField(blank=True, help_text=_("A little bit about you. Edit using "
- ""
- "Markdown."), verbose_name=_("Biography"))
+ biography = models.TextField(
+ blank=True,
+ help_text=_("This will appear on the conference website and in the "
+ "programme. Please write in the third person, eg 'Alice "
+ "is a Moblin hacker...', 150-200 words. Edit using "
+ ""
+ "Markdown."),
+ verbose_name=_("Biography"),
+ )
biography_html = models.TextField(blank=True)
+ experience = models.TextField(
+ blank=True,
+ help_text=_("Have you had any experience presenting elsewhere? If so, "
+ "we'd like to know. Anything you put here will only be "
+ "seen by the organisers and reviewers; use it to convince "
+ "them why they should accept your proposal. Edit using "
+ ""
+ "Markdown."),
+ verbose_name=_("Speaking experience"),
+ )
+ experience_html = models.TextField(blank=True)
photo = models.ImageField(upload_to="speaker_photos", blank=True, verbose_name=_("Photo"))
+ telephone = models.CharField(
+ max_length=15,
+ help_text=_(u"The conference team will need this to contact you "
+ "during the conference week. If you don't have one, or do "
+ "not wish to provide it, then enter NONE in this field.")
+ )
+ homepage = models.URLField(
+ blank=True,
+ help_text=_(u"Your home page, if you have one")
+ )
twitter_username = models.CharField(
max_length=15,
blank=True,
@@ -37,8 +65,12 @@ class Speaker(models.Model):
)
accessibility = models.TextField(
blank=True,
- help_text=_("Please describe any special accessibility requirements that you may have."),
+ help_text=_("Please describe any special accessibility requirements "
+ "that you may have. Edit using "
+ "Markdown."),
verbose_name=_("Accessibility requirements"))
+ accessibility_html = models.TextField(blank=True)
travel_assistance = models.BooleanField(
blank=True,
default=False,
@@ -53,6 +85,12 @@ class Speaker(models.Model):
"accommodation in order to present your proposed sessions."),
verbose_name=_("Accommodation assistance required"),
)
+ agreement = models.BooleanField(
+ default=False,
+ help_text=_("I agree to the terms and confitions of attendance, and "
+ "I have read, understood, and agree to act according to "
+ "the standards set forth in our Code of Conduct ")
+ )
annotation = models.TextField(verbose_name=_("Annotation")) # staff only
invite_email = models.CharField(max_length=200, unique=True, null=True, db_index=True, verbose_name=_("Invite_email"))
@@ -70,6 +108,8 @@ class Speaker(models.Model):
def save(self, *args, **kwargs):
self.biography_html = parse(self.biography)
+ self.experience_html = parse(self.experience)
+ self.accessibility_html = parse(self.accessibility)
return super(Speaker, self).save(*args, **kwargs)
def __str__(self):