def _remove_obsolete_irs(comms, record): """Remove obsolete inclusion requests. :param comms: Community IDs as declared in deposit. Used to remove obsolete inclusion requests. :type comms: list of str :param record: Record corresponding to this deposit. :type record: `invenio_records.api.Record` """ InclusionRequest.get_by_record(record.id).filter( InclusionRequest.id_community.notin_(comms)).delete( synchronize_session='fetch')
def _remove_obsolete_irs(comms, record): """Remove obsolete inclusion requests. :param comms: Community IDs as declared in deposit. Used to remove obsolete inclusion requests. :type comms: list of str :param record: Record corresponding to this deposit. :type record: `invenio_records.api.Record` """ InclusionRequest.get_by_record(record.id).filter( InclusionRequest.id_community.notin_(comms)).delete( synchronize_session='fetch')
def _prepare_edit(self, record): """Prepare deposit for editing. Extend the deposit's communities metadata by the pending inclusion requests. """ data = super(ZenodoDeposit, self)._prepare_edit(record) data.setdefault('communities', []).extend( [c.id_community for c in InclusionRequest.get_by_record(record.id)]) data['communities'] = sorted(list(set(data['communities']))) # Remove the OpenAIRE subtype if the record is no longer pending, # nor in the relevant community oa_type = data['resource_type'].get('openaire_subtype') if oa_type and not is_valid_openaire_type(data['resource_type'], data['communities']): del data['resource_type']['openaire_subtype'] if not data['communities']: del data['communities'] # If non-Zenodo DOI unlock the bucket to allow file-editing if not is_doi_locally_managed(data['doi']): self.files.bucket.locked = False return data
def _prepare_edit(self, record): """Prepare deposit for editing. Extend the deposit's communities metadata by the pending inclusion requests. """ data = super(ZenodoDeposit, self)._prepare_edit(record) data.setdefault('communities', []).extend( [c.id_community for c in InclusionRequest.get_by_record(record.id)]) data['communities'] = sorted(list(set(data['communities']))) if not data['communities']: del data['communities'] return data
def _prepare_edit(self, record): """Prepare deposit for editing. Extend the deposit's communities metadata by the pending inclusion requests. """ data = super(ZenodoDeposit, self)._prepare_edit(record) data.setdefault('communities', []).extend([ c.id_community for c in InclusionRequest.get_by_record(record.id) ]) data['communities'] = sorted(list(set(data['communities']))) if not data['communities']: del data['communities'] return data
def _prepare_edit(self, record): """Prepare deposit for editing. Extend the deposit's communities metadata by the pending inclusion requests. """ data = super(ZenodoDeposit, self)._prepare_edit(record) data.setdefault('communities', []).extend( [c.id_community for c in InclusionRequest.get_by_record(record.id)]) data['communities'] = sorted(list(set(data['communities']))) # Remove the OpenAIRE subtype if the record is no longer pending, # nor in the relevant community oa_type = data['resource_type'].get('openaire_subtype') if oa_type and not is_valid_openaire_type(data['resource_type'], data['communities']): del data['resource_type']['openaire_subtype'] if not data['communities']: del data['communities'] return data