def get_schema(self, submitted): if 'formid' in submitted: if submitted['formid'] == 'company': schema = get_company_customer_schema() else: schema = get_individual_customer_schema() else: excludes = ('company_id',) schema = SQLAlchemySchemaNode(Customer, excludes=excludes) return schema
def schema(self): """ The getter for our schema property """ if self._schema is None: if self.is_company_form(): self._schema = get_company_customer_schema() else: self._schema = get_individual_customer_schema() return self._schema
def get_schema(self, submitted): if 'formid' in submitted: if submitted['formid'] == 'company': schema = get_company_customer_schema() else: schema = get_individual_customer_schema() else: excludes = ('company_id', ) schema = get_add_edit_customer_schema(excludes=excludes) return schema
def get_individual_customer_form(request, counter=None): """ Return a form for an individual customer :param obj request: Pyramid's request object :param obj counter: An iterator for field number generation :returns: a deform.Form instance """ schema = get_individual_customer_schema() schema = schema.bind(request=request) form = Form(schema, buttons=(submit_btn, ), counter=counter, formid='individual') form.widget = GridFormWidget(named_grid=INDIVIDUAL_FORM_GRID) return form
def test_individual_customer_schema(): from autonomie.forms.customer import get_individual_customer_schema schema = get_individual_customer_schema() args = { "civilite": "M. et Mme", "address": u"1 rue Victor Hugo", "lastname": "Lastname", "zip_code": "21000", "city": u"Paris", } result = schema.deserialize(args) assert result['lastname'] == u'Lastname' # mandatory fields for field in ('lastname', 'civilite'): wrong = args.copy() wrong.pop(field) with pytest.raises(colander.Invalid): schema.deserialize(wrong)