示例#1
0
class SubmissionForm(twbf.HorizontalForm):

    title = 'Submission'

    validator = SubmissionValidator

    id = twbf.HiddenField(validator=twc.IntValidator)
    assignment = twbf.HiddenField(validator=twsa.RelatedValidator(Assignment))

    filename = MediumTextField(
        placeholder=u'Enter a filename, if needed',
        validator=twc.StringLengthValidator,
        help_text=u'An automatically generated filename may not meet the '
        'language\'s requirements (e.g. the Java class name)',
    )
    source = SourceEditor(placeholder=u'Paste your source code here',
                          validator=twc.StringLengthValidator,
                          css_class='span8',
                          cols=80,
                          rows=24)
    source_file = twbf.FileField(css_class='span7')

    language = LanguageSelectField()

    def prepare(self):
        self.safe_modify('language')
        self.child.c.language.options = [
            (l.id, l.name) for l in self.value.assignment.allowed_languages
        ]
        try:
            self.safe_modify('source')
            self.child.c.source.mode = self.value.language.lexer_name
        except AttributeError:
            pass
        super(SubmissionForm, self).prepare()
示例#2
0
 def test_twopk(self):
     try:
         tws.RelatedValidator(self.DBTestCls3)
         assert (False)
     except twc.WidgetError, e:
         assert (
             str(e) ==
             'RelatedValidator can only act on tables that have a single primary key column'
         )
示例#3
0
 def test_nonent(self):
     vld = tws.RelatedValidator(self.DBTestCls2)
     t1 = vld.to_python('bob')
     try:
         vld.from_python(u'bob')
         assert (False)
     except twc.ValidationError, e:
         assert (
             str(e) ==
             'from_python not passed instance of self.entity but instead "bob" of type "<type \'unicode\'>".'
         )
示例#4
0
 def test_nonint(self):
     vld = tws.RelatedValidator(self.DBTestCls2)
     t1 = vld.to_python('bob')
     assert (isinstance(t1, self.DBTestCls2))
     assert (t1.id == 'bob')
     assert (vld.from_python(t1) == u'bob')
     try:
         vld.to_python('x')
         assert (False)
     except twc.ValidationError:
         pass
示例#5
0
class LanguageSelectField(MediumMixin, _SingleSelectField):
    options = []
    prompt_text = None
    required = True
    validator = twsa.RelatedValidator(entity=Language)
示例#6
0
 def test_null(self):
     vld = tws.RelatedValidator(self.DBTestCls1)
     assert (vld.from_python(None) is None)
     assert (vld.to_python('') is None)