def deposit_edit(draft=None, pid_value=None): """Edit an existing deposit.""" # TODO: should be embedded in record service files_service = RDMDraftFilesService() files_list = files_service.list_files( id_=pid_value, identity=g.identity, links_config=RDMDraftFilesResourceConfig.links_config, ) serializer = UIJSONSerializer() record = serializer.serialize_object_to_dict(draft.to_dict()) # TODO: get the `is_published` field when reading the draft from invenio_pidstore.errors import PIDUnregistered try: service().draft_cls.pid.resolve(pid_value, registered_only=True) record["is_published"] = True except PIDUnregistered: record["is_published"] = False return render_template( "invenio_app_rdm/records/deposit.html", forms_config=get_form_config(apiUrl=f"/api/records/{pid_value}/draft"), record=record, files=files_list.to_dict(), searchbar_config=dict(searchUrl=get_search_url()), )
def deposit_edit(draft=None, draft_files=None, pid_value=None): """Edit an existing deposit.""" serializer = UIJSONSerializer() record = serializer.serialize_object_to_dict(draft.to_dict()) return render_template( "invenio_app_rdm/records/deposit.html", forms_config=get_form_config(apiUrl=f"/api/records/{pid_value}/draft"), record=record, files=draft_files.to_dict(), searchbar_config=dict(searchUrl=get_search_url()), permissions=draft.has_permissions_to(['new_version']))
def deposit_edit(draft=None, pid_value=None): """Edit an existing deposit.""" files_list = current_rdm_records.draft_files_service.list_files( id_=pid_value, identity=g.identity, links_config=RDMDraftFilesResourceConfig.links_config, ) serializer = UIJSONSerializer() record = serializer.serialize_object_to_dict(draft.to_dict()) return render_template( "invenio_app_rdm/records/deposit.html", forms_config=get_form_config(apiUrl=f"/api/records/{pid_value}/draft"), record=record, files=files_list.to_dict(), searchbar_config=dict(searchUrl=get_search_url()), permissions=draft.has_permissions_to(['new_version']))
def deposits_edit(pid_value): """Deposit edit page.""" links_config = RDMDraftResourceConfig.links_config draft = service.read_draft(id_=pid_value, identity=g.identity, links_config=links_config) files_service = RDMDraftFilesService() files_list = files_service.list_files( id_=pid_value, identity=g.identity, links_config=RDMDraftFilesResourceConfig.links_config) forms_config = dict(apiUrl=f"/api/records/{pid_value}/draft", vocabularies=Vocabularies.dump(), current_locale=str(current_i18n.locale)) # Dereference relations (languages, licenses, etc.) draft._record.relations.dereference() serializer = UIJSONSerializer() record = serializer.serialize_object_to_dict(draft.to_dict()) # TODO: get the `is_published` field when reading the draft from invenio_pidstore.errors import PIDUnregistered try: service.draft_cls.pid.resolve(pid_value, registered_only=True) record["is_published"] = True except PIDUnregistered: record["is_published"] = False return render_template( current_app.config['DEPOSITS_FORMS_BASE_TEMPLATE'], forms_config=forms_config, record=record, files=files_list.to_dict(), searchbar_config=dict(searchUrl=search_url))
def serialize_ui(record): """Returns the UI serialization of a record.""" serializer = UIJSONSerializer() # We need a dict not a string return serializer.serialize_object_to_dict(record)