Compare commits

...

32 Commits

Author SHA1 Message Date
Mojib Wali
c4f80c42a1 v2.0.5 2021-04-01 10:43:40 +02:00
Unix
4698c797b2 bugfix: adds datacite host url 2021-04-01 10:43:13 +02:00
Unix
0e5f08768d bugfix: password should b unicode
else: request Error UnicodeEncodeError
2021-04-01 10:43:13 +02:00
Mojib Wali
e4d38632a9 v2.0.4 2021-03-31 17:07:16 +02:00
Unix
4fa0e2851f doimint: removes link to doi.org 2021-03-31 17:02:40 +02:00
Mojib Wali
2c10cc885d v2.0.3 2021-03-31 15:08:32 +02:00
Mojib Wali
f993fda3f6 bugfix: space requires before next query 2021-03-31 15:07:48 +02:00
Mojib Wali
ecacf0ba59 v2.0.2 2021-03-31 09:51:54 +02:00
Unix
592d59e54d depositform: disable field languages 2021-03-31 08:53:44 +02:00
Mojib Wali
f40fb37ec4 v2.0.1 2021-03-29 11:20:47 +02:00
Unix
44e4b01332 bugfix: hyperlink no-decoration 2021-03-29 10:42:40 +02:00
Mojib Wali
97feb284cf v2.0.0 2021-03-29 10:07:03 +02:00
Unix
20fc3e62be bugfix: recent uploads filter only latest version 2021-03-29 09:46:16 +02:00
Mojib Wali
530d32d7c7 migrate: to invenio-app-rdm:v2 2021-03-29 09:41:35 +02:00
Mojib Wali
b27d54b6f0 v1.9.6 2021-03-23 11:43:52 +01:00
Mojib Wali
f81ca88835 footer: adds documentation link
* footer: adds documentation link

* landingpage: disable jump btn
2021-03-23 11:40:47 +01:00
Mojib Wali
39c19238dd v1.9.5 2021-03-19 14:40:29 +01:00
Mojib Wali
3f14a3ada4 PublisherField: makes field required
* Publisher: makes field required
* publisherField: change in helptext
2021-03-19 14:39:29 +01:00
Mojib Wali
0a5a78312e v1.9.4 2021-03-19 12:56:27 +01:00
Mojib Wali
0cc1635e3a bugfix: translation order for tug logo (#176) 2021-03-19 12:54:35 +01:00
Mojib Wali
0f8ebffaa2 Translations: updated 2021-03-19 11:14:16 +01:00
Unix
0e2c1a0f60 style: login form 2021-03-19 09:55:49 +01:00
Mojib Wali
4d902f014b v1.9.3 2021-03-18 08:28:20 +01:00
Mojib Wali
ea54a17c43 bugfix: adds check for scheme 'doi' 2021-03-17 17:11:00 +01:00
Mojib Wali
db01116eeb v1.9.2 2021-03-17 10:32:11 +01:00
Mojib Wali
ea92a2f563 dep: adds invenio_config_tugraz 2021-03-17 10:27:55 +01:00
Mojib Wali
a4558e02bf doimint: adds suffix config 2021-03-17 10:15:30 +01:00
Mojib Wali
c87e65d89f dep: bump in webpack 2021-03-17 09:40:05 +01:00
Mojib Wali
6360bcab7b doimint: adds positive message on doi register 2021-03-16 12:53:47 +01:00
Mojib Wali
95710c440e depositform: get doi from backend 2021-03-16 09:55:59 +01:00
David Eckhard
063ddc985a refactor: remove unused files 2021-03-16 08:37:04 +01:00
David Eckhard
6cb248644b feature: add doi retrieve endpoint 2021-03-16 08:37:04 +01:00
25 changed files with 430 additions and 379 deletions

View File

@@ -10,7 +10,7 @@ import {
} from "semantic-ui-react"; } from "semantic-ui-react";
import { FieldArray } from "formik"; import { FieldArray } from "formik";
import { DoiRest, MapDatacite } from "datacite-rest"; import { FetchDoi, MapDatacite } from "datacite-rest";
export class DoiMint extends Component { export class DoiMint extends Component {
constructor(props) { constructor(props) {
@@ -29,8 +29,12 @@ export class DoiMint extends Component {
this.metadata.identifiers.length > 0 && this.metadata.identifiers.length > 0 &&
this.metadata.identifiers[0] != null this.metadata.identifiers[0] != null
) { ) {
for(var identifier of this.metadata.identifiers){
if (identifier.scheme == "doi"){
this.is_doi = true; this.is_doi = true;
this.id_doi = this.metadata.identifiers[0].identifier; this.id_doi = identifier.identifier;
}
}
} }
// add metadata to the state // add metadata to the state
@@ -51,21 +55,20 @@ export class DoiMint extends Component {
showLoader: true, showLoader: true,
}); });
const url = this.configs.datacite_url; // get the prefix from backend
const auth = {
username: this.configs.datacite_uname,
password: this.configs.datacite_pass,
};
const prefix = this.configs.datacite_prefix; const prefix = this.configs.datacite_prefix;
const suffix = this.configs.datacite_suffix;
const host_url = this.configs.datacite_host_url
if (prefix !== null && suffix !== null) {
// get mapped DOI // get mapped DOI
const mapped = MapDatacite(this.metadata, this.record.id, prefix); const mapped = MapDatacite(this.metadata, this.record.id, prefix, suffix, host_url);
const _doirest = new DoiRest(url); const _fetchdoi = new FetchDoi("/getdoi");
// Create a new DOI // Create a new DOI
_doirest _fetchdoi
.create(mapped, auth, this.configs.datacite_password_iv) .create(mapped)
.then((data) => { .then((data) => {
// if there is an error // if there is an error
if (data.data.errors) { if (data.data.errors) {
@@ -74,26 +77,22 @@ export class DoiMint extends Component {
isError: true, isError: true,
errorMsg: data.data.errors[0].title, errorMsg: data.data.errors[0].title,
}); });
// if credentials are wrong!
} else if (data.code == 405) {
this.setState({
showLoader: false,
isError: true,
errorMsg: "Not configured!",
});
} }
// new doi is fetched // new doi is fetched
else { else {
// add new identifier // add new identifier
const _identifiers = [ const _identifiers = [
{ {
identifier: data.data.data.id, identifier: data.data.data.data.id,
scheme: "doi", scheme: "doi",
}, },
]; ];
// submit the value to the form // submit the value to the form
this.setState({ identifiers: _identifiers }); this.setState({ identifiers: _identifiers });
form.setFieldValue("metadata.identifiers", this.state.identifiers); form.setFieldValue(
"metadata.identifiers",
this.state.identifiers
);
this.is_doi = true; this.is_doi = true;
// deactivate the loader // deactivate the loader
@@ -106,12 +105,19 @@ export class DoiMint extends Component {
.catch((error) => { .catch((error) => {
console.log("error", error); console.log("error", error);
}); });
} else {
this.setState({
showLoader: false,
isError: true,
errorMsg: "Not configured!",
});
}
}; };
// get a link of dio // // get a link of dio
var doiLink = (doiId) => { // var doiLink = (doiId) => {
window.open(`https://doi.org/${doiId}`, "_blank"); // window.open(`https://doi.org/${doiId}`, "_blank");
}; // };
return ( return (
<Card className="actions"> <Card className="actions">
@@ -175,14 +181,15 @@ export class DoiMint extends Component {
marginTop: "10px", marginTop: "10px",
}} }}
> >
{this.state.doi_id && (
<Message positive>
<Message.Header>A DOI is registered!</Message.Header>
<p>Please save the deposit. </p>
</Message>
)}
<Label <Label
style={{
cursor: "pointer",
}}
size="large" size="large"
as="a"
color="blue" color="blue"
onClick={() => doiLink(this.state.doi_id || this.id_doi)}
> >
<strong>DOI: </strong> <strong>DOI: </strong>
<Label.Detail>{this.state.doi_id || this.id_doi}</Label.Detail> <Label.Detail>{this.state.doi_id || this.id_doi}</Label.Detail>

View File

@@ -0,0 +1,47 @@
// This file is part of React-Invenio-Deposit
// Copyright (C) 2020 CERN.
// Copyright (C) 2020 Northwestern University.
// Copyright (C) 2021 Graz University of Technology.
//
// React-Invenio-Deposit is free software; you can redistribute it and/or modify it
// under the terms of the MIT License; see LICENSE file for more details.
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { FieldLabel, TextField } from 'react-invenio-forms';
export class PublisherField extends Component {
render() {
const { fieldPath, label, labelIcon, placeholder, required } = this.props;
return (
<TextField
fieldPath={fieldPath}
helpText={
'The publisher is used to formulate the citation, if you are plannig to mint a new DOI this publisher will be cited.'
}
label={
<FieldLabel htmlFor={fieldPath} icon={labelIcon} label={label} />
}
placeholder={placeholder}
required={required}
/>
);
}
}
PublisherField.propTypes = {
fieldPath: PropTypes.string.isRequired,
label: PropTypes.string,
labelIcon: PropTypes.string,
placeholder: PropTypes.string,
required: PropTypes.bool,
};
PublisherField.defaultProps = {
fieldPath: 'metadata.publisher',
label: 'Publisher',
labelIcon: 'building outline',
placeholder: 'Enter publisher name',
};

View File

@@ -33,7 +33,6 @@ import {
LanguagesField, LanguagesField,
PublishButton, PublishButton,
PublicationDateField, PublicationDateField,
PublisherField,
ResourceTypeField, ResourceTypeField,
SaveButton, SaveButton,
SubjectsField, SubjectsField,
@@ -44,6 +43,7 @@ import {
} from "react-invenio-deposit"; } from "react-invenio-deposit";
import { AccordionField } from "react-invenio-forms"; import { AccordionField } from "react-invenio-forms";
import { DoiMint } from "./DoiMint"; import { DoiMint } from "./DoiMint";
import { PublisherField } from "./PublisherField";
export class RDMDepositForm extends Component { export class RDMDepositForm extends Component {
constructor(props) { constructor(props) {
@@ -279,14 +279,11 @@ export class RDMDepositForm extends Component {
config={this.config} config={this.config}
record={this.props.record} record={this.props.record}
files={this.props.files} files={this.props.files}
permissions={this.props.permissions}
> >
<FormFeedback fieldPath="message" /> <FormFeedback fieldPath="message" />
<Container style={{ marginTop: "10px" }}> <Container style={{ marginTop: "10px" }}>
<DepositFormTitle <DepositFormTitle />
// TODO: make is_published part of the API response
// so we don't have to do this
isPublished={this.props.record.is_published}
/>
<Grid> <Grid>
<Grid.Row> <Grid.Row>
<Grid.Column width={11}> <Grid.Column width={11}>
@@ -296,7 +293,7 @@ export class RDMDepositForm extends Component {
label={"Files"} label={"Files"}
ui={this.accordionStyle} ui={this.accordionStyle}
> >
{this.noFiles && ( {this.noFiles && this.props.record.is_published && (
<p <p
style={{ style={{
textAlign: "center", textAlign: "center",
@@ -431,8 +428,10 @@ export class RDMDepositForm extends Component {
label="Subjects" label="Subjects"
labelIcon="tag" labelIcon="tag"
/> */} /> */}
{/**TODO- enable once issue is solved:
<LanguagesField * https://github.com/inveniosoftware/invenio-app-rdm/issues/738
*/}
{/* <LanguagesField
initialOptions={_get( initialOptions={_get(
this.props.record, this.props.record,
"ui.languages", "ui.languages",
@@ -445,10 +444,10 @@ export class RDMDepositForm extends Component {
key: item.id, key: item.id,
})) }))
} }
/> /> */}
<DatesField options={this.vocabularies.metadata.dates} /> <DatesField options={this.vocabularies.metadata.dates} />
<VersionField /> <VersionField />
<PublisherField /> <PublisherField required />
<br /> <br />
</AccordionField> </AccordionField>
{/**TODO: uncomment to use FundingField*/} {/**TODO: uncomment to use FundingField*/}
@@ -505,8 +504,11 @@ export class RDMDepositForm extends Component {
label={"Protection"} label={"Protection"}
labelIcon={"shield"} labelIcon={"shield"}
/> />
{this.config.data_cite &&( {this.config.data_cite && (
<DoiMint record={this.props.record} config={this.config.data_cite}/> <DoiMint
record={this.props.record}
config={this.config.data_cite}
/>
)} )}
</Sticky> </Sticky>
</Grid.Column> </Grid.Column>

View File

@@ -17,6 +17,7 @@ ReactDOM.render(
record={getInputFromDOM("deposits-record")} record={getInputFromDOM("deposits-record")}
files={getInputFromDOM("deposits-record-files")} files={getInputFromDOM("deposits-record-files")}
config={getInputFromDOM("deposits-config")} config={getInputFromDOM("deposits-config")}
permissions={getInputFromDOM("deposits-record-permissions")}
/>, />,
document.getElementById("deposit-form") document.getElementById("deposit-form")
); );

View File

@@ -46,5 +46,5 @@
margin-top: 10px; margin-top: 10px;
} }
.spacer-long{ .spacer-long{
margin-top: 20px; margin-top: 30px;
} }

View File

@@ -54,11 +54,6 @@
vertical-align: top; vertical-align: top;
} }
a {
color: inherit;
text-decoration: none;
transition: background-color 0.15s ease 0s, color 0.15s ease 0s;
}
/*****END logo section******/ /*****END logo section******/
.short-menu { .short-menu {

View File

@@ -24,3 +24,11 @@
//@import "../invenio_app_rdm/theme"; //@import "../invenio_app_rdm/theme";
//@import "variables"; //@import "variables";
// used in various templates
// add no hyperlink decoration
.no-decoration{
color: inherit;
text-decoration: none;
transition: background-color 0.15s ease 0s, color 0.15s ease 0s;
}

View File

@@ -110,7 +110,8 @@ TUG_ROUTES = {
"comingsoon": "/comingsoon", "comingsoon": "/comingsoon",
"deposit_create": "/uploads/new", "deposit_create": "/uploads/new",
"deposit_edit": "/uploads/<pid_value>", "deposit_edit": "/uploads/<pid_value>",
"record_detail": "/records/<pid_value>" "getdoi": "/getdoi",
"record_detail": "/records/<pid_value>",
} }
# Datacite # Datacite

View File

@@ -1,88 +0,0 @@
#!/usr/bin/env python
"""crypto helper module. see https://gist.github.com/marcoslin/8026990."""
import binascii
from Crypto import Random
from Crypto.Cipher import AES
# ------------------------------
# DEFINE Encryption Class
class Cryptor(object):
"""Crypto class implementation.
Provide encryption and decryption function that works with crypto-js.
https://code.google.com/p/crypto-js/
Padding implemented as per RFC 2315: PKCS#7 page 21
http://www.ietf.org/rfc/rfc2315.txt
The key to make pycrypto work with crypto-js are:
1. Use MODE_CFB. For some reason, crypto-js decrypted result from MODE_CBC
gets truncated
2. Use Pkcs7 padding as per RFC 2315, the default padding used by CryptoJS
3. On the JS side, make sure to wrap ciphertext with CryptoJS.lib.CipherParams.create()
"""
# AES-256 key (32 bytes)
KEY = "01ab38d5e05c92aa098921d9d4626107133c7e2ab0e4849558921ebcc242bcb0"
BLOCK_SIZE = 16
@classmethod
def _pad_string(cls, in_string):
"""Pad an input string according to PKCS#7."""
in_len = len(in_string)
pad_size = cls.BLOCK_SIZE - (in_len % cls.BLOCK_SIZE)
return in_string.ljust(in_len + pad_size, chr(pad_size))
@classmethod
def _unpad_string(cls, in_string):
"""Remove the PKCS#7 padding from a text string."""
in_len = len(in_string)
pad_size = ord(in_string[-1])
if pad_size > cls.BLOCK_SIZE:
raise ValueError("Input is not padded or padding is corrupt")
return in_string[: in_len - pad_size]
@classmethod
def generate_iv(cls, size=16):
"""Generate initialization vector."""
return Random.get_random_bytes(size)
@classmethod
def encrypt(cls, in_string, in_key, in_iv=None):
"""Return encrypted string.
@in_string: Simple str to be encrypted
@key: hexified key
@iv: hexified iv
"""
key = binascii.a2b_hex(in_key)
if in_iv is None:
iv = cls.generate_iv()
in_iv = binascii.b2a_hex(iv)
else:
iv = binascii.a2b_hex(in_iv)
aes = AES.new(key, AES.MODE_CFB, iv, segment_size=128)
padded = cls._pad_string(in_string).encode("utf-8")
encrypted = aes.encrypt(padded)
return in_iv, encrypted
@classmethod
def decrypt(cls, in_encrypted, in_key, in_iv):
"""Return encrypted string.
@in_encrypted: Base64 encoded
@key: hexified key
@iv: hexified iv
"""
key = binascii.a2b_hex(in_key)
iv = binascii.a2b_hex(in_iv)
aes = AES.new(key, AES.MODE_CFB, iv, segment_size=128)
decrypted = aes.decrypt(binascii.a2b_base64(in_encrypted).rstrip())
return cls._unpad_string(decrypted)

View File

@@ -21,4 +21,6 @@ class FrontpageRecordsSearch(RecordsSearch):
"""Default index and filter for frontpage search.""" """Default index and filter for frontpage search."""
index = "rdmrecords-records" index = "rdmrecords-records"
default_filter = Q("query_string", query=("access.record:public")) default_filter = Q(
"query_string", query=(
"access.record:public " "AND versions.is_latest:true"))

View File

@@ -4,14 +4,14 @@
{%- if config.SECURITY_REGISTERABLE %} {%- if config.SECURITY_REGISTERABLE %}
<div class="short-menu-right-button"> <div class="short-menu-right-button">
<a href="{{ url_for('security.register') }}"> <a href="{{ url_for('security.register') }}" class="no-decoration">
{{_ ("Sign up")}} {{_ ("Sign up")}}
</a> </a>
</div> </div>
{%- endif %} {%- endif %}
<div class="short-menu-right-button"> <div class="short-menu-right-button">
<a href="{{url_for_security('login', next=request.path)}}" style="text-decoration:none"> <a href="{{url_for_security('login', next=request.path)}}" class="no-decoration">
{{_ ("Log in")}} {{_ ("Log in")}}
</a> </a>
</div> </div>
@@ -21,12 +21,12 @@
{%- if config.USERPROFILES %} {%- if config.USERPROFILES %}
<div class="short-menu-right-button"> <div class="short-menu-right-button">
<a href="{{ url_for('invenio_userprofiles.profile') }}"> <a href="{{ url_for('invenio_userprofiles.profile') }}" class="no-decoration">
<i class="user icon"></i> {{ current_user.email }} <i class="user icon"></i> {{ current_user.email }}
</a> </a>
</div> </div>
<div class="short-menu-right-button"> <div class="short-menu-right-button">
<a class="dropdown-item" href="{{url_for_security('logout')}}"> <a class="dropdown-item no-decoration" href="{{url_for_security('logout')}}">
{{_('Sign out')}} {{_('Sign out')}}
</a> </a>
</div> </div>

View File

@@ -1,7 +1,5 @@
{# {#
Copyright (C) 2020 TUGRAZ Copyright (C) 2020-2021 Graz University of Technology.
Copyright (C) 2020 mojib wali
Copyright (C) 2020 Nikita Lvov
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-tugraz is free software; you can redistribute it and/or
modify it under the terms of the MIT License; see LICENSE file for more modify it under the terms of the MIT License; see LICENSE file for more
@@ -14,30 +12,32 @@
{% from "invenio_accounts/_macros.html" import render_field, form_errors %} {% from "invenio_accounts/_macros.html" import render_field, form_errors %}
{% block page_body %} {% block page_body %}
<div class="spacer-long"></div> <div class="spacer-long"></div>
<div class="spacer-long"></div>
<div class="ui container"> <div class="ui container">
<div class="ui centered grid"> <div class="ui centered grid padded">
<div class="ui padded segments big form"> <div class="ui padded segments huge form">
<div class="ui login segment padded"> <div class="ui login segment padded">
<div class="divider hidden"></div> <div class="divider hidden"></div>
{%- block form_header %} {%- block form_header %}
<h3 class="ui login header">{{ _('Log in to Repository') }}</h3> <h3 class="ui login header">{{ _('Log in to Repository') }}</h3>
{%- endblock form_header %} {%- endblock form_header %}
<div class="ui divider"></div>
<!--Log in with SSO--> <!--Log in with SSO-->
{%- if config.INVENIO_CONFIG_TUGRAZ_SHIBBOLETH %} {%- if config.INVENIO_CONFIG_TUGRAZ_SHIBBOLETH %}
<div class="ui divider"></div>
<div class="login-page-button ui fluid large button"> <div class="login-page-button ui fluid large button">
<a href="{{ url_for('sso_saml.sso', idp='idp') }}" class="inverted tiny image label"> <a href="{{ url_for('sso_saml.sso', idp='idp') }}" class="inverted tiny image label">
{% trans type='TUGRAZ' %} Log in with {{ type }}{% endtrans %} {% trans type='TUGRAZ' %} Log in with {{ type }}{% endtrans %}
<img src="{{ url_for('static', filename=config.INVENIO_THEME_TUGRAZ_ICON)}}" height="20px" /> <img src="{{ url_for('static', filename=config.INVENIO_THEME_TUGRAZ_ICON)}}" height="20px" />
</a> </a>
</div> </div>
<div class="spacer-long"></div>
<div class="ui inverted horizontal divider"><span class="text-color">{{_ ("Or")}}</span></div> <div class="ui inverted horizontal divider"><span class="text-color">{{_ ("Or")}}</span></div>
{%- endif %} {%- endif %}
{%- block form_outer %} {%- block form_outer %}
{%- with form = login_user_form %} {%- with form = login_user_form %}
<div style="padding-bottom: 20px;padding-top: 6px;">
<form action="{{ url_for_security('login') }}" method="POST" name="login_user_form" class="ui big form"> <form action="{{ url_for_security('login') }}" method="POST" name="login_user_form" class="ui big form">
{{ form.hidden_tag() }} {{ form.hidden_tag() }}
{{ form_errors(form) }} {{ form_errors(form) }}
@@ -47,6 +47,7 @@
<i class="ui sign-in icon"></i>{{ _('Log In') }} <i class="ui sign-in icon"></i>{{ _('Log In') }}
</button> </button>
</form> </form>
</div>
{%- endwith %} {%- endwith %}
{%- endblock form_outer %} {%- endblock form_outer %}
<div class="divider hidden"></div> <div class="divider hidden"></div>

View File

@@ -19,8 +19,11 @@
{%- if forms_config %} {%- if forms_config %}
<input type="hidden" name="deposits-config" value='{{forms_config | tojson }}'></input> <input type="hidden" name="deposits-config" value='{{forms_config | tojson }}'></input>
{%- endif %} {%- endif %}
{%- if permissions %}
<input id="deposits-record-permissions" type="hidden" name="deposits-record-permissions" value='{{permissions | tojson }}'></input>
{%- endif %}
<div id="deposit-form"></div> <div id="deposit-form"></div>
{%- endblock page_body %} {%- endblock page_body %}
{%- block javascript %} {%- block javascript %}
{{ super() }} {{ super() }}

View File

@@ -29,6 +29,10 @@
<h2>{{_ ("Repository")}}</h2> <h2>{{_ ("Repository")}}</h2>
<p class="bodytext"> <p class="bodytext">
<a href="https://tu-graz-library.github.io/docs-repository" title="Repository documentation" target="_blank">
{{_ ("Documentation")}} <i class="external alternate icon"></i>
</a>
<br>
<!-- <a href="{{ url_for('invenio_theme_tugraz.comingsoon') }}"> <!-- <a href="{{ url_for('invenio_theme_tugraz.comingsoon') }}">
{{_ ("Impressum")}}<i class="angle right icon"></i> {{_ ("Impressum")}}<i class="angle right icon"></i>
</a> </a>

View File

@@ -19,7 +19,7 @@
<div class="ui grid stackable container"> <div class="ui grid stackable container">
<div class="three column row centered" style="padding-bottom: 0;"> <div class="three column row centered" style="padding-bottom: 0;">
<div class="two wide column main-menu-entry"> <div class="two wide column main-menu-entry">
<a href="{{url_for('invenio_theme_tugraz.index')}}" title="Home"> <a href="{{url_for('invenio_theme_tugraz.index')}}" title="Home" class="no-decoration">
<span class="home-inline"> <span class="home-inline">
<svg shape-rendering="geometricPrecision" id="int-menu-q-home-icon" <svg shape-rendering="geometricPrecision" id="int-menu-q-home-icon"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg"
@@ -44,7 +44,7 @@
<!--TODO: remove this once above is uncommented--> <!--TODO: remove this once above is uncommented-->
<div class="two wide column main-menu-entry"> <div class="two wide column main-menu-entry">
<a href="{{url_for('invenio_app_rdm_records.deposit_search')}}">{{_ ("Uploads")}}</a> <a href="{{url_for('invenio_app_rdm_records.deposit_search')}}" class="no-decoration">{{_ ("Uploads")}}</a>
</div> </div>
</div> </div>

View File

@@ -44,7 +44,7 @@
{% if not records %} {% if not records %}
<div class="ui centered grid"> <div class="ui centered grid">
<p style="font-size: medium;">There are no public records to show.</p> <p style="font-size: medium;">{{_('There are no public records to show.')}}</p>
</div> </div>
{% endif %} {% endif %}
@@ -73,7 +73,7 @@
</div> </div>
<h4> <h4>
<a href="{{ record_url }}"> <a href="{{ record_url }}" class="no-decoration">
{{r.metadata.title}} {{r.metadata.title}}
</a> </a>
</h4> </h4>
@@ -83,7 +83,7 @@
</p> </p>
<p class="hidden-xs"> <p class="hidden-xs">
<a href="{{record_url}}"> <a href="{{record_url}}" class="no-decoration">
{{ r.metadata.description | striptags | truncate(300) }} {{ r.metadata.description | striptags | truncate(300) }}
</a> </a>
</p> </p>

View File

@@ -17,12 +17,34 @@
{%- set metadata = record.metadata %} {%- set metadata = record.metadata %}
{%- block page_body %} {%- block page_body %}
{% if permissions is defined and permissions.can_update_draft %} <div class="banners">
<div {% if permissions is defined and permissions.can_edit %}
id="recordManagement" <div class="ui warning flashed top-attached manage message">
data-recid='{{ record["id"] | tojson }}'> <div class="ui container">
<div id="recordManagement" data-record='{{ record | tojson }}' data-permissions='{{ permissions | tojson }}'></div>
</div>
</div> </div>
{% endif %} {% endif %}
{% if not record.versions.is_latest %}
<div class="ui warning flashed top-attached manage message">
<div class="ui container">
<div class="ui relaxed grid">
<div class="column">
<div class="row">
<p>
{% trans link_start=('<a href="' + record.links.latest_html + '"><b>')|safe, link_end='</b></a>'|safe %}
There is a {{ link_start }}newer version{{ link_end }} of the record available.
{% endtrans %}
</p>
</div>
</div>
</div>
</div>
</div>
{% endif %}
</div>
<div class="ui container"> <div class="ui container">
<div class="ui relaxed grid"> <div class="ui relaxed grid">
<div class="two column row top-padded"> <div class="two column row top-padded">
@@ -33,9 +55,7 @@
<div class="two column row"> <div class="two column row">
<div class="left floated left aligned column"> <div class="left floated left aligned column">
<span class="ui" title="Publication date">{{ record.ui.publication_date_l10n_long }}</span> <span class="ui" title="Publication date">{{ record.ui.publication_date_l10n_long }}</span>
{%- if metadata.version %} <span class="label text-muted"> | Version {{ record.ui.version }}</span>
<span class="label text-muted"> | Version {{ metadata.version }}</span>
{% endif %}
</div> </div>
<div class="right floated right aligned column"> <div class="right floated right aligned column">
<span class="ui label small grey">{{ record.ui.resource_type }}</span> <span class="ui label small grey">{{ record.ui.resource_type }}</span>
@@ -88,7 +108,7 @@
<div class="ui grid"> <div class="ui grid">
<div class="two column row top-bottom-padded font-small"> <div class="two column row top-bottom-padded font-small">
<div class="four wide column"> <div class="four wide column">
<p><b>Upload infromation</b></p> <p><b>Upload information</b></p>
</div> </div>
<div class="twelve wide column"> <div class="twelve wide column">
<span class="label text-muted"> <span class="label text-muted">
@@ -98,7 +118,7 @@
</div> </div>
</div> </div>
{%- endblock record_footer -%} {%- endblock record_footer -%}
{%- block jump -%} <!-- {%- block jump -%}
<div class="ui grid"> <div class="ui grid">
<div class="centered row" id="jump-btn"> <div class="centered row" id="jump-btn">
<a style="cursor: pointer;"> <a style="cursor: pointer;">
@@ -107,7 +127,7 @@
</a> </a>
</div> </div>
</div> </div>
{%- endblock jump -%} {%- endblock jump -%} -->
{%- endblock record_body %} {%- endblock record_body %}
</div> </div>
<div class="five wide column"> <div class="five wide column">

View File

@@ -7,7 +7,11 @@
#} #}
{% if metadata.identifiers %} {% if metadata.identifiers %}
{%- set id_doi = metadata.identifiers[0].identifier %} {% for identifier in metadata.identifiers %}
{% if identifier.scheme == 'doi' %}
{%- set id_doi = identifier.identifier %}
<dd> <dd>
{% if id_doi %} {% if id_doi %}
<span class="get-badge" data-toggle="tooltip" data-placement="bottom" style="cursor: pointer;" <span class="get-badge" data-toggle="tooltip" data-placement="bottom" style="cursor: pointer;"
@@ -34,3 +38,6 @@
{% endif %} {% endif %}
</dd> </dd>
{% endif %} {% endif %}
{% endfor %}
{% endif %}

View File

@@ -16,13 +16,13 @@
{%- for l in current_i18n.get_locales() %} {%- for l in current_i18n.get_locales() %}
{%- if current_i18n.language != l.language %} {%- if current_i18n.language != l.language %}
<a <a
href="{{ url_for('invenio_i18n.set_lang', lang_code=l.language) }}">{{ l.get_display_name().upper() [0:2]}}</a> href="{{ url_for('invenio_i18n.set_lang', lang_code=l.language) }}" class="no-decoration">{{ l.get_display_name().upper() [0:2]}}</a>
{%- endif %} {%- endif %}
{%- endfor %} {%- endfor %}
</div> </div>
{%- endif %} {%- endif %}
<div class="search-icon-header"> <div class="search-icon-header">
<a href="{{url_for('invenio_search_ui.search')}}"> <a href="{{url_for('invenio_search_ui.search')}}" class="no-decoration">
<svg class="short-menu-icon" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" <svg class="short-menu-icon" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2000/svg" height="26.015" width="26.015" version="1.1" xmlns="http://www.w3.org/2000/svg" height="26.015" width="26.015" version="1.1"
xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"
@@ -60,7 +60,7 @@
<img height="51.862" src="{{ url_for('static', filename='images/library_logo.png')}}"> <img height="51.862" src="{{ url_for('static', filename='images/library_logo.png')}}">
</div> </div>
<div class="affiliation-text"> <div class="affiliation-text">
<a title="RDM" href="{{url_for('invenio_theme_tugraz.index')}}"> <a title="Home" href="{{url_for('invenio_theme_tugraz.index')}}" class="no-decoration">
TU GRAZ TU GRAZ
<br> <br>
{{_ ("REPOSITORY")}} {{_ ("REPOSITORY")}}
@@ -73,7 +73,7 @@
<!--Right--> <!--Right-->
<div class="right floated right aligned six wide column"> <div class="right floated right aligned six wide column">
<div class="affiliation-logo" id="int-header-logo"> <div class="affiliation-logo" id="int-header-logo">
<a href="https://www.tugraz.at" title="TU Graz Home" target="_blank"> <a href="https://www.tugraz.at" title="TU Graz Home" target="_blank" class="no-decoration">
<div class="affiliation-logo-claim"> <div class="affiliation-logo-claim">
<div class="affiliation-logo-claim-single">{{_ ("SCIENCE")}}</div> <div class="affiliation-logo-claim-single">{{_ ("SCIENCE")}}</div>
<div class="affiliation-logo-claim-single">{{_ ("PASSION")}}</div> <div class="affiliation-logo-claim-single">{{_ ("PASSION")}}</div>

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: invenio-theme-tugraz 1.0.4\n" "Project-Id-Version: invenio-theme-tugraz 1.0.4\n"
"Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n" "Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n"
"POT-Creation-Date: 2021-01-04 14:18+0100\n" "POT-Creation-Date: 2021-03-19 10:53+0100\n"
"PO-Revision-Date: 2020-10-06 10:27+0200\n" "PO-Revision-Date: 2020-10-06 10:27+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: de\n" "Language: de\n"
@@ -19,21 +19,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: invenio_theme_tugraz/config.py:13 invenio_theme_tugraz/config.py:50 #: invenio_theme_tugraz/config.py:14 invenio_theme_tugraz/config.py:54
msgid "TU Graz Repository" msgid "TU Graz Repository"
msgstr "TU Graz Repository" msgstr "TU Graz Repository"
#: invenio_theme_tugraz/config.py:53 #: invenio_theme_tugraz/config.py:57
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:31 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:30
msgid "Repository" msgid "Repository"
msgstr "Repository" msgstr "Repository"
#: invenio_theme_tugraz/config.py:76 #: invenio_theme_tugraz/config.py:80
msgid "German" msgid "German"
msgstr "Deutsche" msgstr "Deutsche"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/accounts_base.html:27 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/accounts_base.html:26
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/base.html:27 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/base.html:26
msgid "Invenio" msgid "Invenio"
msgstr "Invenio" msgstr "Invenio"
@@ -113,103 +113,105 @@ msgstr "Nutzungsstatistiken"
msgid "All uploads display standards compliant usage statistics" msgid "All uploads display standards compliant usage statistics"
msgstr "Alle Uploads entsprechen den Standards der Nutzungsstatistiken." msgstr "Alle Uploads entsprechen den Standards der Nutzungsstatistiken."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:34 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:33
msgid "Impressum" msgid "Impressum"
msgstr "Imprint" msgstr "Imprint"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:38 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:37
msgid "Data protection" msgid "Data protection"
msgstr "Datenschutzerklärung" msgstr "Datenschutzerklärung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:42 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:41
msgid "Feedback" msgid "Feedback"
msgstr "Feedback" msgstr "Feedback"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:51 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:50
msgid "Features" msgid "Features"
msgstr "Features" msgstr "Features"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:53 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:52
msgid "Scalability" msgid "Scalability"
msgstr "Skalierbarkeit" msgstr "Skalierbarkeit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:55 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:54
msgid "Institutional integration" msgid "Institutional integration"
msgstr "Institutionelle Einbindung" msgstr "Institutionelle Einbindung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:57 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:56
msgid "Next Generation Repository" msgid "Next Generation Repository"
msgstr "Repositorium der nächsten Generation" msgstr "Repositorium der nächsten Generation"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:60 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:59
msgid "Repository Profiles" msgid "Repository Profiles"
msgstr "Repositorienprofile" msgstr "Repositorienprofile"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:62 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:61
msgid "Resilient" msgid "Resilient"
msgstr "Resilient, widerstandsfähig" msgstr "Resilient, widerstandsfähig"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:69 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:68
msgid "Connected Services" msgid "Connected Services"
msgstr "Verbundene Services " msgstr "Verbundene Services "
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:73 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:72
msgid "PURE" msgid "PURE"
msgstr "PURE" msgstr "PURE"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:76 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:75
msgid "CampusOnline" msgid "CampusOnline"
msgstr "CampusOnline" msgstr "CampusOnline"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:79 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:78
msgid "Research Data Management" msgid "Research Data Management"
msgstr "Forschungsdatenmanagement" msgstr "Forschungsdatenmanagement"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:85
msgid "Accessibility" msgid "Accessibility"
msgstr "Barrierefreiheit" msgstr "Barrierefreiheit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
msgid "Tipp:" msgid "Tipp:"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
msgid "Use Ctrl + and Crtl -" msgid "Use Ctrl + and Crtl -"
msgstr "Verwenden Sie Strg+ und Strg-" msgstr "Verwenden Sie Strg+ und Strg-"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
msgid "to change the font size." msgid "to change the font size."
msgstr "Um die Schriftgröße zu ändern." msgstr "Um die Schriftgröße zu ändern."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:35 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:34
msgid "Home" msgid "Home"
msgstr "Startseite" msgstr "Startseite"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:48 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:47
msgid "Uploads" msgid "Uploads"
msgstr "Hochladen" msgstr "Hochladen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:24 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:27
msgid "Type and press enter to search" msgid "Type and press enter to search"
msgstr "Suchbegriff eingeben und “Enter” drücken (?)" msgstr "Suchbegriff eingeben und “Enter” drücken (?)"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:40 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:43
msgid "Recent uploads" msgid "Recent uploads"
msgstr "Kürzlich hochgeladene Dateien" msgstr "Kürzlich hochgeladene Dateien"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:52 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:47
msgid "There are no public records to show."
msgstr "Es sind keine öffentlich zugänglichen Datensätze vorhanden."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:61
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/record_landing_page.html:33
msgid "Publication date" msgid "Publication date"
msgstr "Datum der Veröffentlichung" msgstr "Datum der Veröffentlichung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:57 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:66
msgid "Version" #: invenio_theme_tugraz/templates/invenio_theme_tugraz/record_landing_page.html:38
msgstr "Version"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:62
msgid "Resource type" msgid "Resource type"
msgstr "Art der Veröffentlichung" msgstr "Art der Veröffentlichung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:91 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:99
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -217,73 +219,73 @@ msgid ""
" " " "
msgstr "Hochgeladen am %(date)s\n" msgstr "Hochgeladen am %(date)s\n"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:110 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:126
msgid "More" msgid "More"
msgstr "Mehr" msgstr "Mehr"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:119 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:136
msgid "Need help?" msgid "Need help?"
msgstr "Brauchen Sie Hilfe?" msgstr "Brauchen Sie Hilfe?"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:123 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:140
msgid "Contact us" msgid "Contact us"
msgstr "Kontaktiere uns" msgstr "Kontaktiere uns"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:127 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:145
msgid "prioritizes all Recent uploads." msgid "prioritizes all Recent uploads."
msgstr "Reiht die neuesten Uploads vor." msgstr "Reiht die neuesten Uploads vor."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:130 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:148
msgid "We can help with:" msgid "We can help with:"
msgstr "Wir können helfen bei:" msgstr "Wir können helfen bei:"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:135 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:153
msgid "Uploading your research data, software, preprints, etc." msgid "Uploading your research data, software, preprints, etc."
msgstr "Hochladen Ihrer Forschungsdaten, Software, Preprints usw." msgstr "Hochladen Ihrer Forschungsdaten, Software, Preprints usw."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:136 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:154
msgid "One-on-one with" msgid "One-on-one with"
msgstr "Eins-zu-eins mit" msgstr "Eins-zu-eins mit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:136 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:154
msgid "supporters." msgid "supporters."
msgstr "Unterstützern" msgstr "Unterstützern"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:137 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:155
msgid "Quota increases beyond our default policy." msgid "Quota increases beyond our default policy."
msgstr "Erhöhung Ihres Kontingents über das vertraglich Zugesicherte hinaus." msgstr "Erhöhung Ihres Kontingents über das vertraglich Zugesicherte hinaus."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:138 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:156
msgid "Scripts for automated uploading of larger datasets." msgid "Scripts for automated uploading of larger datasets."
msgstr "Skripte zum automatisierten Hochladen größerer Datensätze." msgstr "Skripte zum automatisierten Hochladen größerer Datensätze."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:143 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:161
msgid "Why use" msgid "Why use"
msgstr "Warum" msgstr "Warum"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:67 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:66
#, fuzzy #, fuzzy
msgid "REPOSITORY" msgid "REPOSITORY"
msgstr "Repository" msgstr "Repository"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:69 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:68
msgid "LIBRARY & ARCHIVES" msgid "LIBRARY & ARCHIVES"
msgstr "Bibliothek und Archiv" msgstr "Bibliothek und Archiv"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:79 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:78
msgid "SCIENCE" msgid "SCIENCE"
msgstr "Wissenschaft" msgstr "WISSEN"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:79
msgid "PASSION"
msgstr "TECHNIK"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:80 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:80
msgid "PASSION"
msgstr "Leidenschaft"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:81
msgid "TECHNOLOGY" msgid "TECHNOLOGY"
msgstr "Technik" msgstr "LEIDENSCHAFT"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:8 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:8
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:60 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:61
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:81 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:81
msgid "Sign up" msgid "Sign up"
msgstr "Registrierung" msgstr "Registrierung"
@@ -296,16 +298,16 @@ msgstr "Einloggen"
msgid "Sign out" msgid "Sign out"
msgstr "Ausloggen" msgstr "Ausloggen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:24 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:23
msgid "Log in to Repository" msgid "Log in to Repository"
msgstr "Anmelden" msgstr "Anmelden"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:32 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:30
#, python-format #, python-format
msgid " Log in with %(type)s" msgid " Log in with %(type)s"
msgstr "Einloggen mit" msgstr "Einloggen mit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:36 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:35
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:55 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:55
msgid "Or" msgid "Or"
msgstr "Oder" msgstr "Oder"
@@ -314,12 +316,12 @@ msgstr "Oder"
msgid "Log In" msgid "Log In"
msgstr "Einloggen" msgstr "Einloggen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:59 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:60
#, python-format #, python-format
msgid "New to %(sitename)s?" msgid "New to %(sitename)s?"
msgstr "Neu im %(sitename)s?" msgstr "Neu im %(sitename)s?"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:69 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:70
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Passwort vergessen" msgstr "Passwort vergessen"
@@ -373,3 +375,20 @@ msgstr "RDM DOI Abzeichen"
msgid "DOI" msgid "DOI"
msgstr "DOI" msgstr "DOI"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/landingpage/detail.html:44
msgid "Open Access"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/landingpage/doi.html:37
msgid "No minted DOI"
msgstr ""
#~ msgid "Version"
#~ msgstr "Version"
#~ msgid ""
#~ "\n"
#~ " Uploaded on %(date)s\n"
#~ " "
#~ msgstr "Hochgeladen am %(date)s\n"

View File

@@ -7,9 +7,9 @@
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: invenio-theme-tugraz 1.3.1\n" "Project-Id-Version: invenio-theme-tugraz 1.9.3\n"
"Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n" "Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n"
"POT-Creation-Date: 2021-01-04 14:18+0100\n" "POT-Creation-Date: 2021-03-19 10:53+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,21 +18,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: invenio_theme_tugraz/config.py:13 invenio_theme_tugraz/config.py:50 #: invenio_theme_tugraz/config.py:14 invenio_theme_tugraz/config.py:54
msgid "TU Graz Repository" msgid "TU Graz Repository"
msgstr "" msgstr ""
#: invenio_theme_tugraz/config.py:53 #: invenio_theme_tugraz/config.py:57
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:31 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:30
msgid "Repository" msgid "Repository"
msgstr "" msgstr ""
#: invenio_theme_tugraz/config.py:76 #: invenio_theme_tugraz/config.py:80
msgid "German" msgid "German"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/accounts_base.html:27 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/accounts_base.html:26
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/base.html:27 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/base.html:26
msgid "Invenio" msgid "Invenio"
msgstr "" msgstr ""
@@ -102,103 +102,105 @@ msgstr ""
msgid "All uploads display standards compliant usage statistics" msgid "All uploads display standards compliant usage statistics"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:34 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:33
msgid "Impressum" msgid "Impressum"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:38 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:37
msgid "Data protection" msgid "Data protection"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:42 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:41
msgid "Feedback" msgid "Feedback"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:51 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:50
msgid "Features" msgid "Features"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:53 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:52
msgid "Scalability" msgid "Scalability"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:55 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:54
msgid "Institutional integration" msgid "Institutional integration"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:57 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:56
msgid "Next Generation Repository" msgid "Next Generation Repository"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:60 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:59
msgid "Repository Profiles" msgid "Repository Profiles"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:62 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:61
msgid "Resilient" msgid "Resilient"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:69 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:68
msgid "Connected Services" msgid "Connected Services"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:73 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:72
msgid "PURE" msgid "PURE"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:76 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:75
msgid "CampusOnline" msgid "CampusOnline"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:79 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:78
msgid "Research Data Management" msgid "Research Data Management"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:85
msgid "Accessibility" msgid "Accessibility"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
msgid "Tipp:" msgid "Tipp:"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
msgid "Use Ctrl + and Crtl -" msgid "Use Ctrl + and Crtl -"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
msgid "to change the font size." msgid "to change the font size."
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:35 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:34
msgid "Home" msgid "Home"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:48 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:47
msgid "Uploads" msgid "Uploads"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:24 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:27
msgid "Type and press enter to search" msgid "Type and press enter to search"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:40 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:43
msgid "Recent uploads" msgid "Recent uploads"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:52 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:47
msgid "There are no public records to show."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:61
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/record_landing_page.html:33
msgid "Publication date" msgid "Publication date"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:57 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:66
msgid "Version" #: invenio_theme_tugraz/templates/invenio_theme_tugraz/record_landing_page.html:38
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:62
msgid "Resource type" msgid "Resource type"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:91 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:99
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -206,72 +208,72 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:110 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:126
msgid "More" msgid "More"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:119 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:136
msgid "Need help?" msgid "Need help?"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:123 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:140
msgid "Contact us" msgid "Contact us"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:127 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:145
msgid "prioritizes all Recent uploads." msgid "prioritizes all Recent uploads."
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:130 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:148
msgid "We can help with:" msgid "We can help with:"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:135 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:153
msgid "Uploading your research data, software, preprints, etc." msgid "Uploading your research data, software, preprints, etc."
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:136 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:154
msgid "One-on-one with" msgid "One-on-one with"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:136 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:154
msgid "supporters." msgid "supporters."
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:137 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:155
msgid "Quota increases beyond our default policy." msgid "Quota increases beyond our default policy."
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:138 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:156
msgid "Scripts for automated uploading of larger datasets." msgid "Scripts for automated uploading of larger datasets."
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:143 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:161
msgid "Why use" msgid "Why use"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:67 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:66
msgid "REPOSITORY" msgid "REPOSITORY"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:69 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:68
msgid "LIBRARY & ARCHIVES" msgid "LIBRARY & ARCHIVES"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:79 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:78
msgid "SCIENCE" msgid "SCIENCE"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:80 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:79
msgid "PASSION" msgid "PASSION"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:81 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:80
msgid "TECHNOLOGY" msgid "TECHNOLOGY"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:8 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:8
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:60 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:61
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:81 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:81
msgid "Sign up" msgid "Sign up"
msgstr "" msgstr ""
@@ -284,16 +286,16 @@ msgstr ""
msgid "Sign out" msgid "Sign out"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:24 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:23
msgid "Log in to Repository" msgid "Log in to Repository"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:32 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:30
#, python-format #, python-format
msgid " Log in with %(type)s" msgid " Log in with %(type)s"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:36 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:35
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:55 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:55
msgid "Or" msgid "Or"
msgstr "" msgstr ""
@@ -302,12 +304,12 @@ msgstr ""
msgid "Log In" msgid "Log In"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:59 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:60
#, python-format #, python-format
msgid "New to %(sitename)s?" msgid "New to %(sitename)s?"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:69 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:70
msgid "Forgot password?" msgid "Forgot password?"
msgstr "" msgstr ""
@@ -357,3 +359,11 @@ msgstr ""
msgid "DOI" msgid "DOI"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/landingpage/detail.html:44
msgid "Open Access"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/landingpage/doi.html:37
msgid "No minted DOI"
msgstr ""

View File

@@ -12,4 +12,4 @@ This file is imported by ``invenio_theme_tugraz.__init__``,
and parsed by ``setup.py``. and parsed by ``setup.py``.
""" """
__version__ = "1.9.1" __version__ = "2.0.5"

View File

@@ -12,8 +12,9 @@ import binascii
from os import environ from os import environ
from typing import Dict from typing import Dict
import requests
from elasticsearch_dsl.utils import AttrDict from elasticsearch_dsl.utils import AttrDict
from flask import Blueprint, current_app, g, render_template from flask import Blueprint, current_app, g, render_template, request
from flask_login import login_required from flask_login import login_required
from flask_menu import current_menu from flask_menu import current_menu
from invenio_app_rdm.records_ui.views.decorators import ( from invenio_app_rdm.records_ui.views.decorators import (
@@ -21,18 +22,17 @@ from invenio_app_rdm.records_ui.views.decorators import (
pass_record, pass_record,
pass_record_files, pass_record_files,
service, service,
user_permissions,
) )
from invenio_app_rdm.records_ui.views.deposits import ( from invenio_app_rdm.records_ui.views.deposits import (
get_form_config, get_form_config,
get_search_url, get_search_url,
new_record, new_record,
) )
from invenio_rdm_records.proxies import current_rdm_records
from invenio_rdm_records.resources.config import RDMDraftFilesResourceConfig from invenio_rdm_records.resources.config import RDMDraftFilesResourceConfig
from invenio_rdm_records.resources.serializers import UIJSONSerializer from invenio_rdm_records.resources.serializers import UIJSONSerializer
from invenio_rdm_records.services import RDMDraftFilesService from invenio_rdm_records.services import RDMDraftFilesService
from .crypto import Cryptor
from .search import FrontpageRecordsSearch from .search import FrontpageRecordsSearch
@@ -51,6 +51,7 @@ def ui_blueprint(app):
blueprint.add_url_rule(routes["comingsoon"], view_func=comingsoon) blueprint.add_url_rule(routes["comingsoon"], view_func=comingsoon)
blueprint.add_url_rule(routes["deposit_create"], view_func=deposit_create) blueprint.add_url_rule(routes["deposit_create"], view_func=deposit_create)
blueprint.add_url_rule(routes["record_detail"], view_func=record_detail) blueprint.add_url_rule(routes["record_detail"], view_func=record_detail)
blueprint.add_url_rule(routes["getdoi"], view_func=retrieve_doi, methods=["POST"])
@blueprint.app_template_filter("make_dict_like") @blueprint.app_template_filter("make_dict_like")
def make_dict_like(value: str, key: str) -> Dict[str, str]: def make_dict_like(value: str, key: str) -> Dict[str, str]:
@@ -83,22 +84,44 @@ def comingsoon():
def get_datacite_details(): def get_datacite_details():
"""Application credentials for DOI.""" """Application credentials for DOI."""
url = environ.get('INVENIO_DATACITE_URL') or "" prefix = environ.get("INVENIO_DATACITE_PREFIX")
username = environ.get('INVENIO_DATACITE_UNAME') or "" suffix = environ.get("INVENIO_DATACITE_SUFFIX")
password = environ.get('INVENIO_DATACITE_PASS') or "" host_url = environ.get("INVENIO_SITE_HOSTNAME")
prefix = environ.get('INVENIO_DATACITE_PREFIX') or ""
password_iv, encrypted_password = Cryptor.encrypt(password, Cryptor.KEY)
details = { details = {
"datacite_url": url,
"datacite_uname": username,
"datacite_pass": binascii.b2a_base64(encrypted_password).rstrip(),
"datacite_prefix": prefix, "datacite_prefix": prefix,
"datacite_password_iv": password_iv, "datacite_suffix": suffix,
"datacite_host_url": host_url,
} }
return details return details
@login_required
def retrieve_doi():
"""Retrieve DOI from datacite API."""
doi_metadata = request.get_json()
url = environ.get("INVENIO_DATACITE_URL")
username = environ.get("INVENIO_DATACITE_UNAME")
password = environ.get("INVENIO_DATACITE_PASS")
doi_response = requests.post(
url,
auth=(username, password.encode('utf-8')),
json=doi_metadata,
)
response_data = {"code": doi_response.status_code}
try:
doi_response.raise_for_status()
response_data["data"] = doi_response.json()
except requests.exceptions.RequestException:
response_data["errors"] = doi_response.json()["errors"]
return response_data, response_data["code"]
# #
# TODO: change this override behaviour once # TODO: change this override behaviour once
# PR is merged: # PR is merged:
@@ -125,9 +148,7 @@ def deposit_create():
@pass_draft @pass_draft
def deposit_edit(draft=None, pid_value=None): def deposit_edit(draft=None, pid_value=None):
"""Edit an existing deposit.""" """Edit an existing deposit."""
# TODO: should be embedded in record service files_list = current_rdm_records.draft_files_service.list_files(
files_service = RDMDraftFilesService()
files_list = files_service.list_files(
id_=pid_value, id_=pid_value,
identity=g.identity, identity=g.identity,
links_config=RDMDraftFilesResourceConfig.links_config, links_config=RDMDraftFilesResourceConfig.links_config,
@@ -136,14 +157,6 @@ def deposit_edit(draft=None, pid_value=None):
serializer = UIJSONSerializer() serializer = UIJSONSerializer()
record = serializer.serialize_object_to_dict(draft.to_dict()) 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
forms_config = get_form_config(apiUrl=f"/api/records/{pid_value}/draft") forms_config = get_form_config(apiUrl=f"/api/records/{pid_value}/draft")
forms_config["data_cite"] = get_datacite_details() forms_config["data_cite"] = get_datacite_details()
@@ -153,13 +166,13 @@ def deposit_edit(draft=None, pid_value=None):
record=record, record=record,
files=files_list.to_dict(), files=files_list.to_dict(),
searchbar_config=dict(searchUrl=get_search_url()), searchbar_config=dict(searchUrl=get_search_url()),
permissions=draft.has_permissions_to(['new_version'])
) )
@pass_record @pass_record
@pass_record_files @pass_record_files
@user_permissions(actions=['update_draft']) def record_detail(record=None, files=None, pid_value=None):
def record_detail(record=None, files=None, pid_value=None, permissions=None):
"""Record detail page (aka landing page).""" """Record detail page (aka landing page)."""
files_dict = None if files is None else files.to_dict() files_dict = None if files is None else files.to_dict()
return render_template( return render_template(
@@ -167,5 +180,5 @@ def record_detail(record=None, files=None, pid_value=None, permissions=None):
record=UIJSONSerializer().serialize_object_to_dict(record.to_dict()), record=UIJSONSerializer().serialize_object_to_dict(record.to_dict()),
pid=pid_value, pid=pid_value,
files=files_dict, files=files_dict,
permissions=permissions, permissions=record.has_permissions_to(['edit', 'new_version']),
) )

View File

@@ -32,7 +32,7 @@ theme = WebpackThemeBundle(
'prop-types': '^15.7.2', 'prop-types': '^15.7.2',
'react-dnd': '^11.1.3', 'react-dnd': '^11.1.3',
'react-dnd-html5-backend': '^11.1.3', 'react-dnd-html5-backend': '^11.1.3',
'react-invenio-deposit': '^0.11.10', 'react-invenio-deposit': '^0.12.0',
'react-invenio-forms': '^0.6.3', 'react-invenio-forms': '^0.6.3',
'react-dropzone': "^11.0.3", 'react-dropzone': "^11.0.3",
'yup': '^0.27.0', 'yup': '^0.27.0',
@@ -40,7 +40,7 @@ theme = WebpackThemeBundle(
'@ckeditor/ckeditor5-react': '^2.1.0', '@ckeditor/ckeditor5-react': '^2.1.0',
# datacite - rest api plugin # datacite - rest api plugin
'datacite-rest': '^0.1.4', 'datacite-rest': '^0.1.8',
}, },
) )

View File

@@ -20,9 +20,9 @@ tests_require = [
"invenio-app>=1.3.0,<2.0.0", "invenio-app>=1.3.0,<2.0.0",
] ]
# Should follow inveniosoftware/invenio versions # Should follow invenio-app-rdm
invenio_search_version = ">=1.4.0,<2.0.0" invenio_search_version = ">=1.4.0,<1.5.0"
invenio_db_version = ">=1.0.5,<2.0.0" invenio_db_version = ">=1.0.9,<1.1.0"
extras_require = { extras_require = {
"elasticsearch7": [f"invenio-search[elasticsearch7]{invenio_search_version}"], "elasticsearch7": [f"invenio-search[elasticsearch7]{invenio_search_version}"],
@@ -58,10 +58,9 @@ install_requires = [
"invenio-i18n>=1.2.0", "invenio-i18n>=1.2.0",
"elasticsearch_dsl>=7.2.1", "elasticsearch_dsl>=7.2.1",
"invenio_search>=1.4.0,<2.0.0", "invenio_search>=1.4.0,<2.0.0",
"invenio_config_tugraz>=0.5.1",
# keep this package updated. # keep this package updated.
"invenio_app_rdm<=1.0.0", "invenio_app_rdm==2.0.1",
# needed for DOI credential encryption
"pycryptodome==3.10.1",
] ]
packages = find_packages() packages = find_packages()