def files_action(): data = [] args = request.args pixel_ratio = 1 models = FileModel.all().limit(240) for arg in args.keys(): if arg == 'retina': val = args.get(arg) if val and val.lower() != 'false': pixel_ratio = 2 continue vals = args.get(arg).split(',') if arg == 'device': models.add_filter(arg, {'in': vals}) else: FilterHelper.apply_filter(arg, vals, models) ImageHelper().join_file_thumbnails(models, 'm.%s' % FileModel._pk, 260 * pixel_ratio, 260 * pixel_ratio) ImageHelper().add_file_icons(models, 48 * pixel_ratio, 128 * pixel_ratio) for model in models: data.append(model.get_data()) return jsonify({'files': data, 'sql': models.render()})
def files_action(): data = [] args = request.args pixel_ratio = 1 models = FileModel.all().limit(240) for arg in args.keys(): if arg == 'retina': val = args.get(arg) if val and val.lower() != 'false': pixel_ratio = 2 continue vals = args.get(arg).split(',') if arg == 'device': models.add_filter(arg, {'in': vals}) else: FilterHelper.apply_filter(arg, vals, models) ImageHelper().join_file_thumbnails( models, 'm.%s' % FileModel._pk, 260*pixel_ratio, 260*pixel_ratio ) ImageHelper().add_file_icons(models, 48*pixel_ratio, 128*pixel_ratio) for model in models: data.append(model.get_data()) return jsonify({'files': data, 'sql': models.render()})
def test_filter(self): """Test FilterHelper functions""" # create a type filter type_filter = FilterHelper.create_filter('type', 'Type') FilterHelper.add_filter_option(type_filter, 1, 'Text') FilterHelper.add_filter_option(type_filter, 2, 'Audio') FilterHelper.add_filter_option(type_filter, 3, 'Image') # create a size filter size_filter = FilterHelper.create_filter('size', 'Size') FilterHelper.add_filter_option(size_filter, 1, 'Small') FilterHelper.add_filter_option(size_filter, 2, 'Medium') FilterHelper.add_filter_option(size_filter, 3, 'Large') f = FileModel({ 'name': 'textfile', 'type': 'text', 'size': '10' }).save() FilterHelper.set_filter_values(f, 'type', 1) FilterHelper.set_filter_values(f, 'size', 1) f = FileModel({ 'name': 'audiofile', 'type': 'audio', 'size': '100' }).save() FilterHelper.set_filter_values(f, 'type', 2) FilterHelper.set_filter_values(f, 'size', 2) f = FileModel({ 'name': 'hybridfile', 'type': 'hybrid', 'size': '1000' }).save() FilterHelper.set_filter_values(f, 'type', (1, 3)) FilterHelper.set_filter_values(f, 'size', (2, 3)) fileset = FileModel.all() FilterHelper.apply_filter('type', 1, fileset) # fileset should contain 'textfile' and 'hybridfile' self.assertEqual(len(fileset), 2) self.assertIn(fileset[0].name(), ('textfile', 'hybridfile')) self.assertIn(fileset[1].name(), ('textfile', 'hybridfile')) fileset = FileModel.all() FilterHelper.apply_filter('size', 2, fileset) # fileset should contain 'audiofile' and 'hybridfile' self.assertEqual(len(fileset), 2) self.assertIn(fileset[0].name(), ('audiofile', 'hybridfile')) self.assertIn(fileset[1].name(), ('audiofile', 'hybridfile')) fileset = FileModel.all() FilterHelper.apply_filter('type', 1, fileset) FilterHelper.apply_filter('size', 2, fileset) # fileset should only contain 'hybridfile' self.assertEqual(len(fileset), 1) self.assertEqual(fileset[0].name(), 'hybridfile')
def test_filter(self): """Test FilterHelper functions""" # create a type filter type_filter = FilterHelper.create_filter('type', 'Type') FilterHelper.add_filter_option(type_filter, 1, 'Text') FilterHelper.add_filter_option(type_filter, 2, 'Audio') FilterHelper.add_filter_option(type_filter, 3, 'Image') # create a size filter size_filter = FilterHelper.create_filter('size', 'Size') FilterHelper.add_filter_option(size_filter, 1, 'Small') FilterHelper.add_filter_option(size_filter, 2, 'Medium') FilterHelper.add_filter_option(size_filter, 3, 'Large') f = FileModel({ 'name': 'textfile', 'type': 'text', 'size': '10' }).save() FilterHelper.set_filter_values(f, 'type', 1) FilterHelper.set_filter_values(f, 'size', 1) f = FileModel({ 'name': 'audiofile', 'type': 'audio', 'size': '100' }).save() FilterHelper.set_filter_values(f, 'type', 2) FilterHelper.set_filter_values(f, 'size', 2) f = FileModel({ 'name': 'hybridfile', 'type': 'hybrid', 'size': '1000' }).save() FilterHelper.set_filter_values(f, 'type', (1, 3)) FilterHelper.set_filter_values(f, 'size', (2, 3)) fileset = FileModel.all() FilterHelper.apply_filter('type', 1, fileset) # fileset should contain 'textfile' and 'hybridfile' self.assertEqual(len(fileset), 2) self.assertIn(fileset[0].name(), ('textfile', 'hybridfile')) self.assertIn(fileset[1].name(), ('textfile', 'hybridfile')) fileset = FileModel.all() FilterHelper.apply_filter('size', 2, fileset) # fileset should contain 'audiofile' and 'hybridfile' self.assertEqual(len(fileset), 2) self.assertIn(fileset[0].name(), ('audiofile', 'hybridfile')) self.assertIn(fileset[1].name(), ('audiofile', 'hybridfile')) fileset = FileModel.all() FilterHelper.apply_filter('type', 1, fileset) FilterHelper.apply_filter('size', 2, fileset) # fileset should only contain 'hybridfile' self.assertEqual(len(fileset), 1) self.assertEqual(fileset[0].name(), 'hybridfile')