def _process(self): field_data = snakify_keys(request.json['fieldData']) form_field = RegistrationFormField(parent_id=self.section.id, registration_form=self.regform) _fill_form_field_with_data(form_field, field_data) db.session.add(form_field) db.session.flush() return jsonify(view_data=form_field.view_data)
def _process(self): field_data = snakify_keys(request.json['fieldData']) del field_data['input_type'] form_field = RegistrationFormText(parent_id=self.section.id, registration_form=self.regform) _fill_form_field_with_data(form_field, field_data, set_data=False) db.session.add(form_field) db.session.flush() return jsonify(view_data=form_field.view_data)
def _process_PATCH(self): field_data = snakify_keys(request.json['fieldData']) if (self.field.type == RegistrationFormItemType.field_pd and self.field.personal_data_type.is_required and not field_data['is_required']): raise BadRequest elif self.field.input_type != field_data['input_type']: raise BadRequest _fill_form_field_with_data(self.field, field_data) return jsonify(view_data=self.field.view_data)
def _stay_dates_valid(form, field): if not field.data: return data = snakify_keys(field.data) if not data.get('is_no_accommodation'): try: arrival_date = data['arrival_date'] departure_date = data['departure_date'] except KeyError: raise ValidationError( _("Arrival/departure date is missing")) if _to_date(arrival_date) > _to_date(departure_date): raise ValidationError( _("Arrival date can't be set after the departure date." ))
def _check_number_of_places(form, field): if not field.data: return if form.modified_registration: old_data = form.modified_registration.data_by_field.get( self.form_item.id) if not old_data or not self.has_data_changed( snakify_keys(field.data), old_data): return item = next((x for x in self.form_item.versioned_data['choices'] if x['id'] == field.data['choice']), None) captions = self.form_item.data['captions'] places_used_dict = self.get_places_used() if (item and item['places_limit'] and (item['places_limit'] < places_used_dict.get( field.data['choice'], 0))): raise ValidationError( _("Not enough rooms in '{0}'").format( captions[item['id']]))
def test_snakify_keys(): d = { 'sn_case': 2, 'shouldBeSnakeCase': 3, 'snake': 4, 'snake-case': 5, 'inner': { 'innerDict': 2 } } orig = d.copy() d2 = snakify_keys(d) assert d == orig assert d2 == { 'sn_case': 2, 'should_be_snake_case': 3, 'snake': 4, 'snake-case': 5, 'inner': { 'inner_dict': 2 } }
def _process_PATCH(self): field_data = snakify_keys(request.json['fieldData']) del field_data['input_type'] _fill_form_field_with_data(self.field, field_data, set_data=False) return jsonify(view_data=self.field.view_data)