def test_rename_simple(self): self.assertEqual(renameKey({"$ref": "a"}, "$ref", "__$ref"), {"__$ref": "a"}) self.assertEqual( renameKey({"items": [{ "$ref": "a" }]}, "$ref", "__$ref"), {"items": [{ "__$ref": "a" }]})
def form_render(formId): """Render single form.""" form = None try: form = Form.objects.only("name", "schema", "uiSchema", "formOptions", "cff_permissions").get( {"_id": ObjectId(formId)}) # Convert __$ref back to $ref. if form.schema: form.schema = renameKey(form.schema, "__$ref", "$ref") except DoesNotExist: raise NotFoundError(f"Form ID not found: {formId}") return {"res": serialize_model(form)}
def form_edit(formId): from ..main import app form = Form.objects.get({"_id": ObjectId(formId)}) app.check_permissions(form, 'Forms_Edit') body = pick(app.current_request.json_body, ["schema", "uiSchema", "formOptions", "name"]) for k, v in body.items(): setattr(form, k, v) # Validate $ref properly. if form.schema: form.schema = renameKey(form.schema, "$ref", "__$ref") form.save() form = Form.objects.get({"_id": ObjectId(formId)}) return {"res": {"success": True, "updated_values": serialize_model(form)}}
def form_edit(formId): from ..main import app form = Form.objects.get({"_id": ObjectId(formId)}) app.check_permissions(form, "Forms_Edit") body = pick( app.current_request.json_body, ["schema", "uiSchema", "formOptions", "name", "tags"], ) for k, v in body.items(): setattr(form, k, v) # Rename $ref properly. if form.schema: form.schema = renameKey(form.schema, "$ref", "__$ref") if (form.formOptions and form.formOptions.dataOptions and "views" in form.formOptions.dataOptions): form.formOptions.dataOptions["views"] = replaceKey( replaceKey(form.formOptions.dataOptions["views"], "$", "|"), ".", "||") form.save() form = Form.objects.get({"_id": ObjectId(formId)}) return {"res": {"success": True, "updated_values": serialize_model(form)}}
def test_replace_dict_in_list(self): orig = [{"a": [{"b": [{"$ref": {"_id": None, "n": {"$ref": 1}}}]}]}] new = [{"a": [{"b": [{"__$ref": {"_id": None, "n": {"__$ref": 1}}}]}]}] self.assertEqual(renameKey(orig, "$ref", "__$ref"), new)