コード例 #1
0
 def test_empty_checker(self):
     form = formish.Form(self._schema(), 'form')
     form['seq'].widget = formish.SequenceDefault()
     # Structure should be in form ...
     self.assertTrue('seq.0.foo' in form())
     # ... but not in data
     self.assertEquals(form.validate(self.Request('form', {})), {'seq': []})
コード例 #2
0
 def test_min_start_with_data(self):
     form = formish.Form(self._schema(), 'form')
     form['seq'].widget = formish.SequenceDefault()
     form.defaults = {'seq': [{'foo': 'bar'}]}
     html = form()
     self.assertTrue('seq.0.foo' in html)
     self.assertTrue('value="bar"' in html)
     self.assertTrue('seq.1.foo' not in html)
コード例 #3
0
 def test_min_start_fields(self):
     for i in range(1, 5):
         form = formish.Form(self._schema(), 'form')
         form['seq'].widget = formish.SequenceDefault(min_start_fields=i)
         html = form()
         for num in range(i):
             self.assertTrue('seq.%d.foo' % num in html)
         self.assertEquals(form.validate(self.Request('form', {})),
                           {'seq': []})
コード例 #4
0
 def test_first_entry(self):
     form = formish.Form(self._schema(), 'form')
     form['seq'].widget = formish.SequenceDefault(min_start_fields=2)
     self.assertEquals(
         form.validate(
             self.Request('form', [('seq.0.foo', 'bar'),
                                   ('seq.1.foo', '')])),
         {'seq': [{
             'foo': 'bar'
         }]})
コード例 #5
0
    def form_widgets(self, fields):
        widgets = {}
        widgets['date'] = formish.DateParts(day_first=True)
        widgets['recurring_stop'] = formish.DateParts(day_first=True)
        widgets['payment_date'] = formish.DateParts(day_first=True)
        session = DBSession()
        options = []
        query = session.query(CustomerContact.id, Customer.name,
                              CustomerContact.first_name,
                              CustomerContact.last_name)
        query = query.join(CustomerContact.customer)
        query = query.order_by(Customer.name, CustomerContact.last_name,
                               CustomerContact.first_name)
        for (contact_id, company, first_name, last_name) in query.all():
            options.append(
                (contact_id, '%s: %s %s' % (company, first_name, last_name)))
        widgets['customer_contact_id'] = formish.SelectChoice(options=options)
        widgets['item_list'] = formish.SequenceDefault(min_start_fields=1)
        widgets['item_list.*.item_id'] = formish.Hidden()
        widgets['item_list.*.service_description'] = formish.TextArea()

        return widgets
コード例 #6
0
 def test_empty_first_entry(self):
     form = formish.Form(self._schema(), 'form')
     form['seq'].widget = formish.SequenceDefault(min_start_fields=2)
     self.assertRaises(
         formish.FormError, form.validate,
         self.Request('form', [('seq.0.foo', ''), ('seq.1.foo', 'bar')]))
コード例 #7
0
 def test_min_start_fields_default(self):
     form = formish.Form(self._schema(), 'form')
     form['seq'].widget = formish.SequenceDefault()
     html = form()
     self.assertTrue('seq.0.foo' in html)
     self.assertTrue('seq.1.foo' not in html)