class Meta: model = PyConTutorialProposal fields = [ "title", "category", "audience_level", "domain_level", "description", "audience", "perceived_value", "abstract", "outline", "more_info", "additional_notes", "additional_requirements", "handout", "recording_release", ] widgets = { "title": forms.TextInput(attrs={'class': 'fullwidth-input'}), "description": forms.Textarea(attrs={'rows': '3'}), "audience": forms.TextInput(attrs={'class': 'fullwidth-input'}), "perceived_value": forms.Textarea(attrs={'rows': '3'}), "abstract": MarkEdit(), "outline": MarkEdit(), "more_info": MarkEdit(), "additional_notes": MarkEdit(attrs={'rows': '3'}), "additional_requirements": forms.Textarea(attrs={'rows': '3'}), }
class Meta: model = Page fields = ["title", "body", "body_fr", "path"] widgets = { "path": forms.HiddenInput(), "body": MarkEdit(), "body_fr": MarkEdit(), }
class Meta: model = Page fields = ["title", "body", "body_fr", "path"] widgets = { "path": forms.HiddenInput(), "body": MarkEdit(), "body_fr": MarkEdit(), } if not settings.USE_I18N: fields.remove('body_fr') del widgets['body_fr']
class Meta: model = PyConSponsorTutorialProposal fields = [ "title", "description", "abstract", "additional_notes", ] widgets = { "title": forms.TextInput(attrs={'class': 'fullwidth-input'}), "description": forms.Textarea(attrs={'rows': '3'}), "abstract": MarkEdit(), "additional_notes": MarkEdit(attrs={'rows': '3'}), }
class Meta: model = PosterProposal fields = [ "title", "description", "abstract", "additional_notes", "recording_release", ] widgets = { "title": forms.TextInput(attrs={'class': 'fullwidth-input'}), "description": forms.Textarea(attrs={'rows': '3'}), "abstract": MarkEdit(), "additional_notes": MarkEdit(attrs={'rows': '3'}), }
class Meta: model = PyConPosterProposal fields = [ "title", "audience_level", "description", "additional_notes", "additional_requirements", ] widgets = { "audience_level": forms.HiddenInput( attrs={'value': PyConTutorialProposal.AUDIENCE_LEVEL_INTERMEDIATE}, ), "description": MarkEdit(), } help_texts = { 'additional_notes': strip(u""" Additional notes for the program committee, like:<br> Have you presented on this poster’s topic before?<br> What are your qualifications and experiences in this area?<br> Links to any related publications, slides, or source code.<br> Will you need electrical power?<br> Do you have accessibility needs that we should plan ahead for? """), 'additional_requirements': strip(u''' Please let us know if you have any requirements for presenting your poster such as a 6 foot table for a demo. '''), }
def build_content_override_field(self): kwargs = { "label": "Content", "widget": MarkEdit(), "required": False, "initial": self.slot.content_override, } return forms.CharField(**kwargs)
class Meta: model = PyConTutorialProposal fields = [ "title", "audience_level", "domain_level", "description", "audience", "outline", "additional_notes", "recording_release", ] widgets = { "audience_level": forms.HiddenInput(attrs={ 'value': PyConTutorialProposal.AUDIENCE_LEVEL_INTERMEDIATE }, ), "domain_level": forms.HiddenInput(attrs={ 'value': PyConTutorialProposal.DOMAIN_LEVEL_INTERMEDIATE }, ), "description": MarkEdit(), "perceived_value": forms.Textarea(attrs={'rows': '3'}), } help_texts = { 'additional_notes': strip(u""" (a) If you have offered this tutorial before, please provide links to the material and video, if possible. Otherwise, please provide links to one (or two!) previous presentations by each speaker. (b) Please summarize your teaching or public speaking experience and your experience with the subject of the tutorial. (c) Let us know if you have specific needs or special requests — for example, requests that involve accessibility, audio, or restrictions on when your talk can be scheduled. """), 'outline': strip(u""" Make an outline that lists the topics and activities you will guide your students through over the 3 hours of your tutorial. Provide timings for each activity — indicate when and for how long you will lecture, and when and for how long students will be tackling hands-on exercises. This is a very important criteria! Generally speaking, the more detailed the outline, the more confidence the committee will have that you can deliver the material in the allotted time. """), }
class Meta: model = LightningTalkProposal fields = [ "title", "additional_notes", "recording_release", ] widgets = { "title": forms.TextInput(attrs={'class': 'fullwidth-input'}), "additional_notes": MarkEdit(attrs={'rows': '3'}), }
class Meta: model = OpenSpaceProposal fields = [ "title", "description", "additional_notes", ] widgets = { "title": forms.TextInput(attrs={'class': 'fullwidth-input'}), "description": forms.Textarea(attrs={'rows': '3'}), "additional_notes": MarkEdit(attrs={'rows': '3'}), }
class Meta: model = EduSummitTalkProposal fields = [ "title", "description", "additional_notes", "audience_level", "recording_release", ] widgets = { "description": MarkEdit(), }
class Meta: model = PyConOpenSpaceProposal fields = [ "title", "description", "additional_notes", "additional_requirements", "audience_level", "category", ] widgets = { "title": forms.TextInput(attrs={'class': 'fullwidth-input'}), "description": forms.Textarea(attrs={'rows': '3'}), "additional_notes": MarkEdit(attrs={'rows': '3'}), "additional_requirements": forms.Textarea(attrs={'rows': '3'}), }
class Meta: model = Proposals fields = [ "title", "description", "audience", "status", "proposal_type", "proposal_section", "pre_requisites", "current_urls", "speaker_info", "speaker_links", ] widgets = {"description": MarkEdit()}
class Meta: model = EduSummitTalkProposal fields = [ "title", "category", "description", "additional_notes", "additional_requirements", "audience_level", "recording_release", ] widgets = { "title": forms.TextInput(attrs={'class': 'fullwidth-input'}), "description": forms.Textarea(attrs={'rows': '3'}), "additional_notes": MarkEdit(attrs={'rows': '3'}), "additional_requirements": forms.Textarea(attrs={'rows': '3'}), }
class Meta: model = PyConCharlaProposal fields = [ "title", "description", "outline", "additional_notes", "recording_release", # Hidden fields: "audience_level", ] widgets = { "description": MarkEdit(), "audience_level": forms.HiddenInput( attrs={'value': PyConTalkProposal.AUDIENCE_LEVEL_INTERMEDIATE}, ), } help_texts = { 'title': strip(u""), 'description': strip( u"Resumen de qué trata la charla y por qué es interesante para los asistentes." ), 'outline': strip( u"Cual es el tema de la charla, que va a cubrir y por qué esta charla deberia ser elegida para las PyCon Charlas." ), 'additional_notes': strip( u"Informacion general sobre el ponente para los revisores. Experiencia previa, dominio del tema, etc." ), 'recording_release': strip( u"Al enviar tu propuesta estás de acuerdo con dar permiso a la Python Software Foundation de grabar, editar y liberar el audio y/o vídeo de tu presentación. Si no estás de acuerdo, por favor desmarca la casilla. Dirígete a <a href=\"/2019/speaking/recording/\">liberación de grabaciones PyCon 2019</a> para más detalles." ), }
class Meta: model = PyConTalkProposal fields = [ "title", "duration", "description", "audience", "outline", "additional_notes", "recording_release", # Hidden fields: "audience_level", ] widgets = { "description": MarkEdit(), "audience_level": forms.HiddenInput( attrs={'value': PyConTalkProposal.AUDIENCE_LEVEL_INTERMEDIATE}, ), } help_texts = { 'title': strip( u""" Puns, jokes, or “hooks” in titles are okay, but make sure that if all someone knew was the title, they still would have some idea what the presentation is about. <br><br> <b>Please do not include any personally identifiable information.</b> The initial round of reviews are annonymous, and this field will visible to reviewers.<br> """ ), 'description': strip( u""" Both your title and this description are made public and displayed in the conference program to help attendees decide whether they are interested in this presentation. Limit this description to a few concise paragraphs. <br><br> <b>Please do not include any personally identifiable information.</b> The initial round of reviews are annonymous, and this field will visible to reviewers.<br> """ ), 'additional_notes': strip( u""" Anything else you would like to share with the committee:<br> Speaker public speaking experience.<br> Speaker subject matter experience.<br> Have the speaker(s) given this presentation before elsewhere?<br> Links to recordings, slides, blog posts, code, or other material. <br> Specific needs or special requests — accessibility, audio (will you need to play pre-recorded sound?), or restrictions on when your talk can be scheduled. <br> This field will be visible to reviewers in the second round of proposal review. """, ), 'outline': strip( u""" The “outline” is a skeleton of your talk that is as detailed as possible, including rough timings or estimates for different sections. If requesting a 45 minute slot, please describe what content would appear in the 45 minute version but not a 30 minute version, either within the outline or in a paragraph at the end. <br><br> <b>Please do not include any personally identifiable information.</b> The initial round of reviews are annonymous, and this field will visible to reviewers.<br> <br> <i>Committee note:</i> The outline is extremely important for the program committee to understand what the content and structure of your talk will be. The timings/percentages help us compare multiple talks that might have a similar abstract. We know that they are estimates and only capture your view at this moment in time and are likely to change before PyCon. We hope that writing the outline is helpful to you as well, to organize and clarify your thoughts for your talk! The outline will not be shared with conference attendees.<br> <br> If there’s too much to your topic to cover even in 45 minutes, you may wish to narrow it down. Alternatively, consider submitting a 3-hour PyCon tutorial instead. If you plan to do live coding during your talk, please describe your backup plan in case the live coding fails (for whatever reason). Suggestions include a pre-recorded video, or slides to replace the live coding. """ ), 'audience': strip( u""" 1–2 paragraphs that should answer three questions: (1) Who is this talk for? (2) What background knowledge or experience do you expect the audience to have? (3) What do you expect the audience to learn or do after watching the talk? <br><br> <b>Please do not include any personally identifiable information.</b> The initial round of reviews are annonymous, and this field will visible to reviewers.<br><br> <i>Committee note:</i> The “Audience” section helps the program committee get a sense of whether your talk is geared more at novices or experienced individuals in a given subject. (We need a balance of both lower-level and advanced talks to make a great PyCon!) It also helps us evaluate the relevance of your talk to the Python community. """ ), }
class Meta: model = Box fields = ["content"] widgets = { "content": MarkEdit(), }
class Meta: model = Review fields = ["vote", "comment"] widgets = {"comment": MarkEdit()}
class Meta: model = Comment fields = ["text"] widgets = {"text": MarkEdit()}
class Meta: model = PyConTutorialMessage fields = ["message"] widgets = { 'message': MarkEdit(), }