def delete(self): result = {} for id in request.params.getall('id'): try: item = self.dbFacade().balances.changeDao.find_by_uid(id, options=[eagerload('balance'), eagerload('transfer')]) if item is None: result[id] = { "deleted" : False, "message": Messages.elementNotFound(key=id) } continue if not item.balance or not item.balance.can_modify_balance(h.authenticated_user().uid) \ or (item.transfer and not item.transfer.balance) \ or (item.transfer and not item.transfer.balance.can_modify_balance(h.authenticated_user().uid)): result[id] = { "deleted" : False, "message": Messages.permissionDenied() } continue if item.transfer: self.dbFacade().db.delete(item.transfer) self.dbFacade().db.delete(item) self.dbFacade().db.commit() result[id] = { "deleted" : True } except Exception, e: result[id] = { "deleted" : False, "message" : Messages.failedToDelete(exception=e), }
def delete(self): db = self.get_sa_session() model = self.get_sa_model() result = {} for id in request.params.getall('id'): try: item = db.query(model.ChangeCategory).filter_by(uid=id).one() except InvalidRequestError: result[id] = { "deleted" : False, "message": Messages.elementNotFound(key=id) } continue if (db.query(model.BalanceChange).filter_by(change_category_uid=item.uid).count() > 0): result[item.uid] = { "deleted" : False, "message" : Messages.changeCategoryInUse(id=item.uid) } else: try: db.delete(item) db.commit() result[item.uid] = { "deleted" : True, } except Exception, e: result[item.uid] = { "deleted" : False, "message" : Messages.failedToDelete(exception=e), }
def delete(self, balance_uid): model = request.environ['sqlalchemy.model'] db = request.environ['sqlalchemy.session'] if not Operations(db, model).can_modify_balance(h.authenticated_user().uid, balance_uid): return { "failure": Messages.permissionDenied() } result = {} for id in request.params.getall('id'): try: item = db.query(model.BalanceChange).filter_by(uid=id).filter_by(balance_uid=balance_uid).one() except InvalidRequestError: result[id] = { "deleted" : False, "message": Messages.elementNotFound(key=id) } continue else: try: Operations(db, model).delete_balance_change(item) result[item.uid] = { "deleted" : True, } except Exception, e: result[item.uid] = { "deleted" : False, "message" : Messages.failedToDelete(exception=e), }
def delete(self): dbFacade = self.dbFacade() result = {} for id in request.params.getall('id'): try: item = dbFacade.balances.balanceDao.find_by_uid(id) if not item or not item.can_modify_balance(h.authenticated_user().uid): result[id] = { "deleted": False, "message": Messages.permissionDenied() } continue except InvalidRequestError: result[id] = { "deleted" : False, "message": Messages.elementNotFound(key=id) } continue try: dbFacade.db.delete(item) dbFacade.db.commit() result[item.uid] = { "deleted" : True, } except Exception, e: result[item.uid] = { "deleted" : False, "message" : Messages.failedToDelete(exception=e) }
def delete(self): model = request.environ["sqlalchemy.model"] db = request.environ["sqlalchemy.session"] result = {} for id in request.params.getall('id'): try: item = db.query(model.IncomeCategory).filter_by(uid=id).one() except InvalidRequestError: result[id] = { "deleted" : False, "message": Messages.elementNotFound(key=id) } continue if (db.query(model.BalanceChange).filter_by(income_category_uid=item.uid).count() > 0): result[item.uid] = { "deleted" : False, "message" : Messages.incomeCategoryIsInUse(id=item.uid) } else: try: db.delete(item) db.commit() result[item.uid] = { "deleted" : True, } except Exception, e: result[item.uid] = { "deleted" : False, "message" : Messages.failedToDelete(exception=e) }
def delete(self): model = self.get_sa_model() db = self.get_sa_session() result = {} for id in request.params.getall('id'): try: if not Operations(db, model).can_modify_balance(h.authenticated_user().uid, id): result[id] = { "deleted": False, "message": Messages.permissionDenied() } continue item = db.query(model.Balance).filter_by(uid=id).one() except InvalidRequestError: result[id] = { "deleted" : False, "message": Messages.elementNotFound(key=id) } continue try: db.delete(item) db.commit() result[item.uid] = { "deleted" : True, } except Exception, e: result[item.uid] = { "deleted" : False, "message" : Messages.failedToDelete(exception=e) }
def category(self): dbFacade = self.dbFacade() result = {} category = dbFacade.balances.categoryDao.find_by_name(request.params.get('category')) if category is None: return { "failure": Messages.invalidArguments() } for id in request.params.getall('id'): try: item = dbFacade.balances.changeDao.find_by_uid(id, options=[eagerload('balance')]) if item is None: result[id] = { "deleted" : False, "message": Messages.elementNotFound(key=id) } continue if not item.balance or not item.balance.can_modify_balance(h.authenticated_user().uid): result[id] = { "deleted" : False, "message": Messages.permissionDenied() } continue item.category = category.name dbFacade.db.commit() result[id] = { "modified" : True } except Exception, e: result[id] = { "deleted" : False, "message" : Messages.failedToDelete(exception=e), }
def delete(self): result = {} try: category_name = request.params.get('name') category_tc = self.dbFacade().balances.categoryDao.find_by_name(category_name, h.authenticated_user().uid) if category_tc is None: return { "failure" : Messages.elementNotFound(key=category_name) } parent = self.dbFacade().balances.categoryDao.find_by_key(category_tc.parent, h.authenticated_user().uid) self.dbFacade().db.delete(category_tc) self._change_changes_category(category_name, parent.name) self.dbFacade().db.commit() except Exception, e: return { "failure" : Messages.failedToDelete(exception=e) }
def delete(self): dbFacade = self.dbFacade() result = {} for id in request.params.getall('id'): item = dbFacade.stocks.changeDao.find_by_uid(id) if item is None: result[id] = { "deleted" : False, "message": Messages.elementNotFound(key=id) } continue try: dbFacade.db.delete(item) dbFacade.db.commit() result[item.uid] = { "deleted" : True, } except Exception, e: result[item.uid] = { "deleted" : False, "message" : Messages.failedToDelete(exception=e) }
def edit(self): category_tc = self.dbFacade().balances.categoryDao.find_by_name(request.params.get('old_name'), h.authenticated_user().uid) if category_tc is None: return { "failure" : Messages.elementNotFound(key=request.params.get('old_name')) } return self._edit_category(category_tc, False)
def test_category_manage(self): existing_balance_url = url_for(controller='rest/balance_changes', action='list') response = self.app.get(existing_balance_url) self.assertEquals(200, response.status) signin_form = response.forms.get('login_form') self.failUnless(signin_form) signin_form.set('username', 'disorder@3sk8tm') signin_form.set('password', 'd0n0tch@nge') response = signin_form.submit() self.assertEquals(200, response.status) category_name = 'Test1' self.failIf(self.__in_categories(category_name)) """ Add new category - Test1 """ existing_balance_url = url_for(controller='rest/balance_categories', action='add', name=category_name, parent='Dom') response = self.app.post(existing_balance_url) self.assertEquals(200, response.status) self.assertEquals('application/x-javascript', response.header('Content-Type')) result = json.loads(response.body) self.failIf(result is None) status = result.get('id') self.failIf(status is None) """ Add category again - Test1 should be failure""" existing_balance_url = url_for(controller='rest/balance_categories', action='add', name=category_name, parent='Dom') response = self.app.post(existing_balance_url) self.assertEquals(200, response.status) self.assertEquals('application/x-javascript', response.header('Content-Type')) result = json.loads(response.body) self.failIf(result is None) status = result.get('failure') self.assertEquals(status, Messages.categoryAlreadyExists(name=category_name)) self.assertEquals(self.__in_categories(category_name), True) """ Edit category name """ category_name_edit = 'Test2' existing_balance_url = url_for(controller='rest/balance_categories', action='edit', name=category_name_edit, old_name = category_name, parent='Dom') response = self.app.post(existing_balance_url) self.assertEquals(200, response.status) self.assertEquals('application/x-javascript', response.header('Content-Type')) result = json.loads(response.body) self.failIf(result is None) status = result.get('id') self.failIf(status is None) """ Edit category name again - should be error""" category_name_edit = 'Test2' existing_balance_url = url_for(controller='rest/balance_categories', action='edit', name=category_name_edit, old_name = category_name, parent='Dom') response = self.app.post(existing_balance_url) self.assertEquals(200, response.status) self.assertEquals('application/x-javascript', response.header('Content-Type')) result = json.loads(response.body) self.failIf(result is None) status = result.get('failure') self.assertEquals(status, Messages.elementNotFound(key=category_name)) """ Delete category Test 2 """ existing_balance_url = url_for(controller='rest/balance_categories', action='delete', name=category_name_edit, ) response = self.app.post(existing_balance_url) self.assertEquals(200, response.status) self.assertEquals('application/x-javascript', response.header('Content-Type')) result = json.loads(response.body) self.failIf(result is None) status = result.get('failure') self.assertEquals(status, None) self.failIf(self.__in_categories(category_name_edit)) """ Delete category Test 1 - Fail """ existing_balance_url = url_for(controller='rest/balance_categories', action='delete', name=category_name, ) response = self.app.post(existing_balance_url) self.assertEquals(200, response.status) self.assertEquals('application/x-javascript', response.header('Content-Type')) result = json.loads(response.body) self.failIf(result is None) status = result.get('failure') self.assertEquals(status, Messages.elementNotFound(key=category_name)) self.failIf(self.__in_categories(category_name))