Ejemplo n.º 1
0
 def test_valid_extra_parameters(self):
     '''Should validate with extra parameters'''
     form = DatatablesForm({
         'sEcho': '1',
         'iColumns': '5',
         'iDisplayStart': '0',
         'iDisplayLength': '10',
         'sSearch': '',
         'bRegex': 'false',
         'iSortingCols': '1',
         'mDataProp_0': '0',
         'mDataProp_1': '1',
         'mDataProp_2': '2',
         'mDataProp_3': '3',
         'mDataProp_4': '4',
         'sSearch_0': 's0',
         'sSearch_1': 's1',
         'sSearch_2': 's2',
         'sSearch_3': 's3',
         'sSearch_4': 's4',
         'bRegex_0': 'false',
         'bRegex_1': 'false',
         'bRegex_2': 'false',
         'bRegex_3': 'false',
         'bRegex_4': 'false',
         'bSearchable_0': 'true',
         'bSearchable_1': 'true',
         'bSearchable_2': 'true',
         'bSearchable_3': 'true',
         'bSearchable_4': 'true',
         'bSortable_0': 'true',
         'bSortable_1': 'true',
         'bSortable_2': 'true',
         'bSortable_3': 'true',
         'bSortable_4': 'true',
         'iSortCol_0': '0',
         'sSortDir_0': 'asc',
     })
     self.assertTrue(form.is_valid())
     for idx in xrange(5):
         self.assertEqual(form.cleaned_data['mDataProp_%s' % idx],
                          '%s' % idx)
         self.assertEqual(form.cleaned_data['sSearch_%s' % idx],
                          's%s' % idx)
         self.assertEqual(form.cleaned_data['bRegex_%s' % idx], False)
         self.assertEqual(form.cleaned_data['bSearchable_%s' % idx], True)
         self.assertEqual(form.cleaned_data['bSortable_%s' % idx], True)
     self.assertEqual(form.cleaned_data['iSortCol_0'], 0)
     self.assertEqual(form.cleaned_data['sSortDir_0'], 'asc')
Ejemplo n.º 2
0
 def process_dt_response(self, data):
     # Switch between server-side and client-side mode. Given that
     # 'iColumns' is a needed server-side parameter, if it doesn't exist we
     # can safely switch to client-side.
     if 'iColumns' in data:
         self.generate_search_sets(data)
         self.form = DatatablesForm(data)
         if not self.form.is_valid():
             return HttpResponseBadRequest()
     else:
         self.form = None
         self.ServerSide = False
     self.qs = self.get_queryset()
     self.set_object_list()
     return self.render_to_response(self.form)
Ejemplo n.º 3
0
    def test_dyanmic_extra_parameters(self):
        '''Should dynamiclly add extra parameters'''
        form = DatatablesForm({
            'sEcho': '1',
            'iColumns': '5',
            'iDisplayStart': '0',
            'iDisplayLength': '10',
            'sSearch': '',
            'bRegex': 'false',
            'iSortingCols': '2',
        })

        for i in xrange(5):
            self.assertTrue('mDataProp_%s' % i in form.fields)
            self.assertTrue(isinstance(form['mDataProp_%s' % i].field, forms.CharField))
            self.assertFalse(form['mDataProp_%s' % i].field.required)

            self.assertTrue('sSearch_%s' % i in form.fields)
            self.assertTrue(isinstance(form['sSearch_%s' % i].field, forms.CharField))
            self.assertFalse(form['sSearch_%s' % i].field.required)

            self.assertTrue('bRegex_%s' % i in form.fields)
            self.assertTrue(isinstance(form['bRegex_%s' % i].field, forms.BooleanField))
            self.assertFalse(form['bRegex_%s' % i].field.required)

            self.assertTrue('bSearchable_%s' % i in form.fields)
            self.assertTrue(isinstance(form['bSearchable_%s' % i].field, forms.BooleanField))
            self.assertFalse(form['bSearchable_%s' % i].field.required)

            self.assertTrue('bSortable_%s' % i in form.fields)
            self.assertTrue(isinstance(form['bSortable_%s' % i].field, forms.BooleanField))
            self.assertFalse(form['bSortable_%s' % i].field.required)

        for i in xrange(2):
            self.assertTrue('iSortCol_%s' % i in form.fields)
            self.assertTrue(isinstance(form['iSortCol_%s' % i].field, forms.IntegerField))
            self.assertTrue(form['iSortCol_%s' % i].field.required)

            self.assertTrue('sSortDir_%s' % i in form.fields)
            self.assertTrue(isinstance(form['sSortDir_%s' % i].field, forms.ChoiceField))
            self.assertTrue(form['sSortDir_%s' % i].field.required)

        self.assertFalse('iSortCol_2' in form.fields)
Ejemplo n.º 4
0
 def test_base_parameters(self):
     '''Should validate base parameters'''
     form = DatatablesForm({
         'sEcho': '1',
         'iColumns': '5',
         'iDisplayStart': '0',
         'iDisplayLength': '10',
         'sSearch': '',
         'bRegex': 'false',
         'iSortingCols': '1',
         'iSortCol_0': '0',
         'sSortDir_0': 'asc',
     })
     self.assertTrue(form.is_valid())
     self.assertEqual(form.cleaned_data['sEcho'], '1')
     self.assertEqual(form.cleaned_data['iColumns'], 5)
     self.assertEqual(form.cleaned_data['iDisplayStart'], 0)
     self.assertEqual(form.cleaned_data['iDisplayLength'], 10)
     self.assertEqual(form.cleaned_data['sSearch'], '')
     self.assertEqual(form.cleaned_data['bRegex'], False)
     self.assertEqual(form.cleaned_data['iSortingCols'], 1)
Ejemplo n.º 5
0
 def process_dt_response(self, data):
     self.form = DatatablesForm(data)
     if self.form.is_valid():
         #flush_transaction()
         self.object_list = self.get_queryset().values(
             *self.get_db_fields())
         #print 'get_queryset: %s' % str(self.get_queryset)
         self.field_choices_dict = get_field_choices(
             self.get_queryset()[:1], self.get_db_fields())
         #field_choices_dict={}
         #print '####################################################################################################################'
         #print '###object_list: %s, type: %s' % (self.object_list, type(self.object_list))
         #self.object_list = get_object_list_display(self.object_list, field_choices_dict)
         #print '********************************************************************************************************************'
         #print '***object_list: %s, type: %s' % (self.object_list, type(self.object_list))
         #print 'object_list: %s' % str(object_list)
         #print 'field_choices_dict: %s' % str(field_choices_dict)
         #print 'object_list_display: %s' % str(object_list_display)
         #self.object_list = self.get_queryset().values(*self.get_db_fields())
         #self.object_list = self.object_list_display
         return self.render_to_response(self.form)
     else:
         return HttpResponseBadRequest()