def test_duplicate( config, dbsession, get_csrf_request_with_db, company, user, full_expense_sheet, mk_expense_type, ): from autonomie.views.expenses.expense import ExpenseSheetDuplicateView config.add_route('/expenses/{id}', "/{id}") request = get_csrf_request_with_db( post={'month': '10', 'year': '2017', 'submit': 'submit'} ) # https://github.com/CroissanceCommune/autonomie/issues/774 mk_expense_type(label='KM', code='KM', amount=0.184, year=2017) request.context = full_expense_sheet view = ExpenseSheetDuplicateView(request) result = view.__call__() assert result.location != "/{id}".format(id=full_expense_sheet.id) from autonomie.models.expense.sheet import ExpenseSheet id = int(result.location[1:]) new_sheet = ExpenseSheet.get(id) assert new_sheet.month == 10 assert new_sheet.year == 2017 assert new_sheet.company_id == company.id assert new_sheet.user_id == user.id assert len(new_sheet.lines) == len(full_expense_sheet.lines) assert len(new_sheet.kmlines) == len(full_expense_sheet.kmlines)
def duplicate(self): """ Duplicate an expense line to an existing ExpenseSheet """ logger.info(u"Duplicate ExpenseKmLine") sheet_id = self.request.json_body.get('sheet_id') sheet = ExpenseSheet.get(sheet_id) if sheet is None: return RestError(["Wrong sheet_id"]) if not self.request.has_permission('edit.expensesheet'): logger.error(u"Unauthorized action : possible break in attempt") raise HTTPForbidden() new_line = self.context.duplicate(sheet=sheet) if new_line.type_object is None: return RestError([ u"Aucun type de frais kilométriques correspondant n'a pu être " u"retrouvé sur l'année {0}".format(sheet.year) ], code=403) new_line.sheet_id = sheet.id self.request.dbsession.add(new_line) self.request.dbsession.flush() return new_line
def test_duplicate( config, dbsession, get_csrf_request_with_db, company, user, full_expense_sheet, ): from autonomie.views.expenses.expense import ExpenseSheetDuplicateView config.add_route('/expenses/{id}', "/{id}") request = get_csrf_request_with_db(post={ 'month': '10', 'year': '2017', 'submit': 'submit' }) request.context = full_expense_sheet view = ExpenseSheetDuplicateView(request) result = view.__call__() assert result.location != "/{id}".format(id=full_expense_sheet.id) from autonomie.models.expense.sheet import ExpenseSheet id = int(result.location[1:]) new_sheet = ExpenseSheet.get(id) assert new_sheet.month == 10 assert new_sheet.year == 2017 assert new_sheet.company_id == company.id assert new_sheet.user_id == user.id assert len(new_sheet.lines) == len(full_expense_sheet.lines) assert len(new_sheet.kmlines) == len(full_expense_sheet.kmlines)
def duplicate(self): """ Duplicate an expense line to an existing ExpenseSheet """ logger.info(u"Duplicate ExpenseKmLine") sheet_id = self.request.json_body.get('sheet_id') sheet = ExpenseSheet.get(sheet_id) if sheet is None: return RestError(["Wrong sheet_id"]) if not self.request.has_permission('edit.expensesheet'): logger.error(u"Unauthorized action : possible break in attempt") raise HTTPForbidden() new_line = self.context.duplicate(sheet=sheet) if new_line.type_object is None: return RestError([ u"Aucun type de frais kilométriques correspondant n'a pu être " u"retrouvé sur l'année {0}".format(sheet.year) ], code=403) new_line.sheet_id = sheet.id self.request.dbsession.add(new_line) self.request.dbsession.flush() return new_line
def test_duplicate( config, dbsession, get_csrf_request_with_db, company, user, full_expense_sheet, mk_expense_type, ): from autonomie.views.expenses.expense import ExpenseSheetDuplicateView config.add_route('/expenses/{id}', "/{id}") request = get_csrf_request_with_db(post={ 'month': '10', 'year': '2017', 'submit': 'submit' }) # https://github.com/CroissanceCommune/autonomie/issues/774 mk_expense_type(label='KM', code='KM', amount=0.184, year=2017) request.context = full_expense_sheet view = ExpenseSheetDuplicateView(request) result = view.__call__() assert result.location != "/{id}".format(id=full_expense_sheet.id) from autonomie.models.expense.sheet import ExpenseSheet id = int(result.location[1:]) new_sheet = ExpenseSheet.get(id) assert new_sheet.month == 10 assert new_sheet.year == 2017 assert new_sheet.company_id == company.id assert new_sheet.user_id == user.id assert len(new_sheet.lines) == len(full_expense_sheet.lines) assert len(new_sheet.kmlines) == len(full_expense_sheet.kmlines)
def duplicate(self): """ Duplicate an expense line to an existing ExpenseSheet """ logger.info(u"Duplicate ExpenseLine") sheet_id = self.request.json_body.get('sheet_id') sheet = ExpenseSheet.get(sheet_id) if sheet is None: return RestError(["Wrong sheet_id"]) if not self.request.has_permission('edit.expensesheet'): logger.error(u"Unauthorized action : possible break in attempt") raise HTTPForbidden() new_line = self.context.duplicate(sheet=sheet) new_line.sheet_id = sheet.id self.request.dbsession.add(new_line) self.request.dbsession.flush() return new_line
def duplicate(self): """ Duplicate an expense line to an existing ExpenseSheet """ logger.info(u"Duplicate ExpenseLine") sheet_id = self.request.json_body.get('sheet_id') sheet = ExpenseSheet.get(sheet_id) if sheet is None: return RestError(["Wrong sheet_id"]) if not self.request.has_permission('edit.expensesheet'): logger.error(u"Unauthorized action : possible break in attempt") raise HTTPForbidden() new_line = self.context.duplicate(sheet=sheet) new_line.sheet_id = sheet.id self.request.dbsession.add(new_line) self.request.dbsession.flush() return new_line