Changeset - f56ce514599a
[Not reviewed]
Merge
0 5 0
Scott Bragg - 8 years ago 2016-06-20 23:57:56
jsbragg@scriptforge.org
Merge pull request #18 from lca2017/chrisjrn/017-cfp-models-and-forms

CFP models and forms
3 files changed with 99 insertions and 22 deletions:
0 comments (0 inline, 0 general)
symposion/proposals/models.py
Show inline comments
...
 
@@ -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 <a href='http://daringfireball.net/projects/markdown/basics' "
 
                    "target='_blank'>Markdown</a>.")
 
        _("Abstract"),
 
        help_text=_("This will appear in the conference programme. Up to about "
 
                    "500 words. Edit using <a "
 
                    "href='http://daringfireball.net/projects/markdown/basics' " "target='_blank'>Markdown</a>.")
 
    )
 
    abstract_html = models.TextField(blank=True)
 
    additional_notes = models.TextField(
 
        _("Addtional Notes"),
 

	
 
    private_abstract = models.TextField(
 
        _("Private Abstract"),
 
        help_text=_("This will only be shown to organisers and reviewers. You "
 
                    "should provide any details about your proposal that you "
 
                    "don't want to be public here. Edit using <a " "href='http://daringfireball.net/projects/markdown/basics' "
 
                    "target='_blank'>Markdown</a>.")
 
    )
 
    private_abstract_html = models.TextField(blank=True)
 

	
 
    technical_requirements = models.TextField(
 
        _("Special Requirements"),
 
        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 "
 
                    "<a href='http://daringfireball.net/projects/markdown/basics' "
 
        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 <a "
 
                    "href='http://daringfireball.net/projects/markdown/basics' "
 
                    "target='_blank'>Markdown</a>.")
 
    )
 
    additional_notes_html = models.TextField(blank=True)
 
    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):
symposion/speakers/forms.py
Show inline comments
...
 
@@ -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("@"):
symposion/speakers/models.py
Show inline comments
...
 
@@ -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 "
 
                                                         "<a href='http://warpedvisions.org/projects/"
 
                                                         "markdown-cheat-sheet/target='_blank'>"
 
                                                         "Markdown</a>."), 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 "
 
                    "<a href='http://warpedvisions.org/projects/"
 
                    "markdown-cheat-sheet/target='_blank'>"
 
                    "Markdown</a>."),
 
        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 "
 
                    "<a href='http://warpedvisions.org/projects/"
 
                    "markdown-cheat-sheet/target='_blank'>"
 
                    "Markdown</a>."),
 
        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 "
 
        "<a href='http://warpedvisions.org/projects/"
 
        "markdown-cheat-sheet/target='_blank'>Markdown</a>."),
 
        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):
0 comments (0 inline, 0 general)