def __init__(self, read_only, interaction_mode, initial_code, language_mode, data=None, *args, **kwargs): super(CodeForm, self).__init__(data, *args, **kwargs) from course.utils import get_codemirror_widget cm_widget, cm_help_text = get_codemirror_widget( language_mode=language_mode, interaction_mode=interaction_mode, read_only=read_only, # Automatically focus the text field once there has # been some input. autofocus=(not read_only and (data is not None and "answer" in data))) self.fields["answer"] = forms.CharField(required=True, initial=initial_code, help_text=cm_help_text, widget=cm_widget, label=_("Answer")) self.style_codemirror_widget()
def __init__(self, initial_text, language_mode, interaction_mode, help_text, *args, **kwargs): super(SandboxForm, self).__init__(*args, **kwargs) from crispy_forms.helper import FormHelper self.helper = FormHelper() self.helper.form_class = "form-horizontal" from course.utils import get_codemirror_widget cm_widget, cm_help_text = get_codemirror_widget( language_mode=language_mode, interaction_mode=interaction_mode) self.fields["content"] = forms.CharField( required=False, initial=initial_text, widget=cm_widget, help_text=mark_safe( help_text + " " + ugettext("Press Alt/Cmd+(Shift+)P to preview.") + " " + cm_help_text), label=_("Content")) self.helper.add_input( Submit( "preview", _("Preview"), accesskey="p"))
def __init__(self, initial_text, language_mode, interaction_mode, help_text, *args, **kwargs): # type: (Text, Text, Text, Text, *Any, **Any) -> None super(SandboxForm, self).__init__(*args, **kwargs) from crispy_forms.helper import FormHelper self.helper = FormHelper() self.helper.form_class = "form-horizontal" from course.utils import get_codemirror_widget cm_widget, cm_help_text = get_codemirror_widget( language_mode=language_mode, interaction_mode=interaction_mode) self.fields["content"] = forms.CharField( required=False, initial=initial_text, widget=cm_widget, help_text=mark_safe( help_text + " " + ugettext("Press Alt/Cmd+(Shift+)P to preview.") + " " + cm_help_text), label=_("Content")) # 'strip' attribute was added to CharField in Django 1.9 # with 'True' as default value. if hasattr(self.fields["content"], "strip"): self.fields["content"].strip = False self.helper.add_input(Submit("preview", _("Preview"), accesskey="p"), ) self.helper.add_input( Submit("clear", _("Clear"), css_class="btn-default"), )
def __init__(self, read_only, interaction_mode, initial_code, *args, **kwargs): super(PythonCodeForm, self).__init__(*args, **kwargs) from course.utils import get_codemirror_widget cm_widget, cm_help_text = get_codemirror_widget( language_mode="python", interaction_mode=interaction_mode, read_only=read_only ) self.fields["answer"] = forms.CharField( required=True, initial=initial_code, help_text=cm_help_text, widget=cm_widget, label=_("Answer") )
def __init__(self, read_only, interaction_mode, initial_code, *args, **kwargs): super(PythonCodeForm, self).__init__(*args, **kwargs) from course.utils import get_codemirror_widget cm_widget, cm_help_text = get_codemirror_widget( language_mode="python", interaction_mode=interaction_mode, read_only=read_only) self.fields["answer"] = forms.CharField(required=True, initial=initial_code, help_text=cm_help_text, widget=cm_widget, label=_("Answer"))
def __init__(self, course, editor_mode, *args, **kwargs): super(BatchIssueTicketsForm, self).__init__(*args, **kwargs) from course.utils import get_codemirror_widget cm_widget, cm_help_text = get_codemirror_widget( language_mode={"name": "markdown", "xml": True}, dependencies=("xml",), interaction_mode=editor_mode) help_text = (ugettext("Enter <a href=\"http://documen.tician.de/" "relate/content.html#relate-markup\">" "RELATE markup</a> containing Django template statements to render " "your exam tickets. <tt>tickets</tt> contains a list of " "data structures " "containing ticket information. For each entry <tt>tkt</tt> " "in this list, " "use <tt>{{ tkt.participation.user.user_name }}</tt>, " "<tt>{{ tkt.code }}</tt>, <tt>{{ tkt.exam.description }}</tt>, " "and <tt>{{ checkin_uri }}</tt> as placeholders. " "See the example for how to use this.")) self.fields["exam"] = forms.ModelChoiceField( queryset=( Exam.objects.filter( course=course, active=True )), required=True, label=_("Exam")) self.fields["format"] = forms.CharField( label=_("Ticket Format"), help_text=help_text, widget=cm_widget, initial=INITIAL_EXAM_TICKET_TEMPLATE, required=True) self.fields["revoke_prior"] = forms.BooleanField( label=_("Revoke prior exam tickets"), required=False, initial=False) self.helper.add_input( Submit( "issue", _("Issue tickets")))
def __init__(self, course, editor_mode, *args, **kwargs): super(BatchIssueTicketsForm, self).__init__(*args, **kwargs) from course.utils import get_codemirror_widget cm_widget, cm_help_text = get_codemirror_widget( language_mode={ "name": "markdown", "xml": True }, dependencies=("xml", ), interaction_mode=editor_mode) help_text = (ugettext( "Enter <a href=\"http://documen.tician.de/" "relate/content.html#relate-markup\">" "RELATE markup</a> containing Django template statements to render " "your exam tickets. <tt>tickets</tt> contains a list of " "data structures " "containing ticket information. For each entry <tt>tkt</tt> " "in this list, " "use <tt>{{ tkt.participation.user.user_name }}</tt>, " "<tt>{{ tkt.code }}</tt>, <tt>{{ tkt.exam.description }}</tt>, " "and <tt>{{ checkin_uri }}</tt> as placeholders. " "See the example for how to use this.")) self.fields["exam"] = forms.ModelChoiceField( queryset=(Exam.objects.filter(course=course, active=True)), required=True, label=_("Exam")) self.fields["format"] = forms.CharField( label=_("Ticket Format"), help_text=help_text, widget=cm_widget, initial=INITIAL_EXAM_TICKET_TEMPLATE, required=True) self.fields["revoke_prior"] = forms.BooleanField( label=_("Revoke prior exam tickets"), required=False, initial=False) self.helper.add_input(Submit("issue", _("Issue tickets")))
def get_text_widget(widget_type, read_only=False, check_only=False, interaction_mode=None): """Returns None if no widget found.""" if widget_type in [None, "text_input"]: if check_only: return True widget = forms.TextInput() widget.attrs["autofocus"] = None if read_only: widget.attrs["readonly"] = None return widget, None elif widget_type == "textarea": if check_only: return True widget = forms.Textarea() # widget.attrs["autofocus"] = None if read_only: widget.attrs["readonly"] = None return widget, None elif widget_type.startswith("editor:"): if check_only: return True from course.utils import get_codemirror_widget cm_widget, cm_help_text = get_codemirror_widget( language_mode=widget_type[widget_type.find(":") + 1:], interaction_mode=interaction_mode, read_only=read_only) return cm_widget, cm_help_text else: return None, None
def get_text_widget(widget_type, read_only=False, check_only=False, interaction_mode=None): """Returns None if no widget found.""" if widget_type in [None, "text_input"]: if check_only: return True widget = forms.TextInput() widget.attrs["autofocus"] = None if read_only: widget.attrs["readonly"] = None return widget, None elif widget_type == "textarea": if check_only: return True widget = forms.Textarea() # widget.attrs["autofocus"] = None if read_only: widget.attrs["readonly"] = None return widget, None elif widget_type.startswith("editor:"): if check_only: return True from course.utils import get_codemirror_widget cm_widget, cm_help_text = get_codemirror_widget( language_mode=widget_type[widget_type.find(":") + 1 :], interaction_mode=interaction_mode, read_only=read_only, ) return cm_widget, cm_help_text else: return None, None
def __init__(self, read_only, interaction_mode, initial_code, data=None, *args, **kwargs): super(PythonCodeForm, self).__init__(data, *args, **kwargs) from course.utils import get_codemirror_widget cm_widget, cm_help_text = get_codemirror_widget( language_mode="python", interaction_mode=interaction_mode, read_only=read_only, # Automatically focus the text field once there has # been some input. autofocus=( not read_only and (data is not None and "answer" in data))) self.fields["answer"] = forms.CharField(required=True, initial=initial_code, help_text=cm_help_text, widget=cm_widget, label=_("Answer")) self.style_codemirror_widget()
def __init__(self, initial_text, language_mode, interaction_mode, help_text, *args, **kwargs): # type: (Text, Text, Text, Text, *Any, **Any) -> None super(SandboxForm, self).__init__(*args, **kwargs) from crispy_forms.helper import FormHelper self.helper = FormHelper() self.helper.form_class = "form-horizontal" from course.utils import get_codemirror_widget cm_widget, cm_help_text = get_codemirror_widget( language_mode=language_mode, interaction_mode=interaction_mode) self.fields["content"] = forms.CharField( required=False, initial=initial_text, widget=cm_widget, help_text=mark_safe( help_text + " " + ugettext("Press Alt/Cmd+(Shift+)P to preview.") + " " + cm_help_text), label=_("Content")) # 'strip' attribute was added to CharField in Django 1.9 # with 'True' as default value. if hasattr(self.fields["content"], "strip"): self.fields["content"].strip = False self.helper.add_input( Submit("preview", _("Preview"), accesskey="p"), ) self.helper.add_input( Submit("clear", _("Clear"), css_class="btn-default"), )