def ajax_get(self, uid, *args, **kwargs): """Return the JSONified data from the wrapped object Any additional positional parameter in *args will pick only these keys from the returned dictionary. """ logger.info("ajaxPrintView::ajax_get: {}{}".format( uid, "/".join(args))) model = SuperModel(uid) if not model.is_valid(): return self.fail("No object found for UID '{}'".format(uid), status=404) if args: return self.pick(model, *args) return model.to_dict()
def get_object_data(obj): """Get object schema data NOTE: We RAM cache this data because it should only change when the object was modified! XXX: We need to set at least the modification date when we set fields in Ajax Listing when we take a snapshot there! :param obj: Content object :returns: Dictionary of extracted schema data """ model = SuperModel(obj) try: data = model.to_dict() except Exception as exc: logger.error("Failed to get schema data for {}: {}".format( repr(obj), str(exc))) data = {} return data