mirror of
https://github.com/Cian-H/invenio-theme-iform.git
synced 2025-12-23 05:01:58 +00:00
Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4d902f014b | ||
|
|
ea54a17c43 | ||
|
|
db01116eeb | ||
|
|
ea92a2f563 | ||
|
|
a4558e02bf | ||
|
|
c87e65d89f | ||
|
|
6360bcab7b | ||
|
|
95710c440e | ||
|
|
063ddc985a | ||
|
|
6cb248644b | ||
|
|
e3897c8d46 | ||
|
|
dd4bc1ffdf | ||
|
|
046b009420 | ||
|
|
6210a8bad9 | ||
|
|
de83dd0d1b | ||
|
|
462fc27ae7 |
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020 mojib wali.
|
||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
||||
#
|
||||
# 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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020 mojib wali.
|
||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
||||
#
|
||||
# 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
..
|
||||
Copyright (C) 2020 mojib wali.
|
||||
Copyright (C) 2020-2021 Graz University of Technology.
|
||||
|
||||
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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
..
|
||||
Copyright (C) 2020 mojib wali.
|
||||
Copyright (C) 2020-2021 Graz University of Technology.
|
||||
|
||||
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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020 mojib wali.
|
||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
||||
#
|
||||
# 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
..
|
||||
Copyright (C) 2020 Mojib wali.
|
||||
Copyright (C) 2020-2021 Graz University of Technology.
|
||||
|
||||
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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020 mojib wali.
|
||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
||||
#
|
||||
# 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
..
|
||||
Copyright (C) 2020 mojib wali.
|
||||
Copyright (C) 2020-2021 Graz University of Technology.
|
||||
|
||||
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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
..
|
||||
Copyright (C) 2020 mojib wali.
|
||||
Copyright (C) 2020-2021 Graz University of Technology.
|
||||
|
||||
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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
..
|
||||
Copyright (C) 2020 mojib wali.
|
||||
Copyright (C) 2020-2021 Graz University of Technology.
|
||||
|
||||
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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020 mojib wali.
|
||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
||||
#
|
||||
# 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
..
|
||||
Copyright (C) 2020 mojib wali.
|
||||
Copyright (C) 2020-2021 Graz University of Technology.
|
||||
|
||||
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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
..
|
||||
Copyright (C) 2020 mojib wali.
|
||||
Copyright (C) 2020-2021 Graz University of Technology.
|
||||
|
||||
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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
..
|
||||
Copyright (C) 2020 mojib wali.
|
||||
Copyright (C) 2020-2021 Graz University of Technology.
|
||||
|
||||
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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
..
|
||||
Copyright (C) 2020 mojib wali.
|
||||
Copyright (C) 2020-2021 Graz University of Technology.
|
||||
|
||||
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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
..
|
||||
Copyright (C) 2020 mojib wali.
|
||||
Copyright (C) 2020-2021 Graz University of Technology.
|
||||
|
||||
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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020 mojib wali.
|
||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
||||
#
|
||||
# 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
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020 TUGRAZ.
|
||||
* Copyright (C) 2020 mojib wali.
|
||||
* Copyright (C) 2020-2021 Graz University of Technology.
|
||||
*
|
||||
* 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 details.
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020 TUGRAZ.
|
||||
* Copyright (C) 2020 mojib wali.
|
||||
* Copyright (C) 2020-2021 Graz University of Technology.
|
||||
*
|
||||
* 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 details.
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020 TUGRAZ.
|
||||
* Copyright (C) 2020 mojib wali.
|
||||
* Copyright (C) 2020-2021 Graz University of Technology.
|
||||
*
|
||||
* 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 details.
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020 TUGRAZ.
|
||||
* Copyright (C) 2020 mojib wali.
|
||||
* Copyright (C) 2020-2021 Graz University of Technology.
|
||||
*
|
||||
* 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 details.
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020 TUGRAZ.
|
||||
* Copyright (C) 2020 mojib wali.
|
||||
* Copyright (C) 2020-2021 Graz University of Technology.
|
||||
*
|
||||
* 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 details.
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020 TUGRAZ.
|
||||
* Copyright (C) 2020 mojib wali.
|
||||
* Copyright (C) 2020-2021 Graz University of Technology.
|
||||
*
|
||||
* 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 details.
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020 TUGRAZ.
|
||||
* Copyright (C) 2020 mojib wali.
|
||||
* Copyright (C) 2020-2021 Graz University of Technology.
|
||||
*
|
||||
* 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 details.
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020 TUGRAZ.
|
||||
* Copyright (C) 2020 mojib wali.
|
||||
* Copyright (C) 2020-2021 Graz University of Technology.
|
||||
*
|
||||
* 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 details.
|
||||
|
||||
@@ -10,7 +10,7 @@ import {
|
||||
} from "semantic-ui-react";
|
||||
import { FieldArray } from "formik";
|
||||
|
||||
import { DoiRest, MapDatacite } from "datacite-rest";
|
||||
import { FetchDoi, MapDatacite } from "datacite-rest";
|
||||
|
||||
export class DoiMint extends Component {
|
||||
constructor(props) {
|
||||
@@ -29,8 +29,12 @@ export class DoiMint extends Component {
|
||||
this.metadata.identifiers.length > 0 &&
|
||||
this.metadata.identifiers[0] != null
|
||||
) {
|
||||
this.is_doi = true;
|
||||
this.id_doi = this.metadata.identifiers[0].identifier;
|
||||
for(var identifier of this.metadata.identifiers){
|
||||
if (identifier.scheme == "doi"){
|
||||
this.is_doi = true;
|
||||
this.id_doi = identifier.identifier;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// add metadata to the state
|
||||
@@ -47,65 +51,66 @@ export class DoiMint extends Component {
|
||||
// this should fetch a new doi
|
||||
var pushDoi = (form) => {
|
||||
// activate the loader
|
||||
this.setState({
|
||||
showLoader: true,
|
||||
});
|
||||
this.setState({
|
||||
showLoader: true,
|
||||
});
|
||||
|
||||
const url = this.configs.datacite_url;
|
||||
const auth = {
|
||||
username: this.configs.datacite_uname,
|
||||
password: this.configs.datacite_pass,
|
||||
};
|
||||
// get the prefix from backend
|
||||
const prefix = this.configs.datacite_prefix;
|
||||
const suffix = this.configs.datacite_suffix;
|
||||
|
||||
// get mapped DOI
|
||||
const mapped = MapDatacite(this.metadata, this.record.id, prefix);
|
||||
if (prefix !== null && suffix !== null) {
|
||||
// get mapped DOI
|
||||
const mapped = MapDatacite(this.metadata, this.record.id, prefix, suffix);
|
||||
|
||||
const _doirest = new DoiRest(url);
|
||||
const _fetchdoi = new FetchDoi("/getdoi");
|
||||
|
||||
// Create a new DOI
|
||||
_doirest
|
||||
.create(mapped, auth, this.configs.datacite_password_iv)
|
||||
.then((data) => {
|
||||
// if there is an error
|
||||
if (data.data.errors) {
|
||||
this.setState({
|
||||
showLoader: false,
|
||||
isError: true,
|
||||
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
|
||||
else {
|
||||
// add new identifier
|
||||
const _identifiers = [
|
||||
{
|
||||
identifier: data.data.data.id,
|
||||
scheme: "doi",
|
||||
},
|
||||
];
|
||||
// submit the value to the form
|
||||
this.setState({ identifiers: _identifiers });
|
||||
form.setFieldValue("metadata.identifiers", this.state.identifiers);
|
||||
// Create a new DOI
|
||||
_fetchdoi
|
||||
.create(mapped)
|
||||
.then((data) => {
|
||||
// if there is an error
|
||||
if (data.data.errors) {
|
||||
this.setState({
|
||||
showLoader: false,
|
||||
isError: true,
|
||||
errorMsg: data.data.errors[0].title,
|
||||
});
|
||||
}
|
||||
// new doi is fetched
|
||||
else {
|
||||
// add new identifier
|
||||
const _identifiers = [
|
||||
{
|
||||
identifier: data.data.data.data.id,
|
||||
scheme: "doi",
|
||||
},
|
||||
];
|
||||
// submit the value to the form
|
||||
this.setState({ identifiers: _identifiers });
|
||||
form.setFieldValue(
|
||||
"metadata.identifiers",
|
||||
this.state.identifiers
|
||||
);
|
||||
|
||||
this.is_doi = true;
|
||||
// deactivate the loader
|
||||
this.setState({
|
||||
showLoader: false,
|
||||
doi_id: this.state.identifiers[0].identifier,
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
console.log("error", error);
|
||||
this.is_doi = true;
|
||||
// deactivate the loader
|
||||
this.setState({
|
||||
showLoader: false,
|
||||
doi_id: this.state.identifiers[0].identifier,
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
console.log("error", error);
|
||||
});
|
||||
} else {
|
||||
this.setState({
|
||||
showLoader: false,
|
||||
isError: true,
|
||||
errorMsg: "Not configured!",
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// get a link of dio
|
||||
@@ -175,6 +180,12 @@ export class DoiMint extends Component {
|
||||
marginTop: "10px",
|
||||
}}
|
||||
>
|
||||
{this.state.doi_id && (
|
||||
<Message positive>
|
||||
<Message.Header>A DOI is registered!</Message.Header>
|
||||
<p>Please save the deposit. </p>
|
||||
</Message>
|
||||
)}
|
||||
<Label
|
||||
style={{
|
||||
cursor: "pointer",
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020 TUGRAZ.
|
||||
* Copyright (C) 2020 mojib wali.
|
||||
* Copyright (C) 2020-2021 Graz University of Technology.
|
||||
*
|
||||
* 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 details.
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020 TUGRAZ.
|
||||
* Copyright (C) 2020 mojib wali.
|
||||
* Copyright (C) 2020-2021 Graz University of Technology.
|
||||
*
|
||||
* 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 details.
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020 TUGRAZ.
|
||||
* Copyright (C) 2020 mojib wali.
|
||||
* Copyright (C) 2020-2021 Graz University of Technology.
|
||||
*
|
||||
* 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 details.
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020 TUGRAZ.
|
||||
* Copyright (C) 2020 mojib wali.
|
||||
* Copyright (C) 2020-2021 Graz University of Technology.
|
||||
*
|
||||
* 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 details.
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020 TUGRAZ.
|
||||
* Copyright (C) 2020 mojib wali.
|
||||
* Copyright (C) 2020-2021 Graz University of Technology.
|
||||
*
|
||||
* 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 details.
|
||||
|
||||
@@ -5,10 +5,6 @@
|
||||
* it under the terms of the MIT License; see LICENSE file for more details.
|
||||
*/
|
||||
|
||||
.title .dropdown {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.top-bottom-padded {
|
||||
margin: unset;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020 TUGRAZ.
|
||||
* Copyright (C) 2020 mojib wali.
|
||||
* Copyright (C) 2020-2021 Graz University of Technology.
|
||||
*
|
||||
* 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 details.
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020 TUGRAZ.
|
||||
* Copyright (C) 2020 mojib wali.
|
||||
* Copyright (C) 2020-2021 Graz University of Technology.
|
||||
*
|
||||
* 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 details.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020 mojib wali.
|
||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
||||
#
|
||||
# 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
|
||||
@@ -110,7 +110,8 @@ TUG_ROUTES = {
|
||||
"comingsoon": "/comingsoon",
|
||||
"deposit_create": "/uploads/new",
|
||||
"deposit_edit": "/uploads/<pid_value>",
|
||||
"record_detail": "/records/<pid_value>"
|
||||
"getdoi": "/getdoi",
|
||||
"record_detail": "/records/<pid_value>",
|
||||
}
|
||||
|
||||
# Datacite
|
||||
|
||||
@@ -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)
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020 mojib wali.
|
||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
||||
#
|
||||
# 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
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020 TU Graz.
|
||||
# Copyright (C) 2020 mojib wali.
|
||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
||||
#
|
||||
# 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
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{#
|
||||
Copyright (C) 2020 TUGRAZ
|
||||
Copyright (C) 2020 mojib wali.
|
||||
Copyright (C) 2020-2021 Graz University of Technology.
|
||||
|
||||
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
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{#
|
||||
Copyright (C) 2020 TUGRAZ
|
||||
Copyright (C) 2020 mojib wali.
|
||||
Copyright (C) 2020-2021 Graz University of Technology.
|
||||
|
||||
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
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{#
|
||||
Copyright (C) 2020 TUGRAZ
|
||||
Copyright (C) 2020 mojib wali.
|
||||
Copyright (C) 2020-2021 Graz University of Technology.
|
||||
|
||||
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
|
||||
@@ -69,13 +68,13 @@
|
||||
<h2>{{_ ("Connected Services")}}</h2>
|
||||
<p class="bodytext">
|
||||
|
||||
<a href="https://pure.tugraz.at" title="PURE">
|
||||
<a href="https://pure.tugraz.at" title="PURE" target="_blank">
|
||||
{{_ ("PURE")}} <i class="external alternate icon"></i></a><br>
|
||||
|
||||
<a href="http://campusonline.tugraz.at" title="CAMPUS online">
|
||||
<a href="http://campusonline.tugraz.at" title="CAMPUS online" target="_blank">
|
||||
{{_ ("CampusOnline")}} <i class="external alternate icon"></i></a><br>
|
||||
|
||||
<a href="https://rdm.tugraz.at" title="CAMPUS online">
|
||||
<a href="https://rdm.tugraz.at" title="Research Data Management" target="_blank">
|
||||
{{_ ("Research Data Management")}} <i class="external alternate icon"></i></a><br>
|
||||
</p>
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{#
|
||||
Copyright (C) 2020 TUGRAZ
|
||||
Copyright (C) 2020 mojib wali.
|
||||
Copyright (C) 2020-2021 Graz University of Technology.
|
||||
|
||||
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
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{#
|
||||
Copyright (C) 2020 TUGRAZ
|
||||
Copyright (C) 2020 mojib wali.
|
||||
Copyright (C) 2020-2021 Graz University of Technology.
|
||||
|
||||
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
|
||||
@@ -43,6 +42,12 @@
|
||||
<div class="ten wide column random-records-frontpage">
|
||||
<h2>{{_('Recent uploads')}}</h2>
|
||||
|
||||
{% if not records %}
|
||||
<div class="ui centered grid">
|
||||
<p style="font-size: medium;">There are no public records to show.</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{%- for r in records %}
|
||||
{%- set creation_date = r._created|from_isodatetime -%}
|
||||
{%- set record_url = url_for('invenio_app_rdm_records.record_detail', pid_value=r.id) %}
|
||||
@@ -116,9 +121,11 @@
|
||||
-->
|
||||
|
||||
{%- endfor %}
|
||||
{% if records %}
|
||||
<div class="ui centered grid">
|
||||
<a class="ui button more" href="{{url_for('invenio_search_ui.search')}}">{{_('More')}}</a>
|
||||
</div>
|
||||
{%- endif %}
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@@ -7,7 +7,11 @@
|
||||
#}
|
||||
|
||||
{% 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>
|
||||
{% if id_doi %}
|
||||
<span class="get-badge" data-toggle="tooltip" data-placement="bottom" style="cursor: pointer;"
|
||||
@@ -34,3 +38,6 @@
|
||||
{% endif %}
|
||||
</dd>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{#
|
||||
Copyright (C) 2020 TUGRAZ
|
||||
Copyright (C) 2020 mojib wali.
|
||||
Copyright (C) 2020-2021 Graz University of Technology.
|
||||
|
||||
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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020 mojib wali.
|
||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
||||
#
|
||||
# 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
|
||||
@@ -12,4 +12,4 @@ This file is imported by ``invenio_theme_tugraz.__init__``,
|
||||
and parsed by ``setup.py``.
|
||||
"""
|
||||
|
||||
__version__ = "1.9.0"
|
||||
__version__ = "1.9.3"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020 mojib wali.
|
||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
||||
#
|
||||
# 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
|
||||
@@ -9,10 +9,12 @@
|
||||
"""invenio module for TUGRAZ theme."""
|
||||
|
||||
import binascii
|
||||
from os import environ
|
||||
from typing import Dict
|
||||
|
||||
import requests
|
||||
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_menu import current_menu
|
||||
from invenio_app_rdm.records_ui.views.decorators import (
|
||||
@@ -31,7 +33,6 @@ from invenio_rdm_records.resources.config import RDMDraftFilesResourceConfig
|
||||
from invenio_rdm_records.resources.serializers import UIJSONSerializer
|
||||
from invenio_rdm_records.services import RDMDraftFilesService
|
||||
|
||||
from .crypto import Cryptor
|
||||
from .search import FrontpageRecordsSearch
|
||||
|
||||
|
||||
@@ -50,6 +51,7 @@ def ui_blueprint(app):
|
||||
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["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")
|
||||
def make_dict_like(value: str, key: str) -> Dict[str, str]:
|
||||
@@ -82,22 +84,42 @@ def comingsoon():
|
||||
|
||||
def get_datacite_details():
|
||||
"""Application credentials for DOI."""
|
||||
url = current_app.config.get("INVENIO_DATACITE_URL") or ""
|
||||
username = current_app.config.get("INVENIO_DATACITE_UNAME") or ""
|
||||
password = current_app.config.get("INVENIO_DATACITE_PASS") or ""
|
||||
prefix = current_app.config.get("INVENIO_DATACITE_PREFIX") or ""
|
||||
|
||||
password_iv, encrypted_password = Cryptor.encrypt(password, Cryptor.KEY)
|
||||
prefix = environ.get("INVENIO_DATACITE_PREFIX")
|
||||
suffix = environ.get("INVENIO_DATACITE_SUFFIX")
|
||||
|
||||
details = {
|
||||
"datacite_url": url,
|
||||
"datacite_uname": username,
|
||||
"datacite_pass": binascii.b2a_base64(encrypted_password).rstrip(),
|
||||
"datacite_prefix": prefix,
|
||||
"datacite_password_iv": password_iv,
|
||||
"datacite_suffix": suffix,
|
||||
}
|
||||
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),
|
||||
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
|
||||
# PR is merged:
|
||||
@@ -137,6 +159,7 @@ def deposit_edit(draft=None, pid_value=None):
|
||||
|
||||
# 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
|
||||
@@ -157,7 +180,7 @@ def deposit_edit(draft=None, pid_value=None):
|
||||
|
||||
@pass_record
|
||||
@pass_record_files
|
||||
@user_permissions(actions=['update_draft'])
|
||||
@user_permissions(actions=["update_draft"])
|
||||
def record_detail(record=None, files=None, pid_value=None, permissions=None):
|
||||
"""Record detail page (aka landing page)."""
|
||||
files_dict = None if files is None else files.to_dict()
|
||||
|
||||
@@ -40,7 +40,7 @@ theme = WebpackThemeBundle(
|
||||
'@ckeditor/ckeditor5-react': '^2.1.0',
|
||||
|
||||
# datacite - rest api plugin
|
||||
'datacite-rest': '^0.1.4',
|
||||
'datacite-rest': '^0.1.7',
|
||||
|
||||
},
|
||||
)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020 mojib wali.
|
||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
||||
#
|
||||
# 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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020 mojib wali.
|
||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
||||
#
|
||||
# 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
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#
|
||||
# Copyright (C) 2019-2020 CERN.
|
||||
# Copyright (C) 2019-2020 Northwestern University.
|
||||
# Copyright (C) 2020 Graz University of Technology.
|
||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
||||
#
|
||||
# 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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020 mojib wali.
|
||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
||||
#
|
||||
# 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
|
||||
|
||||
5
setup.py
5
setup.py
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020 mojib wali.
|
||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
||||
#
|
||||
# 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
|
||||
@@ -58,10 +58,9 @@ install_requires = [
|
||||
"invenio-i18n>=1.2.0",
|
||||
"elasticsearch_dsl>=7.2.1",
|
||||
"invenio_search>=1.4.0,<2.0.0",
|
||||
"invenio_config_tugraz>=0.5.1",
|
||||
# keep this package updated.
|
||||
"invenio_app_rdm<=1.0.0",
|
||||
# needed for DOI credential encryption
|
||||
"pycryptodome==3.10.1",
|
||||
]
|
||||
|
||||
packages = find_packages()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020 mojib wali.
|
||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
||||
#
|
||||
# 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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020 mojib wali.
|
||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
||||
#
|
||||
# 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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020 mojib wali.
|
||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
||||
#
|
||||
# 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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# # -*- coding: utf-8 -*-
|
||||
# #
|
||||
# # Copyright (C) 2020 mojib wali.
|
||||
# # Copyright (C) 2020-2021 Graz University of Technology.
|
||||
# #
|
||||
# # 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
|
||||
|
||||
Reference in New Issue
Block a user