def add_saved_input_to_ignored_fields(site): config = IConfig(site) ignored_fields = config.get_ignored_fields() if 'FormSaveDataAdapter' in ignored_fields.keys(): if 'SavedFormInput' not in ignored_fields['FormSaveDataAdapter']: ignored_fields['FormSaveDataAdapter'].append('SavedFormInput') else: ignored_fields['FormSaveDataAdapter'] = ['SavedFormInput', ] config.set_ignored_fields(ignored_fields)
def add_saved_input_to_ignored_fields(site): config = IConfig(site) ignored_fields = config.get_ignored_fields() if 'FormSaveDataAdapter' in ignored_fields.keys(): if 'SavedFormInput' not in ignored_fields['FormSaveDataAdapter']: ignored_fields['FormSaveDataAdapter'].append('SavedFormInput') else: ignored_fields['FormSaveDataAdapter'] = [ 'SavedFormInput', ] config.set_ignored_fields(ignored_fields)
def __call__(self, object, action): """ Extracts the required data (action dependent) from a object for creating a Job. @param object: Plone Object to export data from @param action: Action to perform [push|delete] @type action: string @return: data (json "encoded") @rtype: string """ self.object = object self.is_root = IPloneSiteRoot.providedBy(self.object) data = {} if action not in ["delete", "move"]: adapters = sorted(getAdapters((self.object,), IDataCollector)) for name, adapter in adapters: data[name] = adapter.getData() # gets the metadata, we dont use an adapter in this case, # cause metdata is the most important data-set we need data["metadata"] = self.getMetadata(action) # remove ignored fields portal = self.object.portal_url.getPortalObject() config = IConfig(portal) ignore = config.get_ignored_fields() for ptype, fields in ignore.items(): if data["metadata"]["portal_type"] == ptype: for field in fields: if "field_data_adapter" in data and field in data["field_data_adapter"]: del data["field_data_adapter"][field] if action == "move": # read out data from event_information attr move_data = getattr(self.object, "event_information", None) # make data convertable and shrink amount of data # (replace objects by path) del move_data["object"] portal_path = "/".join(self.object.portal_url.getPortalObject().getPhysicalPath()) new_parent_path = "/".join(move_data["newParent"].getPhysicalPath()) new_parent_rpath = new_parent_path[len(portal_path) :] move_data["newParent"] = new_parent_rpath old_parent_path = "/".join(move_data["oldParent"].getPhysicalPath()) old_parent_rpath = old_parent_path[len(portal_path) :] move_data["oldParent"] = old_parent_rpath move_data["newTitle"] = self.object.Title().decode("utf-8") data["move"] = move_data # finally remove event_information from object delattr(self.object, "event_information") # convert to json jsondata = self.convertToJson(data) return jsondata
def __call__(self, object, action, additional_data): """ Extracts the required data (action dependent) from a object for creating a Job. @param object: Plone Object to export data from @param action: Action to perform [push|delete] @type action: string @param additional_data: Additional infos. @type additional_data: dict @return: data (json "encoded") @rtype: string """ self.object = object self.is_root = IPloneSiteRoot.providedBy(self.object) data = {} if action not in ['delete', 'move']: adapters = sorted(getAdapters((self.object, ), IDataCollector)) for name, adapter in adapters: data[name] = adapter.getData() # gets the metadata, we dont use an adapter in this case, # cause metdata is the most important data-set we need data['metadata'] = self.getMetadata(action) # remove ignored fields portal = self.object.portal_url.getPortalObject() config = IConfig(portal) ignore = config.get_ignored_fields() for field_to_ignore in ignore.get(data['metadata']['portal_type'], ()): # AT: data.get('field_data_adapter', {}).pop(field_to_ignore, None) # DX: for schemata in data.get('dx_field_data_adapter', {}).values(): schemata.pop(field_to_ignore, None) if action == 'move': data['move'] = additional_data['move_data'] # convert to json jsondata = self.convertToJson(data) return jsondata
def __call__(self, object, action, additional_data): """ Extracts the required data (action dependent) from a object for creating a Job. @param object: Plone Object to export data from @param action: Action to perform [push|delete] @type action: string @param additional_data: Additional infos. @type additional_data: dict @return: data (json "encoded") @rtype: string """ self.object = object self.is_root = IPloneSiteRoot.providedBy(self.object) data = {} if action not in ['delete', 'move']: adapters = sorted(getAdapters((self.object, ), IDataCollector)) for name, adapter in adapters: data[name] = adapter.getData() # gets the metadata, we dont use an adapter in this case, # cause metdata is the most important data-set we need data['metadata'] = self.getMetadata(action) # remove ignored fields portal = self.object.portal_url.getPortalObject() config = IConfig(portal) ignore = config.get_ignored_fields() for field_to_ignore in ignore.get(data['metadata']['portal_type'], ()): # AT: data.get('field_data_adapter', {}).pop(field_to_ignore, None) # DX: for schemata in data.get('dx_field_data_adapter', {}).values(): schemata.pop(field_to_ignore, None) if action == 'move': data['move'] = additional_data['move_data'] # convert to json jsondata = self.convertToJson(data) return jsondata