def get_schema(self, submitted): """ Return the schema for Invoice add/edition :param dict submitted: The submitted datas :returns: A colander.Schema """ excludes = ('status', 'children', 'parent',) return get_add_edit_invoice_schema(excludes=excludes)
class InvoiceAdminView(BaseEditView): """ Vue pour l'administration de factures /invoices/id/admin Vue accessible aux utilisateurs admin """ factory = Invoice schema = get_add_edit_invoice_schema( title=u"Formulaire d'édition forcée de devis/factures/avoirs", help_msg=u"Les montants sont *10^5 10 000==1€", )
class InvoiceSetTreasuryiew(BaseEditView): """ View used to set treasury related informations context An invoice perms set_treasury.invoice """ factory = Invoice schema = get_add_edit_invoice_schema( includes=('financial_year', ), title=u"Modifier l'année fiscale de référence du numéro de facture", ) def redirect(self): return HTTPFound( self.request.route_path("/invoices/{id}.html", id=self.context.id, _anchor="treasury")) def before(self, form): BaseEditView.before(self, form) self.request.actionmenu.add( ViewLink( label=u"Revenir à la facture", path="/invoices/{id}.html", id=self.context.id, _anchor="treasury", )) @property def title(self): return u"Facture numéro {0} en date du {1}".format( self.context.official_number, format_date(self.context.date), )
def test_invoice(config, invoice, request_with_config, tva, unity): schema = get_add_edit_invoice_schema() request_with_config.context = invoice config.testing_securitypolicy( userid="test", groupids=('admin',), permissive=True ) schema = schema.bind(request=request_with_config) value = { "name": u"Facture 1", 'date': datetime.date.today().isoformat(), 'address': u"adress", "description": u"description", "payment_conditions": u"Test", 'estimation_id': 5, 'financial_year': 2017, 'line_groups': [ { 'task_id': 5, 'title': u"title", 'description': u"description", "order": 5, 'lines': [ { 'cost': 15, 'tva': 20, 'description': u'description', 'unity': u"Mètre", "quantity": 5, "order": 2, } ] } ], } expected_value = { "name": u"Facture 1", 'date': datetime.date.today(), 'address': u"adress", "description": u"description", "payment_conditions": u"Test", 'estimation_id': 5, 'financial_year': 2017, 'line_groups': [ { 'task_id': 5, 'title': u"title", 'description': u"description", "order": 5, 'lines': [ { 'cost': 1500000, 'tva': 2000, 'description': u'description', 'unity': u"Mètre", "quantity": 5.0, "order": 2, } ] } ], } # Check those values are valid result = schema.deserialize(value) for key, value in expected_value.items(): assert result[key] == value