Пример #1
0
    def test_pk_list_to_dict2(self):
        foo = [1, 2, 3, "a", "b", {"foo": "bar"}]
        resp = pk_list_to_dict(foo)
        self.assertEqual(resp, {1: 2, 3: 'a', 'b': {'foo': 'bar'}})

        foo = [1, 2, 3, "a", "b"]
        resp = pk_list_to_dict(foo)
        self.assertEqual(resp, None)
Пример #2
0
    def test_pk_list_to_dict2(self):
        foo = [1, 2, 3, "a", "b", {"foo": "bar"}]
        resp = pk_list_to_dict(foo)
        self.assertEqual(resp, {1: 2, 3: 'a', 'b': {'foo': 'bar'}})

        foo = [1, 2, 3, "a", "b"]
        resp = pk_list_to_dict(foo)
        self.assertEqual(resp, None)
Пример #3
0
 def mass_delete_view(self):
     items_list = self.request.POST.getall('selected_item')
     primary_keys = [
         pk_list_to_dict(json.loads(item)) for item in items_list
     ]
     objects = self.context.crud.read(*primary_keys)
     try:
         if hasattr(objects, 'delete'):
             object_names = [escape(x.__repr__() or '') for x in objects]
             objects.delete()
         else:
             object_names = [
                 escape(objects.__repr__() or ''),
             ]
             self.request.dbsession.delete(objects)
     except (NoResultFound, KeyError):
         raise HTTPNotFound
     except SacrudException as e:
         self.flash_message(e.message, status=e.status)
     except Exception as e:
         transaction.abort()
         logging.exception("Something awful happened!")
         raise e
     transaction.commit()
     self.flash_message(_ps("You delete the following objects:"))
     [self.flash_message(obj) for obj in object_names]
     return self.list_view_response()
Пример #4
0
 def make_selected_action(self):
     selected_action = self.request.POST.get('selected_action')
     items_list = None
     try:
         items_list = self.request.POST.getall('selected_item')
     except AttributeError:
         items_list = self.request.POST.get('selected_item')
     if selected_action == 'delete':
         obj_list = []
         for item in items_list:
             pk_list = json.loads(item)
             pk = pk_list_to_dict(pk_list)
             try:
                 obj = self.crud.delete(pk)
                 obj_list.append(obj['name'])
             except (NoResultFound, KeyError):
                 raise HTTPNotFound
             except SacrudMessagedException as e:
                 self.flash_message(e.message, status=e.status)
             except Exception as e:
                 transaction.abort()
                 logging.exception("Something awful happened!")
                 raise e
         transaction.commit()
         self.flash_message(_ps("You delete the following objects:"))
         self.flash_message("<br/>".join(
             [escape(x or '') for x in obj_list]))
         return HTTPFound(
             location=self.request.route_url('sa_list', table=self.tname))
Пример #5
0
 def mass_delete(self):
     items_list = self.request.POST.getall('selected_item')
     primary_keys = [pk_list_to_dict(json.loads(item))
                     for item in items_list]
     objects = self.crud.read(*primary_keys)
     try:
         if hasattr(objects, 'delete'):
             object_names = [escape(x.__repr__() or '') for x in objects]
             objects.delete()
         else:
             object_names = [escape(objects.__repr__() or ''), ]
             self.request.dbsession.delete(objects)
     except (NoResultFound, KeyError):
         raise HTTPNotFound
     except SacrudMessagedException as e:
         self.flash_message(e.message, status=e.status)
     except Exception as e:
         transaction.abort()
         logging.exception("Something awful happened!")
         raise e
     transaction.commit()
     self.flash_message(_ps("You delete the following objects:"))
     self.flash_message("<br/>".join(object_names))
     return HTTPFound(
         location=self.request.route_url(PYRAMID_SACRUD_LIST,
                                         table=self.tname))
Пример #6
0
 def _getitem(self, resource, name):
     primary_key = self.get_primary_key()
     primary_key.append(name)
     pk_len = len(self.table.__table__.primary_key) * 2
     if len(primary_key) < pk_len:
         return self.__class__(self.table, self, self.dbsession, name)
     elif len(primary_key) == pk_len:
         try:
             obj = self.crud.read(pk_list_to_dict(primary_key)).one()
         except sqlalchemy.orm.exc.NoResultFound:
             return None
         resource.obj = obj
         return resource
Пример #7
0
 def __init__(self, request):
     self.pk = None
     self.request = request
     self.tname = request.matchdict["table"]
     self.table = get_table(self.tname, self.request)
     self.crud = sacrud_crud(self.request.dbsession, self.table, commit=False)
     self.params = request.params
     if hasattr(self.params, "dict_of_lists"):
         self.params = self.params.dict_of_lists()
     if not self.table:
         raise HTTPNotFound
     pk = request.matchdict.get("pk")
     if pk and len(pk) % 2 == 0:
         self.pk = pk_list_to_dict(pk)
     elif pk or pk == ():
         raise HTTPNotFound
Пример #8
0
 def __init__(self, request):
     self.pk = None
     self.request = request
     self.tname = request.matchdict['table']
     self.table = get_table(self.tname, self.request)
     self.crud = self.request.dbsession.sacrud(self.table, commit=False)
     self.params = request.params
     if hasattr(self.params, 'dict_of_lists'):
         self.params = self.params.dict_of_lists()
     if not self.table:
         raise HTTPNotFound
     pk = request.matchdict.get('pk')
     if pk and len(pk) % 2 == 0:
         self.pk = pk_list_to_dict(pk)
     elif pk or pk == ():
         raise HTTPNotFound
Пример #9
0
 def _getitem(self, resource, name):
     primary_key = self.get_primary_key()
     primary_key.append(name)
     pk_len = len(self.table.__table__.primary_key) * 2
     if len(primary_key) < pk_len:
         resource = self.__class__(self.table, self.dbsession, name)
         resource.__parent__ = self
         return resource
     elif len(primary_key) == pk_len:
         try:
             obj = self.sacrud.read(pk_list_to_dict(primary_key)).one()
         except sqlalchemy.orm.exc.NoResultFound:
             return None
         resource.obj = obj
         resource.__parent__ = self
         return resource
Пример #10
0
 def mass_delete_view(self):
     items_list = self.request.POST.getall('selected_item')
     primary_keys = [pk_list_to_dict(json.loads(item))
                     for item in items_list]
     objects = self.context.sacrud.read(*primary_keys)
     try:
         if hasattr(objects, 'delete'):
             object_names = [escape(x.__repr__() or '') for x in objects]
             objects.delete()
         else:
             object_names = [escape(objects.__repr__() or ''), ]
             self.request.dbsession.delete(objects)
     except (NoResultFound, KeyError):
         raise HTTPNotFound
     except SacrudException as e:
         self.flash_message(e.message, status=e.status)
     except Exception as e:
         transaction.abort()
         logging.exception("Something awful happened!")
         raise e
     transaction.commit()
     self.flash_message(_ps("You delete the following objects:"))
     [self.flash_message(obj) for obj in object_names]
     return self.list_view_response()
Пример #11
0
 def test_bad_pk_list_to_dict(self):
     l = ['id', 1, 'id2', 22, 'foo']
     d = pk_list_to_dict(l)
     self.assertEqual(d, None)
Пример #12
0
 def test_pk_list_to_dict(self):
     l = ['id', 1, 'id2', 22, 'foo', 'bar']
     d = pk_list_to_dict(l)
     self.assertEqual(d, {'foo': 'bar', 'id2': 22, 'id': 1})
Пример #13
0
 def test_pk_list_to_dict(self):
     l = ['id', 1, 'id2', 22, 'foo', 'bar']
     d = pk_list_to_dict(l)
     self.assertEqual(d, {'foo': 'bar', 'id2': 22, 'id': 1})
Пример #14
0
 def test_bad_pk_list_to_dict(self):
     l = ['id', 1, 'id2', 22, 'foo']
     d = pk_list_to_dict(l)
     self.assertEqual(d, None)
Пример #15
0
 def test_pk_list_to_dict(self):
     l = ["id", 1, "id2", 22, "foo", "bar"]
     d = pk_list_to_dict(l)
     self.assertEqual(d, {"foo": "bar", "id2": 22, "id": 1})
Пример #16
0
 def test_bad_pk_list_to_dict(self):
     l = ["id", 1, "id2", 22, "foo"]
     d = pk_list_to_dict(l)
     self.assertEqual(d, None)