Compare commits

...

35 Commits

Author SHA1 Message Date
Mojib Wali
fa8299a032 v3.0.1 2021-05-07 11:57:20 +02:00
mb-wali
b79e0ff919 documents: adds missing documents
this closes #206
2021-05-07 11:56:06 +02:00
rekt-hard
34ecce4842 ui: display access badge
index: UIJSONSerializer is used in order to serialize the elasticsearch results
2021-05-06 09:46:25 +02:00
mb-wali
e47b2b169a feature: override deposit & deposit edit 2021-05-03 13:56:21 +02:00
Mojib Wali
58c1af28ab v3.0.0 2021-04-30 16:11:45 +02:00
mb-wali
a762615741 global: migrate to v3 2021-04-30 16:11:02 +02:00
Mojib Wali
e141afa602 v2.1.2 2021-04-30 13:52:25 +02:00
mb-wali
2b3d6bce7b dep: restrict config-tugraz to v2 release 2021-04-30 13:51:46 +02:00
Mojib Wali
abca369212 v2.1.1 2021-04-30 10:01:38 +02:00
mb-wali
5eaca4b8a3 footer: adds link to search guide 2021-04-29 15:18:26 +02:00
Mojib Wali
714305d646 global: copyrights 2021-04-26 09:21:50 +02:00
Mojib Wali
e8a8ee88b7 v2.1.0 2021-04-21 16:07:57 +02:00
mb-wali
7f5dae65ac ui: adds blueprint routes for footer links 2021-04-21 13:05:34 +02:00
Mojib Wali
8b606007cd v2.0.9 2021-04-15 09:32:22 +02:00
mb-wali
32e785cb28 bugfix: created field using old metadata field 2021-04-15 08:33:28 +02:00
rekt-hard
765c43c283 fix: blur link on click, clickable login with TUG button
closes #184 #183
2021-04-14 14:02:56 +02:00
Mojib Wali
bfe2c45b09 v2.0.8 2021-04-12 14:26:23 +02:00
Mojib Wali
d511a3d9c7 fileupload: max storage revert to default 2021-04-12 14:25:58 +02:00
rekt-hard
83fe44db8e feature: footer links 2021-04-12 14:25:39 +02:00
Mojib Wali
41bfcf0cee v2.0.7 2021-04-09 14:01:17 +02:00
Mojib Wali
bc1c9bcc9c depositform: increase the fileupload 2021-04-09 13:56:17 +02:00
Mojib Wali
ae21366bfa v2.0.6 2021-04-08 09:14:27 +02:00
Mojib Wali
9e92934451 bugfixes: configs & translations
* bugfixes: modified config vars
* refactor: text of instance message
* translations: adds new trans
* translation: refactor some german translation
* footer: adds handbook link
2021-04-08 09:13:58 +02:00
david
0df53c42fa style: translation and minor documentation 2021-04-07 10:39:57 +02:00
david
88d7125acf fix: rename, set and use env variable 2021-04-07 10:39:57 +02:00
David Eckhard
8425d410f2 feature: add test instance notification 2021-04-07 10:39:57 +02:00
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
42 changed files with 696 additions and 1396 deletions

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (C) 2020 mojib wali.
Copyright (C) 2020 Graz University of Technology.
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in

View File

@@ -33,6 +33,7 @@ recursive-include invenio_theme_tugraz *.scss
recursive-include invenio_theme_tugraz *.svg
recursive-include invenio_theme_tugraz *.less
recursive-include invenio_theme_tugraz *.ico
recursive-include invenio_theme_tugraz *.pdf
recursive-include tests *.py
recursive-include invenio_theme_tugraz *.jpg
recursive-include invenio_theme_tugraz *.gitkeep

View File

@@ -45,8 +45,8 @@ master_doc = "index"
# General information about the project.
project = u"invenio-theme-tugraz"
copyright = u"2020, mojib wali"
author = u"mojib wali"
copyright = u"2020, Graz University of Technology"
author = u"Graz University of Technology"
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
@@ -251,7 +251,7 @@ latex_documents = [
master_doc,
"invenio-theme-tugraz.tex",
u"invenio-theme-tugraz Documentation",
u"mojib wali",
u"Graz University of Technology",
"manual",
),
]

View File

@@ -1,207 +0,0 @@
import React, { Component } from "react";
import {
Button,
Card,
Icon,
Label,
Loader,
Dimmer,
Message,
} from "semantic-ui-react";
import { FieldArray } from "formik";
import { FetchDoi, MapDatacite } from "datacite-rest";
export class DoiMint extends Component {
constructor(props) {
super(props);
this.record = props.record || {};
this.configs = props.config || {};
this.metadata = this.record.metadata;
this.is_doi = false;
this.id_doi = "";
// check for existing identifiers
if (
typeof this.metadata.identifiers != "undefined" &&
this.metadata.identifiers != null &&
this.metadata.identifiers.length != null &&
this.metadata.identifiers.length > 0 &&
this.metadata.identifiers[0] != null
) {
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
this.state = {
identifiers: [],
showLoader: false,
doi_id: "",
errorMsg: "",
isError: false,
};
}
render() {
// this should fetch a new doi
var pushDoi = (form) => {
// activate the loader
this.setState({
showLoader: true,
});
// get the prefix from backend
const prefix = this.configs.datacite_prefix;
const suffix = this.configs.datacite_suffix;
if (prefix !== null && suffix !== null) {
// get mapped DOI
const mapped = MapDatacite(this.metadata, this.record.id, prefix, suffix);
const _fetchdoi = new FetchDoi("/getdoi");
// 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);
});
} else {
this.setState({
showLoader: false,
isError: true,
errorMsg: "Not configured!",
});
}
};
// get a link of dio
var doiLink = (doiId) => {
window.open(`https://doi.org/${doiId}`, "_blank");
};
return (
<Card className="actions">
<Card.Content>
<Card.Header>
<Icon name="certificate" />
Datacite DOI
</Card.Header>
<Card.Description>
<span style={{ color: "#B6B6B6" }}>
Record must be a <b>published</b> record to mint a DOI.
</span>
</Card.Description>
{this.state.isError && (
<Message negative>
<Message.Header>{this.state.errorMsg}</Message.Header>
<p>Please contact Repository supporters!</p>
</Message>
)}
{/* when the Component is rendered */}
{!this.is_doi && (
<FieldArray name="metadata.identifiers">
{(fieldArrayProps) => {
const { form } = fieldArrayProps;
return (
<div
style={{
marginTop: "10px",
textAlign: "center",
}}
>
<Button
compact
className="save-button"
disabled={!this.record.is_published}
as={"label"}
color="green"
size="large"
onClick={() => pushDoi(form)}
>
<Icon name="certificate" />
Get DOI Now!
</Button>
{this.state.showLoader && (
<Dimmer active inverted>
<Loader inverted>Loading...</Loader>
</Dimmer>
)}
</div>
);
}}
</FieldArray>
)}
{this.is_doi && (
<div
style={{
textAlign: "center",
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",
}}
size="large"
as="a"
color="blue"
onClick={() => doiLink(this.state.doi_id || this.id_doi)}
>
<strong>DOI: </strong>
<Label.Detail>{this.state.doi_id || this.id_doi}</Label.Detail>
</Label>
</div>
)}
</Card.Content>
</Card>
);
}
}

View File

@@ -1,47 +0,0 @@
// 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

@@ -7,43 +7,33 @@
// under the terms of the MIT License; see LICENSE file for more details.
import _get from "lodash/get";
import React, { Component, createRef } from "react";
import {
Button,
Card,
Container,
Grid,
Icon,
Ref,
Sticky,
} from "semantic-ui-react";
import React, { Component, createRef, Fragment } from "react";
import {
AccessRightField,
ComingSoonField,
CreatibutorsField,
DatesField,
DepositFormApp,
FormFeedback,
DeleteButton,
DepositFormApp,
DepositFormTitle,
DescriptionsField,
FileUploader,
FundingField,
FormFeedback,
IdentifiersField,
LanguagesField,
PublishButton,
LicenseField,
PIDField,
PreviewButton,
PublicationDateField,
PublishButton,
PublisherField,
RelatedWorksField,
ResourceTypeField,
SaveButton,
SubjectsField,
TitlesField,
RelatedWorksField,
VersionField,
LicenseField,
} from "react-invenio-deposit";
import { AccordionField } from "react-invenio-forms";
import { DoiMint } from "./DoiMint";
import { PublisherField } from "./PublisherField";
import { Card, Container, Divider, Grid, Ref, Sticky } from "semantic-ui-react";
export class RDMDepositForm extends Component {
constructor(props) {
@@ -161,7 +151,7 @@ export class RDMDepositForm extends Component {
],
},
related_identifiers: {
identifiers: {
resource_type: this.config.vocabularies.resource_type,
scheme: [
{ text: "ARK", value: "ark" },
@@ -312,28 +302,33 @@ export class RDMDepositForm extends Component {
}}
/>
</AccordionField>
{/**TODO: uncomment to use IdentifiersField*/}
{/* <AccordionField
fieldPath=""
active={true}
label={"Files"}
ui={this.accordionStyle}
>
<IdentifiersField />
<ComingSoonField
fieldPath="metadata.identifiers"
label="Identifier(s)"
labelIcon="barcode"
/>
<br />
</AccordionField> */}
<AccordionField
fieldPath=""
active={true}
label={"Basic Information"}
label={"Basic information"}
ui={this.accordionStyle}
>
{this.config.pids.map((pid) => (
<Fragment key={pid.scheme}>
<PIDField
btnLabelGetPID={pid.btn_label_get_pid}
canBeManaged={pid.can_be_managed}
canBeUnmanaged={pid.can_be_unmanaged}
fieldPath={`pids.${pid.scheme}`}
isEditingPublishedRecord={
this.props.record.is_published === true // is_published is `null` at first upload
}
managedHelpText={pid.managed_help_text}
pidLabel={pid.pid_label}
pidPlaceholder={pid.pid_placeholder}
pidType={pid.scheme}
unmanagedHelpText={pid.unmanaged_help_text}
/>
<Divider />
</Fragment>
))}
<ResourceTypeField
options={this.vocabularies.metadata.resource_type}
required
@@ -397,7 +392,7 @@ export class RDMDepositForm extends Component {
<AccordionField
fieldPath=""
active={true}
label={"Recommended Information"}
label={"Recommended information"}
ui={this.accordionStyle}
>
<CreatibutorsField
@@ -445,7 +440,7 @@ export class RDMDepositForm extends Component {
/>
<DatesField options={this.vocabularies.metadata.dates} />
<VersionField />
<PublisherField required />
<PublisherField />
<br />
</AccordionField>
{/**TODO: uncomment to use FundingField*/}
@@ -465,6 +460,22 @@ export class RDMDepositForm extends Component {
<br />
</AccordionField> */}
<AccordionField
fieldPath=""
active={true}
label={"Alternate identifiers"}
ui={this.accordionStyle}
>
<IdentifiersField
fieldPath="metadata.identifiers"
label="Alternate identifier(s)"
labelIcon="barcode"
schemeOptions={
this.vocabularies.metadata.identifiers.scheme
}
/>
</AccordionField>
<AccordionField
fieldPath=""
active={true}
@@ -472,7 +483,7 @@ export class RDMDepositForm extends Component {
ui={this.accordionStyle}
>
<RelatedWorksField
options={this.vocabularies.metadata.related_identifiers}
options={this.vocabularies.metadata.identifiers}
/>
<br />
</AccordionField>
@@ -482,7 +493,10 @@ export class RDMDepositForm extends Component {
<Sticky context={this.sidebarRef} offset={20}>
<Card className="actions">
<Card.Content>
<SaveButton fluid className="save-button" />
<div className="sidebar-buttons">
<SaveButton fluid className="save-button" />
<PreviewButton fluid className="preview-button" />
</div>
<PublishButton fluid />
</Card.Content>
</Card>
@@ -499,15 +513,9 @@ export class RDMDepositForm extends Component {
</Card>
<AccessRightField
label={"Protection"}
label={"Visibility"}
labelIcon={"shield"}
/>
{this.config.data_cite && (
<DoiMint
record={this.props.record}
config={this.config.data_cite}
/>
)}
</Sticky>
</Grid.Column>
</Ref>

View File

@@ -1,324 +0,0 @@
/*
* Copyright (C) 2020 CERN.
* Copyright (C) 2020 Northwestern University.
* Copyright (C) 2020 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.
*
* origin: invenio_app_rdm/search/components.js
*/
import React, { useState } from "react";
import { Card, Item, Input, Label, Button, Grid, Checkbox, List, } from "semantic-ui-react";
import { BucketAggregation, Toggle } from "react-searchkit";
import _ from "lodash";
import _truncate from "lodash/truncate";
import Overridable from "react-overridable";
import { SearchBar } from "@js/invenio_search_ui/components";
export const RDMRecordResultsListItem = ({ result, index }) => {
const description = _.get(result, "metadata.description", "No description");
const version = _.get(result, "metadata.version", "");
const creators = _.get(result, "metadata.creators", []);
const title = _.get(result, "metadata.title", "No title");
const subjects = _.get(result, "metadata.subjects", null);
const rights = _.get(result, "metadata.rights", null)
const publicationDate = _.get(result, "ui.publication_date_l10n_long", "No publication date found");
const createdDate = _.get(result, "ui.created_date_l10n_long", "No creation date found.");
const resourceType = _.get(result, "ui.resource_type", "No resource type");
const access = _.get(result, "ui.access_right.title", "No access rights");
const accessRightCategory = _.get(result, "ui.access_right.category", "closed");
const accessRightIcon = _.get(result, "ui.access_right.icon", "closed");
const accessRight = {type: access, category: accessRightCategory, icon: accessRightIcon, rights};
const href = `/records/${result.id}`;
return (
<Item key={index}>
<Item.Content>
<div className="badges">
<Label className="record-version">
{publicationDate} {version ? `(${version})` : null}
</Label>
<Label className="teal">
{resourceType}
</Label>
</div>
<Item.Header href={href}>{title}</Item.Header>
<Creators creators={creators}/>
<Item.Description href={href}>
{_truncate(description.replace(/(<([^>]+)>)/ig, ''), { length: 350 })}
</Item.Description>
<Footer subjects={subjects} createdDate={createdDate} accessRight={accessRight}/>
</Item.Content>
</Item>
);
};
const Creators = ({creators}) => {
const creatorTags = creators.map((creator, index) => {
return <Creator key={index} creator={creator}/>;
});
return (
<div className="creators">
{creatorTags}
</div>
);
};
const Identifiers = ({creator}) => {
return (
<div className="identifiers">
{_.isObject(creator.identifiers) && creator.identifiers.hasOwnProperty("orcid") &&
<Orcid creator={creator}/>
}
</div>
);
};
const Orcid = ({creator}) => {
const href = `https://orcid.org/${creator.identifiers.orcid}`
return (
<a href={href} target="_blank">
<img className="inline-orcid" src="/static/extra/orcid.png"/>
</a>
);
};
const Creator = ({creator}) => {
return (
<div className="creator">
<Identifiers creator={creator}/>
<span className="text-muted">{creator.person_or_org.name}</span>
</div>
);
};
const Footer = ({subjects, createdDate, accessRight}) => {
return (
<Item.Extra>
<div className="left floated column">
{subjects && subjects.map((subject, index) => (
<Label key={index} size="tiny">
{subject.subject}
</Label>
))}
{createdDate && (
<div>
<small>
Uploaded on <span>{createdDate}</span>
</small>
</div>
)}
</div>
<div className="right floated column">
<span className={`ui access-right ${accessRight.category}`}>
<i className={`icon ${accessRight.icon}`}></i>
{accessRight.type} {accessRight.rights && accessRight.rights.map((right, index) => (
<a key={index} href={right.uri}>({right.identifier})</a>
))}
</span>
</div>
</Item.Extra>
);
};
/**
* ATTENTION:
* The following classes are only here because it is not easily possible to
* import it from the original module.
* If there is in the future a possibility to import following classes from
* invenio_app_rdm then this should be done!
*/
export const RDMRecordResultsGridItem = ({ result, index }) => {
const description = _.get(result, "metadata.description", "No description");
return (
<Card fluid key={index} href={`/records/${result.pid}`}>
<Card.Content>
<Card.Header>{result.metadata.title}</Card.Header>
<Card.Description>
{_truncate(description, { length: 200 })}
</Card.Description>
</Card.Content>
</Card>
);
};
export const RDMRecordSearchBarContainer = () => {
return (
<Overridable id={"SearchApp.searchbar"}>
<SearchBar />
</Overridable>
);
};
export const RDMRecordSearchBarElement = ({
placeholder: passedPlaceholder,
queryString,
onInputChange,
executeSearch,
}) => {
const placeholder = passedPlaceholder || "Search";
const onBtnSearchClick = () => {
executeSearch();
};
const onKeyPress = (event) => {
if (event.key === "Enter") {
executeSearch();
}
};
return (
<Input
action={{
icon: "search",
onClick: onBtnSearchClick,
className: "search",
}}
placeholder={placeholder}
onChange={(event, { value }) => {
onInputChange(value);
}}
value={queryString}
onKeyPress={onKeyPress}
/>
);
};
export const RDMRecordFacetsValues = ({
bucket,
isSelected,
onFilterClicked,
getChildAggCmps,
}) => {
const childAggCmps = getChildAggCmps(bucket);
const [isActive, setisActive] = useState(false);
const hasChildren = childAggCmps && childAggCmps.props.buckets.length > 0;
return (
<List.Item key={bucket.key}>
<div
className={`title ${hasChildren ? "" : "facet-subtitle"} ${
isActive ? "active" : ""
}`}
>
<List.Content floated="right">
<Label circular>{bucket.doc_count}</Label>
</List.Content>
{hasChildren ? (
<i
className={`angle ${isActive ? "down" : "right"} icon`}
onClick={() => setisActive(!isActive)}
></i>
) : null}
<Checkbox
label={bucket.label}
value={bucket.key}
onClick={() => onFilterClicked(bucket.key)}
checked={isSelected}
/>
</div>
<div className={`content facet-content ${isActive ? "active" : ""}`}>
{childAggCmps}
</div>
</List.Item>
);
};
const SearchHelpLinks = () => {
return (
<Overridable id={"RdmSearch.SearchHelpLinks"}>
<Grid className="padded-small">
<Grid.Row className="no-padded">
<Grid.Column>
<Card className="borderless-facet">
<Card.Content>
<a>Advanced search</a>
</Card.Content>
</Card>
</Grid.Column>
</Grid.Row>
<Grid.Row className="no-padded">
<Grid.Column>
<Card className="borderless-facet">
<Card.Content>
<a>Search guide</a>
</Card.Content>
</Card>
</Grid.Column>
</Grid.Row>
</Grid>
</Overridable>
);
};
export const RDMRecordFacets = ({ aggs, currentResultsState }) => {
return (
<>
<Toggle
title="Versions"
label="View all versions"
filterValue={["all_versions", "true"]}
/>
{aggs.map((agg) => {
return (
<div key={agg.title} className="ui accordion">
<BucketAggregation title={agg.title} agg={agg} />
</div>
);
})}
<SearchHelpLinks />
</>
);
};
export const RDMBucketAggregationElement = ({ title, containerCmp }) => {
return (
<Card className="borderless-facet">
<Card.Content>
<Card.Header>{title}</Card.Header>
</Card.Content>
<Card.Content>{containerCmp}</Card.Content>
</Card>
);
};
export const RDMToggleComponent = ({
updateQueryFilters,
userSelectionFilters,
filterValue,
label,
title,
isChecked,
}) => {
const _isChecked = (userSelectionFilters) => {
const isFilterActive =
userSelectionFilters.filter((filter) => filter[0] === filterValue[0])
.length > 0;
return isFilterActive;
};
const onToggleClicked = () => {
updateQueryFilters(filterValue);
};
var isChecked = _isChecked(userSelectionFilters);
return (
<Card className="borderless-facet">
<Card.Content>
<Card.Header>{title}</Card.Header>
</Card.Content>
<Card.Content>
<Checkbox
toggle
label={label}
onClick={onToggleClicked}
checked={isChecked}
/>
</Card.Content>
</Card>
);
};

View File

@@ -1,30 +0,0 @@
/*
* Copyright (C) 2020 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.
*/
import { defaultComponents, createSearchAppInit } from "@js/invenio_search_ui";
import {
RDMRecordResultsListItem,
RDMBucketAggregationElement,
RDMRecordFacets,
RDMRecordFacetsValues,
RDMRecordResultsGridItem,
RDMRecordSearchBarContainer,
RDMRecordSearchBarElement,
RDMToggleComponent,
} from "./components";
const initSearchApp = createSearchAppInit({
"ResultsList.item": RDMRecordResultsListItem,
"BucketAggregation.element": RDMBucketAggregationElement,
"BucketAggregationValues.element": RDMRecordFacetsValues,
"ResultsGrid.item": RDMRecordResultsGridItem,
"SearchApp.facets": RDMRecordFacets,
"SearchApp.searchbarContainer": RDMRecordSearchBarContainer,
"SearchBar.element": RDMRecordSearchBarElement,
"SearchFilters.ToggleComponent": RDMToggleComponent,
});

View File

@@ -1,6 +1,12 @@
import $ from 'jquery';
import 'semantic-ui-css';
// called on document ready
$(function() {
importZammadScript();
});
function importZammadScript() {
let scriptNode = document.createElement("hidden"); //needed for zammad script
scriptNode.id = "zammad_form_script";
scriptNode.src = "https://ub-support.tugraz.at/assets/form/form.js";
@@ -15,7 +21,15 @@ $(function() {
modal: true
});
});
});
}
// used for sticky test instance notification
$('.ui.sticky.test-instance')
.sticky({
context: 'body'
})
;
export function toggleVisibility(id) {
var element = document.getElementById(id);

View File

@@ -30,9 +30,19 @@
text-decoration: none;
color: @footerGrey;
&:hover, &:focus {
// :focus-visible activates on keyboard only
&:hover, &:focus:focus-visible {
color: @primaryLink;
background-color: @primaryLinkHoverBackground;
i.icon.download {
color: @tugrazRed;
}
}
// remove blue focus outline if clicked with mouse
&:focus:not(:focus-visible) {
outline-style: none;
}
}
}

View File

@@ -247,3 +247,10 @@ svg:not(:root) {
span.home-inline{
white-space: nowrap;
}
.test-instance{
text-align: center;
background-color: @notificationBackground;
border: solid @notificationBorder 1px;
z-index: 100000;
}

View File

@@ -31,4 +31,5 @@
color: inherit;
text-decoration: none;
transition: background-color 0.15s ease 0s, color 0.15s ease 0s;
outline: none;
}

View File

@@ -51,7 +51,7 @@
//account (signin, signup) specific
// account (signin, signup) specific
@primaryFormAccounts : #fff;
@formAccountsInputPlaceholder : silver;
@fieldInputSelectionBackground: #50a2ce;
@@ -67,3 +67,7 @@
// input
@outlineColor: #85B7D9;
// notification
@notificationBackground: #fffaf3;
@notificationBorder: #e2d5c2;

View File

@@ -17,7 +17,9 @@ INVENIO_THEME_TUGRAZ_DEFAULT_VALUE = _("TU Graz Repository")
INVENIO_THEME_TUGRAZ_BASE_TEMPLATE = "invenio_theme_tugraz/base.html"
"""TU Graz Default base template"""
INVENIO_THEME_TUGRAZ_ACCOUNT_BASE = "invenio_theme_tugraz/accounts/accounts_base.html"
INVENIO_THEME_TUGRAZ_ACCOUNT_BASE = (
"invenio_theme_tugraz/accounts/accounts_base.html"
)
"""TU Graz Default account base template"""
INVENIO_THEME_TUGRAZ_ICON = "images/icon_use.png"
@@ -26,9 +28,16 @@ INVENIO_THEME_TUGRAZ_ICON = "images/icon_use.png"
INVENIO_THEME_TUGRAZ_LOGIN_IMG = "images/login_logo.png"
"""TU Logo for forms"""
INVENIO_THEME_TUGRAZ_CONTACT_FORM = False
THEME_TUGRAZ_CONTACT_FORM = False
"""Enable/Disable Contact form."""
THEME_TUGRAZ_PRODUCTION = False
"""Production environment.
Can also be set as an environment variable in a .env file. Then the name
has to be 'INVENIO_THEME_TUGRAZ_PRODUCTION'.
"""
# Invenio-theme
# ============
# See https://invenio-theme.readthedocs.io/en/latest/configuration.html
@@ -67,7 +76,9 @@ THEME_SITENAME = _("Repository")
SECURITY_LOGIN_USER_TEMPLATE = "invenio_theme_tugraz/accounts/login_user.html"
"""Login template"""
SECURITY_REGISTER_USER_TEMPLATE = "invenio_theme_tugraz/accounts/register_user.html"
SECURITY_REGISTER_USER_TEMPLATE = (
"invenio_theme_tugraz/accounts/register_user.html"
)
"""Sigup template"""
# Invenio-I18N
@@ -108,14 +119,7 @@ DEPOSITS_HEADER_TEMPLATE = "invenio_theme_tugraz/header.html"
TUG_ROUTES = {
"index": "/",
"comingsoon": "/comingsoon",
"deposit_create": "/uploads/new",
"deposit_edit": "/uploads/<pid_value>",
"getdoi": "/getdoi",
"record_detail": "/records/<pid_value>",
"guide": "/guide",
"terms": "/terms",
"gdpr": "/gdpr",
}
# Datacite
# INVENIO_DATACITE_URL = ""
# INVENIO_DATACITE_UNAME = ""
# INVENIO_DATACITE_PASS = "password"
# INVENIO_DATACITE_PREFIX = ""

View File

@@ -0,0 +1,55 @@
# -*- coding: utf-8 -*-
#
# Copyright (C) 2019-2021 CERN.
# Copyright (C) 2019-2021 Northwestern University.
# Copyright (C) 2021 TU Wien.
# Copyright (C) 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.
# https://github.com/inveniosoftware/invenio-app-rdm/blob/master/invenio_app_rdm/records_ui/views/deposits.py
"""Routes for record-related pages provided by Invenio-App-RDM."""
from flask import render_template
from flask_login import login_required
from invenio_app_rdm.records_ui.utils import set_default_value
from invenio_app_rdm.records_ui.views.decorators import pass_draft, pass_draft_files
from invenio_app_rdm.records_ui.views.deposits import (
get_form_config,
get_search_url,
new_record,
)
from invenio_rdm_records.resources.serializers import UIJSONSerializer
@login_required
def deposit_create():
"""Create a new deposit."""
return render_template(
"invenio_theme_tugraz/deposit/deposit.html",
forms_config=get_form_config(createUrl=("/api/records")),
searchbar_config=dict(searchUrl=get_search_url()),
record=new_record(),
files=dict(
default_preview=None, entries=[], links={}
),
)
@login_required
@pass_draft
@pass_draft_files
def deposit_edit(draft=None, draft_files=None, pid_value=None):
"""Edit an existing deposit."""
serializer = UIJSONSerializer()
record = serializer.serialize_object_to_dict(draft.to_dict())
return render_template(
"invenio_theme_tugraz/deposit/deposit.html",
forms_config=get_form_config(apiUrl=f"/api/records/{pid_value}/draft"),
record=record,
files=draft_files.to_dict(),
searchbar_config=dict(searchUrl=get_search_url()),
permissions=draft.has_permissions_to(['new_version'])
)

View File

@@ -9,7 +9,8 @@
"""invenio module for TUGRAZ theme."""
from . import config
from .views import deposit_create, deposit_edit, index, record_detail
from .deposits import deposit_create, deposit_edit
from .views import index, record_detail
class InvenioThemeTugraz(object):
@@ -25,14 +26,14 @@ class InvenioThemeTugraz(object):
# add index route rule
# https://flask.palletsprojects.com/en/1.1.x/api/#flask.Flask.add_url_rule
app.add_url_rule("/", "index", index)
app.add_url_rule("/records/<pid_value>", "record_detail", record_detail)
app.add_url_rule("/uploads/new", "deposit_create", deposit_create)
app.add_url_rule("/uploads/<pid_value>", "deposit_edit", deposit_edit)
app.add_url_rule("/records/<pid_value>", "record_detail", record_detail)
self.init_config(app)
app.extensions["invenio-theme-tugraz"] = self
def init_config(self, app):
"""Initialize configuration."""
for k in dir(config):
if k.startswith("INVENIO_THEME_TUGRAZ_"):
if k.startswith("INVENIO_THEME_TUGRAZ_") or k.startswith("THEME_TUGRAZ_"):
app.config.setdefault(k, getattr(config, k))

View File

@@ -23,4 +23,4 @@ class FrontpageRecordsSearch(RecordsSearch):
index = "rdmrecords-records"
default_filter = Q(
"query_string", query=(
"access.record:public" "AND versions.is_latest:true"))
"access.record:public " "AND versions.is_latest:true"))

View File

@@ -56,6 +56,12 @@
{%- endblock head %}
</head>
<body ng-csp {% if body_css_classes %} class="{{ body_css_classes|join(' ') }}"{% endif %}{% if g.ln %} lang="{{ g.ln.split('_', 1)[0]|safe }}"{% if rtl_direction %} {{ rtl_direction|safe }}{% endif %}{% endif %} itemscope itemtype="http://schema.org/WebPage" data-spy="scroll" data-target=".scrollspy-target">
{% if not config.THEME_TUGRAZ_PRODUCTION %}
<div class="ui sticky test-instance">
<h4>{{_ ("Test Instance") }}</h4>
<p>{{_ ("This is the test instance of the TU Graz Repository.") }}</p>
</div>
{% endif %}
{%- block body %}
{%- block browserupgrade %}
<!--[if lt IE 8]>

View File

@@ -25,12 +25,10 @@
<div class="ui divider"></div>
<!--Log in with SSO-->
{%- if config.INVENIO_CONFIG_TUGRAZ_SHIBBOLETH %}
<div class="login-page-button ui fluid large button">
<a href="{{ url_for('sso_saml.sso', idp='idp') }}" class="inverted tiny image label">
{% trans type='TUGRAZ' %} Log in with {{ type }}{% endtrans %}
<img src="{{ url_for('static', filename=config.INVENIO_THEME_TUGRAZ_ICON)}}" height="20px" />
</a>
</div>
<a href="{{ url_for('sso_saml.sso', idp='idp') }}" class="login-page-button ui fluid large button">
{% trans type='TUGRAZ' %} Log in with {{ type }}{% endtrans %}
<img src="{{ url_for('static', filename=config.INVENIO_THEME_TUGRAZ_ICON)}}" height="20px" />
</a>
<div class="spacer-long"></div>
<div class="ui inverted horizontal divider"><span class="text-color">{{_ ("Or")}}</span></div>
{%- endif %}

View File

@@ -1,7 +1,5 @@
{#
Copyright (C) 2020 TUGRAZ
Copyright (C) 2020 mojib wali
Copyright (C) 2020 Nikita Lvov
Copyright (C) 2020 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
@@ -46,11 +44,10 @@
<!--Sigup with SSO-->
{%- if config.INVENIO_CONFIG_TUGRAZ_SHIBBOLETH %}
<div class="ui divider"></div>
<div class="login-page-button ui fluid large button">
<a href="{{ url_for('sso_saml.sso', idp='idp') }}" class="inverted tiny image label">
<span style="font-size: 18px;">{{ _('Sign up with TUGRAZ ') }}</span>
<img src="{{ url_for('static', filename=config.INVENIO_THEME_TUGRAZ_ICON)}}" height="20px" />
</a>
<a href="{{ url_for('sso_saml.sso', idp='idp') }}" class="login-page-button ui fluid large button">
<span style="font-size: 18px;">{{ _('Sign up with TUGRAZ ') }}</span>
<img src="{{ url_for('static', filename=config.INVENIO_THEME_TUGRAZ_ICON)}}" height="20px" />
</a>
</div>
<div class="ui inverted horizontal divider"><span class="text-color">{{_ ("Or")}}</span></div>
{%- endif %}

View File

@@ -3,27 +3,33 @@
Copyright (C) 2020 Northwestern University.
Copyright (C) 2021 Graz University of Technology.
Invenio-them-tugraz is free software; you can redistribute it and/or modify it
Invenio App RDM is free software; you can redistribute it and/or modify it
under the terms of the MIT License; see LICENSE file for more details.
#}
{%- if not record.is_published and record.versions.index and record.versions.index > 1%}
{%- set title = _("New version") %}
{%- elif not record.is_published %}
{%- set title = _("New upload") %}
{% else %}
{%- set title = _("Edit upload") %}
{%- endif %}
{%- extends config.BASE_TEMPLATE %}
{%- block page_body %}
{%- if record %}
<input id="deposits-record" type="hidden" name="deposits-record" value='{{record | tojson }}'></input>
{%- endif %}
{%- if files %}
<input id="deposits-record-files" type="hidden" name="deposits-record-files" value='{{files | tojson }}'></input>
{%- endif %}
{%- if forms_config %}
<input type="hidden" name="deposits-config" value='{{forms_config | tojson }}'></input>
{%- endif %}
{%- if permissions %}
<input id="deposits-record-permissions" type="hidden" name="deposits-record-permissions" value='{{permissions | tojson }}'></input>
{%- endif %}
<div id="deposit-form"></div>
{%- endblock page_body %}
{%- if record %}
<input id="deposits-record" type="hidden" name="deposits-record" value='{{record | tojson }}'></input>
{%- endif %}
{%- if files %}
<input id="deposits-record-files" type="hidden" name="deposits-record-files" value='{{files | tojson }}'></input>
{%- endif %}
{%- if forms_config %}
<input type="hidden" name="deposits-config" value='{{forms_config | tojson }}'></input>
{%- endif %}
{%- if permissions %}
<input id="deposits-record-permissions" type="hidden" name="deposits-record-permissions" value='{{permissions | tojson }}'></input>
{%- endif %}
<div id="deposit-form"></div>
{%- endblock page_body %}
{%- block javascript %}
{{ super() }}

View File

@@ -1,41 +0,0 @@
{#
Copyright (C) 2020 CERN.
Copyright (C) 2020 Northwestern University.
Copyright (C) 2020 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.
origin: invenio-rdm-records/doi.html
#}
{%- set id_doi = record.identifiers | doi_identifier %}
<div>
<div class="get-badge"
data-toggle="tooltip"
data-placement="bottom"
style="cursor: pointer;"
title="Get the DOI badge!">
<img id="record-doi-badge"
data-target="[data-modal='{{ id_doi }}']"
src="{{ url_for('invenio_formatter_badges.badge', title='DOI', value=id_doi, ext='svg') }}"
alt="{{ id_doi }}">
</div>
<div id="doi-modal" class="ui modal fade badge-modal" data-modal="{{ id_doi }}">
<h2 class="header">
{{_ ("RDM DOI Badge")}}
</h2>
<div class="content">
<h4><small>{{_ ("DOI")}}</small></h4>
<h4><pre>{{ id_doi }}</pre></h4>
{% from "semantic-ui/invenio_formatter/macros/badges.html" import badges_formats_list %}
{{ badges_formats_list(url_for('invenio_formatter_badges.badge', title='DOI', value=id_doi, ext='svg',
_external=True, _scheme='https'), id_doi | pid_url(scheme='doi')) }}
</div>
</div>
</div>

View File

@@ -1,9 +1,9 @@
{#
Copyright (C) 2020-2021 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
details.
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.
#}
{%- block css %}
@@ -12,7 +12,7 @@
{%- endblock %}
{%- block javascript %}
{{ webpack['invenio-theme-tugraz-js.js'] }}
{{ webpack['invenio-theme-tugraz-js.js'] }}
{%- endblock javascript %}
<div class="spacer"></div>
@@ -21,78 +21,96 @@
<div class="ui container">
<div class="ui grid">
<div class="doubling four column row">
<div class="ui grid">
<div class="doubling four column row">
<div class="column">
<div class="column">
<h2>{{_ ("Repository")}}</h2>
<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') }}">
<h2>{{_ ("Repository")}}</h2>
<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.guide') }}"
title="Quick guide" target="_blank">
{{_ ("Reference Guide")}} <i class="download icon"></i>
</a>
<br>
<a href="{{ url_for('invenio_app_rdm.help_search') }}"
title="Search guide">
{{_ ("Search Guide")}}<i class="angle right icon"></i>
</a>
<br>
<a href="{{ url_for('invenio_theme_tugraz.gdpr') }}"
title="General Data Protection Rights" target="_blank">
{{_ ("Data Protection")}} <i class="download icon"></i>
</a>
<br>
<a href="{{ url_for('invenio_theme_tugraz.terms') }}"
title="Terms and Conditions" target="_blank">
{{_ ("Terms and Conditions")}} <i class="download icon"></i>
</a>
<br>
<!-- <a href="{{ url_for('invenio_theme_tugraz.comingsoon') }}">
{{_ ("Impressum")}}<i class="angle right icon"></i>
</a>
<br>
<a href="{{ url_for('invenio_theme_tugraz.comingsoon') }}">
{{_ ("Data protection")}}<i class="angle right icon"></i>
</a>
<br>
<a href="{{ url_for('invenio_theme_tugraz.comingsoon') }}">
{{_ ("Feedback")}}<i class="angle right icon"></i>
</a> -->
</p>
</a>
<br>
<a href="{{ url_for('invenio_theme_tugraz.comingsoon') }}">
{{_ ("Feedback")}}<i class="angle right icon"></i>
</a> -->
</p>
</div>
</div>
<div class="column">
<div class="column">
<h2>{{_ ("Features")}}</h2>
<h2>{{_ ("Features")}}</h2>
<h4>{{_ ("Scalability")}}</h4>
<h4>{{_ ("Scalability")}}</h4>
<h4>{{_ ("Institutional integration")}}</h4>
<h4>{{_ ("Institutional integration")}}</h4>
<h4>{{_ ("Next Generation Repository")}}
</h4>
<h4>{{_ ("Next Generation Repository")}}
</h4>
<h4>{{_ ("Repository Profiles")}}</h4>
<h4>{{_ ("Repository Profiles")}}</h4>
<h4>{{_ ("Resilient")}}</h4>
<h4>{{_ ("Resilient")}}</h4>
</div>
</div>
<div class="column">
<div class="column">
<h2>{{_ ("Connected Services")}}</h2>
<p class="bodytext">
<h2>{{_ ("Connected Services")}}</h2>
<p class="bodytext">
<a href="https://pure.tugraz.at" title="PURE" target="_blank">
{{_ ("PURE")}} <i class="external alternate icon"></i></a><br>
<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" target="_blank">
{{_ ("CampusOnline")}} <i class="external alternate icon"></i></a><br>
<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="Research Data Management" target="_blank">
{{_ ("Research Data Management")}} <i class="external alternate icon"></i></a><br>
</p>
</p>
</div>
</div>
<div class="column">
<h2>{{_ ("Accessibility")}}</h2>
<p class="bodytext">{{_ ("Tipp:")}}<br> {{_ ("Use Ctrl + and Crtl -")}}<br> {{_ ("to change the font size.")}}</p>
<div class="column">
<h2>{{_ ("Accessibility")}}</h2>
<p class="bodytext">{{_ ("Tipp:")}}<br> {{_ ("Use Ctrl + and Crtl -")}}<br> {{_ ("to change the font size.")}}
</p>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -6,9 +6,14 @@
details.
#}
{% if not config.THEME_TUGRAZ_PRODUCTION %}
<div class="ui sticky test-instance">
<h4>{{_ ("Test Instance") }}</h4>
<p>{{_ ("This is the test instance of the TU Graz Repository.") }}</p>
</div>
{% endif %}
<header>
{%- block navbar %}
<nav>
{%- block navbar_header %}
@@ -35,17 +40,11 @@
</span>
</a>
</div>
<!--TODO: uncomment this once translation is on place-->
<!-- {%- for item in current_menu.submenu('main').children|sort(attribute='order') if item.visible recursive %}
{%- for item in current_menu.submenu('main').children|sort(attribute='order') if item.visible recursive %}
<div class="two wide column main-menu-entry">
<a href="{{ item.url }}">{{ item.text|safe }}</a>
</div>
{%- endfor %} -->
<!--TODO: remove this once above is uncommented-->
<div class="two wide column main-menu-entry">
<a href="{{url_for('invenio_app_rdm_records.deposit_search')}}" class="no-decoration">{{_ ("Uploads")}}</a>
<a href="{{ item.url }}" class="no-decoration">{{ item.text|safe }}</a>
</div>
{%- endfor %}
</div>
<div id="margin-divider" class="ui divider main-menu-underline-line">

View File

@@ -49,7 +49,7 @@
{% endif %}
{%- for r in records %}
{%- set creation_date = r._created|from_isodatetime -%}
{%- set creation_date = r.created|from_isodatetime -%}
{%- set record_url = url_for('invenio_app_rdm_records.record_detail', pid_value=r.id) %}
<article>
@@ -67,6 +67,11 @@
{{r.metadata.resource_type | cast_to_dict | vocabulary_title('resource_type') }}
</span>
<span class="ui label small access-status {{ r.ui.access_status.id }}" data-tooltip="{{ r.ui.access_status.description_l10n }}" data-inverted="">
{% if r.ui.access_status.icon %}<i class="icon {{ r.ui.access_status.icon }}"></i>{% endif %}
{{ r.ui.access_status.title_l10n }}
</span>
<span class="label record-version">
<!--TODO: add subtype--->
</span>
@@ -134,7 +139,7 @@
<!--contact us-->
<div class="ui segment" style="padding-bottom: 10px;">
<h4>{{_ ("Need help?")}}</h4>
{%- if config.INVENIO_THEME_TUGRAZ_CONTACT_FORM %}
{%- if config.THEME_TUGRAZ_CONTACT_FORM %}
<div style="padding-bottom: 10px;">
<a id="feedback-form" class="fluid ui button">
{{_ ("Contact us")}}

View File

@@ -1,153 +1,205 @@
{#
Copyright (C) 2020-2021 CERN.
Copyright (C) 2020 Northwestern University.
Copyright (C) 2021 TU Wien.
Copyright (C) 2021 Graz University of Technology.
Copyright (C) 2020-2021 CERN.
Copyright (C) 2020-2021 Northwestern University.
Copyright (C) 2021 TU Wien.
Copyright (C) 2021 Graz University of Technology.
Invenio RDM Records is free software; you can redistribute it and/or modify
it under the terms of the MIT License; see LICENSE file for more details.
#}
Invenio RDM Records is free software; you can redistribute it and/or modify
it under the terms of the MIT License; see LICENSE file for more details.
#}
{%- extends config.BASE_TEMPLATE %}
{%- extends config.BASE_TEMPLATE %}
{%- from "invenio_app_rdm/records/macros/files.html" import file_list_box, preview_file_box %}
{%- from "invenio_app_rdm/records/macros/detail.html" import show_detail %}
{%- from "invenio_app_rdm/records/macros/files.html" import file_list_box, preview_file_box %}
{%- from "invenio_app_rdm/records/macros/detail.html" import show_detail %}
{%- set title = record.metadata.title -%}
{%- set metadata = record.metadata %}
{%- set title = record.metadata.title -%}
{%- set metadata = record.metadata %}
{%- block page_body %}
<div class="banners">
{% if permissions is defined and permissions.can_edit %}
<div class="ui warning flashed top-attached manage message">
<div class="ui container">
<div id="recordManagement" data-record='{{ record | tojson }}' data-permissions='{{ permissions | tojson }}'></div>
</div>
</div>
{% 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>
{%- block page_body %}
<div class="banners">
{% if is_preview %}
<div class="ui info flashed top-attached manage message">
<div class="ui container">
<div class="ui relaxed grid">
<div class="column">
<div class="row">
<div class="header">
<i class="eye icon"></i> Preview
</div>
<p>
{% if record.is_published %}
You are previewing changes that have not yet been published.
{% endif %}
{% if not record.is_published and record.versions.index == 1 %}
You are previewing a new record that has not yet been published.
{% endif %}
{% if not record.is_published and record.versions.index > 1 %}
You are previewing a new record version that has not yet been published.
{% endif %}
</p>
</div>
</div>
</div>
</div>
{% endif %}
</div>
{% endif %}
{% if permissions is defined and permissions.can_edit and not is_preview %}
<div class="ui warning flashed top-attached manage message">
<div class="ui container">
<div id="recordManagement" data-record='{{ record | tojson }}' data-permissions='{{ permissions | tojson }}'></div>
</div>
</div>
{% endif %}
{% if (not record.versions.is_latest and not is_preview) or (is_preview and not record.versions.is_latest_draft) %}
<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 relaxed grid">
<div class="two column row top-padded">
<div class="eleven wide column">
{%- block record_body -%}
{%- block record_header -%}
<div class="ui grid middle aligned">
<div class="two column row">
<div class="left floated left aligned column">
<span class="ui" title="Publication date">{{ record.ui.publication_date_l10n_long }}</span>
<span class="label text-muted"> | Version {{ record.ui.version }}</span>
</div>
<div class="right floated right aligned column">
<span class="ui label small grey">{{ record.ui.resource_type }}</span>
<!--TODO: Re-enable in next releases-->
<!-- <span class="ui label small access-right {{ 'unlock' }}">
<i class="icon {{ 'unlock' }}"></i>{{ _("Open Access") }}</span> -->
</div>
</div>
</div>
{%- endblock record_header -%}
{%- block record_title -%}
<h1>{{ metadata.title }}</h1>
<p>{%- include "invenio_app_rdm/records/details/creators.html" %}</p>
{%- endblock record_title -%}
{%- block record_content -%}
<p>{%- include "invenio_app_rdm/records/details/contributors.html" %}</p>
{%- include "invenio_app_rdm/records/details/subjects.html" %}
<div class="top-padded">
{%- include "invenio_app_rdm/records/details/description.html" %}
</div>
<div class="top-padded">
{%- include "invenio_app_rdm/records/details/licenses.html" %}
</div>
{%- endblock record_content -%}
{# files #}
{%- block record_files -%}
{%- if files is not none -%}
{%- if files.enabled and record|can_list_files %}
{%- set default_preview = files.default_preview %}
{%- set files = files|order_entries %}
{%- if files|has_previewable_files -%}
{%- set default_preview_file = files|select_preview_file(default_preview=default_preview) %}
{{ preview_file_box(default_preview_file, pid) }}
{%- endif -%}
{{ file_list_box(files, pid) }}
<div class="ui container">
<div class="ui relaxed grid">
<div class="two column row top-padded">
<div class="eleven wide column">
{% if record.access.record == 'restricted' %}
<div class="ui {{ record.ui.access_status.message_class }} message">
<strong><i class="{{ record.ui.access_status.icon }} icon"></i>{{ record.ui.access_status.title_l10n }}</strong> {{ record.ui.access_status.description_l10n }}
{% if record.access.embargo.reason %}
<p>Reason: {{ record.access.embargo.reason }}</p>
{% endif %}
{%- else -%}
{# TODO: come up with a proper display #}
<div>Sorry, the files are restricted!</div>
{%- endif -%}
{%- endblock record_files -%}
{%- block record_details -%}
{# More details #}
<div class="top-padded">
{%- include "invenio_app_rdm/records/details/details.html" %}
</div>
{%- endblock record_details -%}
{%- block record_footer -%}
<div class="ui grid">
<div class="two column row top-bottom-padded font-small">
<div class="four wide column">
<p><b>Upload information</b></p>
</div>
<div class="twelve wide column">
<span class="label text-muted">
<b>Created:</b> {{ record.ui.created_date_l10n_long }} | <b>Modified:</b> {{ record.ui.updated_date_l10n_long }}
</span>
{% endif %}
{%- block record_body -%}
{%- block record_header -%}
<div class="ui grid middle aligned">
<div class="two column row">
<div class="left floated left aligned column">
<span class="ui" title="Publication date">{{ record.ui.publication_date_l10n_long }}</span>
<span class="label text-muted"> | Version {{ record.ui.version }}</span>
</div>
<div class="right floated right aligned column">
<span class="ui label small grey">{{ record.ui.resource_type }}</span>
<span class="ui label small access-status {{ record.ui.access_status.id }}" data-tooltip="{{ record.ui.access_status.description_l10n }}" data-inverted="">
{% if record.ui.access_status.icon %}<i class="icon {{ record.ui.access_status.icon }}"></i>{% endif %}
{{ record.ui.access_status.title_l10n }}
</span>
</div>
</div>
</div>
{%- endblock record_header -%}
{%- block record_title -%}
<h1>{{ metadata.title }}</h1>
<p>{%- include "invenio_app_rdm/records/details/creators.html" %}</p>
{%- endblock record_title -%}
{%- block record_content -%}
<p>{%- include "invenio_app_rdm/records/details/contributors.html" %}</p>
<p>{%- include "invenio_app_rdm/records/details/doi.html" %}</p>
{%- include "invenio_app_rdm/records/details/subjects.html" %}
<div class="top-padded">
{%- include "invenio_app_rdm/records/details/description.html" %}
</div>
<div class="top-padded">
{%- include "invenio_app_rdm/records/details/licenses.html" %}
</div>
{%- endblock record_content -%}
{# files #}
{%- block record_files -%}
{%- if record.files.enabled -%}
{%- if permissions.can_read_files -%}
{# record has files AND user can see files #}
{%- set files = files|order_entries %}
{%- if files|has_previewable_files -%}
{%-set preview_file = files|select_preview_file(default_preview=record.files.default_preview) %}
{{ preview_file_box(preview_file, pid, is_preview, record) }}
{%- endif -%}
{{ file_list_box(files, pid, is_preview, record) }}
{% else %}
{# record has files BUT user cannot see files #}
<div class="panel-spacing">
<div class="ui accordion panel {{ record.ui.access_status.id }}" id="preview" href="#collapsablePreview">
<div class="active title panel-heading {{ record.ui.access_status.id }}">
{{ _("Files") }}
<i class="angle down icon"></i>
</div>
<div id="collapsablePreview" class="active content">
<div class="ui {{ record.ui.access_status.message_class }} message file-box-message">
<i class="ui {{ record.ui.access_status.icon }} icon"></i><b>{{ record.ui.access_status.title_l10n }}</b>
<p>{{ record.ui.access_status.description_l10n }}</p>
{% if record.access.embargo.reason %}
<p>{{_("Reason")}}: {{record.access.embargo.reason}}</p>
{% endif%}
</div>
</div>
</div>
</div>
</div>
{%- endblock record_footer -%}
<!-- {%- block jump -%}
<div class="ui grid">
<div class="centered row" id="jump-btn">
<a style="cursor: pointer;">
<span class="ui button">
<i class="arrow alternate circle up outline icon"></i>Jump up</span>
</a>
{%- endif %}
{%- endif %}
{%- endblock record_files -%}
{%- block record_details -%}
{# More details #}
<div class="top-padded">
{%- include "invenio_app_rdm/records/details/details.html" %}
</div>
{%- endblock record_details -%}
{%- block record_footer -%}
<div class="ui grid">
<div class="two column row top-bottom-padded font-small">
<div class="four wide column">
<p><b>Upload information</b></p>
</div>
<div class="twelve wide column">
<span class="label text-muted">
<b>Created:</b> {{ record.ui.created_date_l10n_long }} | <b>Modified:</b> {{ record.ui.updated_date_l10n_long }}
</span>
</div>
</div>
{%- endblock jump -%} -->
{%- endblock record_body %}
</div>
<div class="five wide column">
{% block record_sidebar %}
{%- include "invenio_app_rdm/records/details/side_bar.html" %}
<div style="text-align: center;">
{%- include "invenio_theme_tugraz/landingpage/doi.html" %}
</div>
{% endblock record_sidebar %}
{%- endblock record_footer -%}
{%- block jump -%}
<div class="ui grid">
<div class="centered row" id="jump-btn">
<a style="cursor: pointer;">
<span class="ui button">
<i class="arrow alternate circle up outline icon"></i>Jump up</span>
</a>
</div>
</div>
{%- endblock jump -%}
{%- endblock record_body %}
</div>
<div class="five wide column">
{% block record_sidebar %}
{%- include "invenio_app_rdm/records/details/side_bar.html" %}
{% endblock record_sidebar %}
</div>
</div>
</div>
</div>
{%- endblock page_body %}
{%- endblock page_body %}
{%- block javascript %}
{{ super() }}
{{ webpack['invenio-app-rdm-landing-page.js'] }}
{# Communities management -- TODO include again when communities are ready #}
{# {{ webpack['invenio-communities-records.js'] }} #}
{{ webpack['previewer_theme.js'] }}
{%- endblock javascript %}
{%- block javascript %}
{{ super() }}
{{ webpack['invenio-app-rdm-landing-page.js'] }}
{# Communities management -- TODO include again when communities are ready #}
{# {{ webpack['invenio-communities-records.js'] }} #}
{{ webpack['previewer_theme.js'] }}
{%- endblock javascript %}

View File

@@ -1,43 +0,0 @@
{#
Copyright (C) 2020 CERN.
Copyright (C) 2020 Northwestern University.
Invenio RDM Records is free software; you can redistribute it and/or modify
it under the terms of the MIT License; see LICENSE file for more details.
#}
{% if metadata.identifiers %}
{% 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;"
title="Get the DOI badge!">
<img id="record-doi-badge" data-target="[data-modal='{{ id_doi }}']"
src="{{ url_for('invenio_formatter_badges.badge', title='DOI', value=id_doi, ext='svg') }}" alt="{{ id_doi }}">
</img>
</span>
<div id="doi-modal" class="ui modal fade badge-modal" data-modal="{{ id_doi }}">
<div class="header">RDM DOI Badge</div>
<div class="content">
<h4>
<small>DOI</small>
</h4>
<h4>
<pre>{{ id_doi }}</pre>
</h4>
{% from "semantic-ui/invenio_formatter/macros/badges.html" import badges_formats_list %}
{{ badges_formats_list(url_for('invenio_formatter_badges.badge', title='DOI', value=id_doi, ext='svg', _external=True, _scheme='https'), id_doi|pid_url(scheme='doi')) }}
</div>
</div>
{% else %}
{{ _("No minted DOI") }}
{% endif %}
</dd>
{% endif %}
{% endfor %}
{% endif %}

View File

@@ -1,107 +0,0 @@
{#
Copyright (C) 2020 CERN.
Copyright (C) 2020 Northwestern University.
Copyright (C) 2020 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.
origin: invenio-rdm-records/record_landing_page.html
#}
{%- extends config.BASE_TEMPLATE %}
{%- block css %}
{{ super() }}
{%- endblock css %}
{%- from "invenio_app_rdm/landing_page/macros/files.html" import file_list_box, preview_file_box %}
{%- from "invenio_app_rdm/landing_page/macros/detail.html" import show_detail %}
{%- set record = record|dereference_record|serialize_ui %}
{%- set metadata = record.metadata %}
{%- block page_body %}
<div class="ui container">
<div class="ui padded relaxed grid">
<div class="two column row">
<div class="ten wide column">
{%- block record_body %}
<div class="badges">
<span class="ui label record-version" title="{{_('Publication date')}}">
{{ record.metadata.publication_date }} {{ '(' ~ record.metadata.version ~ ')' if record.metadata.version }}
</span>
<!--Resource type badge-->
<span class="ui label teal" title="{{_('Resource type')}}">
{{record.ui.resource_type }}
</span>
</div>
<h1 style="margin-top: -6px">{{ record.metadata.title }}</h1>
<p>{%- include "invenio_app_rdm/landing_page/details/creators.html" %}</p>
<p>{%- include "invenio_app_rdm/landing_page/details/contributors.html" %}</p>
<div class="ui grid" style="margin-bottom: 10px;">
<div class="two column row">
<div class="left floated column">
{%- for s in record.metadata.subjects %}
<div class="ui tiny label">{{s.subject}}</div>
{%- endfor %}
<div style="margin-top: 5px;">
<b>Created:</b> {{ record.ui.created_date_l10n_long }} | <b>Modified:</b> {{ record.ui.updated_date_l10n_long }}
</div>
</div>
<div class="right floated column">
<span class="ui label access-right">
<i class="icon lock open"></i>
{{ record.access.access_right | make_dict_like('access_right') | vocabulary_title('access_right') }}
{%- for right in record.metadata.rights %}
<a target="_blank" href="{{right.url}}">{{ '(' ~ right.identifier ~ ')' }}</a>
{%- endfor %}
</span>
</div>
</div>
</div>
{%- include "invenio_app_rdm/landing_page/details/description.html" %}
{# files #}
{%- if record.files and record | can_list_files %}
{%- set files = record.files | make_files_preview_compatible %}
{%- set default_preview_file = files | select_preview_file(default_preview=record.files.default_preview) %}
{{ preview_file_box(default_preview_file, pid) }}
{{ file_list_box(files, pid) }}
{% endif %}
{%- endblock record_body %}
</div>
<div class="six wide column">
<div id="recordManagement"
class="ui container"
data-recid='{{ record["id"] | tojson }}'>
</div>
{% block sidebar %}
{%- include "invenio_app_rdm/landing_page/details/side_bar.html" %}
{% endblock sidebar %}
</div>
</div>
</div>
</div>
{%- endblock page_body %}
{%- block javascript %}
{{ super() }}
{{ webpack['invenio-app-rdm-records.js'] }}
{# Communities management #}
{{ webpack['invenio-communities-records.js'] }}
{{ webpack['previewer_theme.js'] }}
{{ webpack['invenio-app-rdm-record-management.js'] }}
{%- endblock javascript %}

View File

@@ -1,82 +0,0 @@
{#
Copyright (C) 2020 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.
#}
{%- extends config.BASE_TEMPLATE %}
{%- block javascript %}
{{ super() }}
{{ webpack['invenio-theme-tugraz-search-app.js'] }}
{%- endblock %}
{%- block page_body %}
<div data-invenio-search-config='{
"aggs": [
{
"aggName": "access_right",
"field": "access_right",
"title": "Access Right"
},
{
"aggName": "resource_type",
"field": "resource_type.type",
"title": "Resource Type",
"childAgg": {
"aggName": "subtype",
"field": "resource_type.subtype",
"title": "Resource Type"
}
}
],
"appId": "rdm-search",
"initialQueryState": {
"hiddenParams": null,
"size": 10
},
"layoutOptions": {
"gridView": false,
"listView": true
},
"paginationOptions": {
"defaultValue": 10,
"resultsPerPage": [
{
"text": "10",
"value": 10
},
{
"text": "20",
"value": 20
},
{
"text": "50",
"value": 50
}
]
},
"searchApi": {
"axios": {
"headers": {
"Accept": "application/vnd.inveniordm.v1+json"
},
"url": "/api/records",
"withCredentials": true
}
},
"sortOrderDisabled": true,
"sortOptions": [
{
"sortBy": "bestmatch",
"text": "Best match"
},
{
"sortBy": "newest",
"text": "Newest"
}
]
}'></div>
{%- endblock page_body %}

View File

@@ -1,5 +1,5 @@
# German translations for invenio-theme-tugraz.
# Copyright (C) 2020 mojib wali
# Copyright (C) 2020-2021 Graz University of Technology
# This file is distributed under the same license as the
# invenio-theme-tugraz project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: invenio-theme-tugraz 1.0.4\n"
"Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n"
"POT-Creation-Date: 2021-03-19 10:53+0100\n"
"POT-Creation-Date: 2021-04-26 09:08+0200\n"
"PO-Revision-Date: 2020-10-06 10:27+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: de\n"
@@ -19,16 +19,16 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.0\n"
#: invenio_theme_tugraz/config.py:14 invenio_theme_tugraz/config.py:54
#: invenio_theme_tugraz/config.py:14 invenio_theme_tugraz/config.py:63
msgid "TU Graz Repository"
msgstr "TU Graz Repository"
#: invenio_theme_tugraz/config.py:57
#: invenio_theme_tugraz/config.py:66
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:30
msgid "Repository"
msgstr "Repository"
#: invenio_theme_tugraz/config.py:80
#: invenio_theme_tugraz/config.py:91
msgid "German"
msgstr "Deutsche"
@@ -46,8 +46,8 @@ msgid ""
"your research is stored safely for the future in TU Graz library for as "
"long as TU Graz library exists."
msgstr ""
"Ihre Forschung wird für die Zukunft sicher in der Bibliothek der TU Graz "
"gespeichert als solange die Bibliothek TU Graz existiert."
"Ihre Forschung ist in der Bibliothek der TU Graz für die Zukunft "
"gespeichert,solange die Bibliothek der TU Graz existiert."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:4
msgid "Trusted"
@@ -58,8 +58,8 @@ msgid ""
"built and operated by CERN and OpenAIRE to ensure that everyone can join "
"in Open Science."
msgstr ""
"Gebaut und betrieben von CERN und OpenAIRE; um sicherzugehen, dass jedeR "
"Zugang zu Open Science hat"
"Aufgebaut und betrieben von CERN und OpenAIRE, um sicherzustellen, dass "
"jeder an Open Science teilnehmen kann."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:5
msgid "Citeable"
@@ -70,8 +70,8 @@ msgid ""
"every upload is assigned a Digital Object Identifier (DOI), to make them "
"citable and trackable."
msgstr ""
"Jeder Upload erhält eine DOI um sicherzustellen,dass er zitierbar und "
"auffindbar ist"
"Jeder Upload wird mit einem Digital Object Identifier (DOI) versehen,um "
"ihn zitierfähig und nachverfolgbar zu"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:6
msgid "No waiting time"
@@ -95,7 +95,7 @@ msgid ""
" via our restricted access mode."
msgstr ""
"Teilen Sie z.B. anonymisierte klinische Studiendaten nur mit "
"medizinischem Fachpersonalüber unseren eingeschränkten Zugriffsmodus."
"medizinischem Fachpersonal über unseren eingeschränkten Zugriffsmodus."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:8
msgid "Versioning"
@@ -103,7 +103,7 @@ msgstr "Versionierung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:8
msgid "Easily update your dataset with our versioning feature."
msgstr "Einfaches Updaten ihrer Datensätze mit unserere Versionierung."
msgstr "Einfaches Updaten ihrer Datensätze mit unserer Versionierung."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:9
msgid "Usage statisics"
@@ -113,79 +113,101 @@ msgstr "Nutzungsstatistiken"
msgid "All uploads display standards compliant usage statistics"
msgstr "Alle Uploads entsprechen den Standards der Nutzungsstatistiken."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:33
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:34
msgid "Documentation"
msgstr "Dokumentation"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:39
msgid "Reference Guide"
msgstr "Handbuch"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:44
msgid "Data Protection"
msgstr "Datenschutzerklärung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:49
msgid "Terms and Conditions"
msgstr "Nutzungsbedingungen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:53
msgid "Impressum"
msgstr "Imprint"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:37
msgid "Data protection"
msgstr "Datenschutzerklärung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:41
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:57
msgid "Feedback"
msgstr "Feedback"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:50
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:66
msgid "Features"
msgstr "Features"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:52
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:68
msgid "Scalability"
msgstr "Skalierbarkeit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:54
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:70
msgid "Institutional integration"
msgstr "Institutionelle Einbindung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:56
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:72
msgid "Next Generation Repository"
msgstr "Repositorium der nächsten Generation"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:59
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:75
msgid "Repository Profiles"
msgstr "Repositorienprofile"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:61
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:77
msgid "Resilient"
msgstr "Resilient, widerstandsfähig"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:68
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:84
msgid "Connected Services"
msgstr "Verbundene Services "
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:72
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:88
msgid "PURE"
msgstr "PURE"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:75
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:91
msgid "CampusOnline"
msgstr "CampusOnline"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:78
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:94
msgid "Research Data Management"
msgstr "Forschungsdatenmanagement"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:85
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:101
msgid "Accessibility"
msgstr "Barrierefreiheit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:102
msgid "Tipp:"
msgstr ""
msgstr "Tipp"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:102
msgid "Use Ctrl + and Crtl -"
msgstr "Verwenden Sie Strg+ und Strg-"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:102
msgid "to change the font size."
msgstr "Um die Schriftgröße zu ändern."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:34
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/accounts_base.html:61
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:11
msgid "Test Instance"
msgstr "Testumgebung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/accounts_base.html:62
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:12
msgid "This is the test instance of the TU Graz Repository."
msgstr "Dies ist die Testumgebung des TU Graz Repositorys."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:39
msgid "Home"
msgstr "Startseite"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:47
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:52
msgid "Uploads"
msgstr "Hochladen"
@@ -233,11 +255,11 @@ msgstr "Kontaktiere uns"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:145
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:148
msgid "We can help with:"
msgstr "Wir können helfen bei:"
msgstr "Dabei können wir helfen:"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:153
msgid "Uploading your research data, software, preprints, etc."
@@ -245,7 +267,7 @@ msgstr "Hochladen Ihrer Forschungsdaten, Software, Preprints usw."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:154
msgid "One-on-one with"
msgstr "Eins-zu-eins mit"
msgstr "One-on-one mit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:154
msgid "supporters."
@@ -253,7 +275,7 @@ msgstr "Unterstützern"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:155
msgid "Quota increases beyond our default policy."
msgstr "Erhöhung Ihres Kontingents über das vertraglich Zugesicherte hinaus."
msgstr "Quota Erhöhungen über unsere Standard Policy hinaus."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:156
msgid "Scripts for automated uploading of larger datasets."
@@ -285,8 +307,8 @@ msgid "TECHNOLOGY"
msgstr "LEIDENSCHAFT"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:8
#: 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/login_user.html:59
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:80
msgid "Sign up"
msgstr "Registrierung"
@@ -302,26 +324,26 @@ msgstr "Ausloggen"
msgid "Log in to Repository"
msgstr "Anmelden"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:30
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:29
#, python-format
msgid " Log in with %(type)s"
msgstr "Einloggen mit"
#: 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/login_user.html:33
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:54
msgid "Or"
msgstr "Oder"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:47
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:45
msgid "Log In"
msgstr "Einloggen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:60
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:58
#, python-format
msgid "New to %(sitename)s?"
msgstr "Neu im %(sitename)s?"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:70
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:68
msgid "Forgot password?"
msgstr "Passwort vergessen"
@@ -363,7 +385,7 @@ msgid ""
"the Graz University of Technology."
msgstr "Gebaut basierend auf Expertise derTU Graz im Bereich Data Management"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:51
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:50
msgid "Sign up with TUGRAZ "
msgstr "Mit Ihrem TUGonline-Account einloggen"
@@ -375,7 +397,18 @@ msgstr "RDM DOI Abzeichen"
msgid "DOI"
msgstr "DOI"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/landingpage/detail.html:44
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/landingpage/detail.html:35
#, python-format
msgid ""
"\n"
" There is a %(link_start)snewer version%(link_end)s of the "
"record available.\n"
" "
msgstr ""
"Es ist eine %(link_start)sneuere Version%(link_end)s des Eintrags "
"verfügbar."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/landingpage/detail.html:64
msgid "Open Access"
msgstr ""
@@ -392,3 +425,6 @@ msgstr ""
#~ " "
#~ msgstr "Hochgeladen am %(date)s\n"
#~ msgid "Handbook"
#~ msgstr "Handbuch"

View File

@@ -1,5 +1,5 @@
# Translations template for invenio-theme-tugraz.
# Copyright (C) 2021 mojib wali
# Copyright (C) 2021 Graz University of Technology
# This file is distributed under the same license as the
# invenio-theme-tugraz project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2021.
@@ -7,9 +7,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: invenio-theme-tugraz 1.9.3\n"
"Project-Id-Version: invenio-theme-tugraz 2.1.0\n"
"Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n"
"POT-Creation-Date: 2021-03-19 10:53+0100\n"
"POT-Creation-Date: 2021-04-26 09:08+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,16 +18,16 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.0\n"
#: invenio_theme_tugraz/config.py:14 invenio_theme_tugraz/config.py:54
#: invenio_theme_tugraz/config.py:14 invenio_theme_tugraz/config.py:63
msgid "TU Graz Repository"
msgstr ""
#: invenio_theme_tugraz/config.py:57
#: invenio_theme_tugraz/config.py:66
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:30
msgid "Repository"
msgstr ""
#: invenio_theme_tugraz/config.py:80
#: invenio_theme_tugraz/config.py:91
msgid "German"
msgstr ""
@@ -102,79 +102,101 @@ msgstr ""
msgid "All uploads display standards compliant usage statistics"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:33
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:34
msgid "Documentation"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:39
msgid "Reference Guide"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:44
msgid "Data Protection"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:49
msgid "Terms and Conditions"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:53
msgid "Impressum"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:37
msgid "Data protection"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:41
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:57
msgid "Feedback"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:50
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:66
msgid "Features"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:52
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:68
msgid "Scalability"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:54
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:70
msgid "Institutional integration"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:56
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:72
msgid "Next Generation Repository"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:59
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:75
msgid "Repository Profiles"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:61
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:77
msgid "Resilient"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:68
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:84
msgid "Connected Services"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:72
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:88
msgid "PURE"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:75
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:91
msgid "CampusOnline"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:78
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:94
msgid "Research Data Management"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:85
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:101
msgid "Accessibility"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:102
msgid "Tipp:"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:102
msgid "Use Ctrl + and Crtl -"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:102
msgid "to change the font size."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:34
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/accounts_base.html:61
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:11
msgid "Test Instance"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/accounts_base.html:62
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:12
msgid "This is the test instance of the TU Graz Repository."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:39
msgid "Home"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:47
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:52
msgid "Uploads"
msgstr ""
@@ -273,8 +295,8 @@ msgid "TECHNOLOGY"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:8
#: 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/login_user.html:59
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:80
msgid "Sign up"
msgstr ""
@@ -290,26 +312,26 @@ msgstr ""
msgid "Log in to Repository"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:30
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:29
#, python-format
msgid " Log in with %(type)s"
msgstr ""
#: 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/login_user.html:33
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:54
msgid "Or"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:47
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:45
msgid "Log In"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:60
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:58
#, python-format
msgid "New to %(sitename)s?"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:70
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:68
msgid "Forgot password?"
msgstr ""
@@ -347,7 +369,7 @@ msgid ""
"the Graz University of Technology."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:51
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:50
msgid "Sign up with TUGRAZ "
msgstr ""
@@ -359,7 +381,16 @@ msgstr ""
msgid "DOI"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/landingpage/detail.html:44
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/landingpage/detail.html:35
#, python-format
msgid ""
"\n"
" There is a %(link_start)snewer version%(link_end)s of the "
"record available.\n"
" "
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/landingpage/detail.html:64
msgid "Open Access"
msgstr ""

View File

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

View File

@@ -14,24 +14,16 @@ from typing import Dict
import requests
from elasticsearch_dsl.utils import AttrDict
from flask import Blueprint, current_app, g, render_template, request
from flask import Blueprint, current_app, g, redirect, render_template, request, url_for
from flask_babelex import get_locale
from flask_login import login_required
from flask_menu import current_menu
from invenio_app_rdm.records_ui.views.decorators import (
pass_draft,
pass_record,
pass_is_preview,
pass_record_files,
service,
pass_record_or_draft,
)
from invenio_app_rdm.records_ui.views.deposits import (
get_form_config,
get_search_url,
new_record,
)
from invenio_rdm_records.proxies import current_rdm_records
from invenio_rdm_records.resources.config import RDMDraftFilesResourceConfig
from invenio_rdm_records.resources.serializers import UIJSONSerializer
from invenio_rdm_records.services import RDMDraftFilesService
from .search import FrontpageRecordsSearch
@@ -49,9 +41,9 @@ def ui_blueprint(app):
blueprint.add_url_rule(routes["index"], view_func=index)
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.add_url_rule(routes["guide"], view_func=guide)
blueprint.add_url_rule(routes["terms"], view_func=terms)
blueprint.add_url_rule(routes["gdpr"], view_func=gdpr)
@blueprint.app_template_filter("make_dict_like")
def make_dict_like(value: str, key: str) -> Dict[str, str]:
@@ -71,9 +63,13 @@ def ui_blueprint(app):
def index():
"""Frontpage."""
records = FrontpageRecordsSearch()[:5].sort("-created").execute()
for r in records:
r = UIJSONSerializer().serialize_object_to_dict(r.to_dict())
return render_template(
"invenio_theme_tugraz/index.html",
records=FrontpageRecordsSearch()[:5].sort("-created").execute(),
records=records
)
@@ -82,101 +78,43 @@ def comingsoon():
return render_template("invenio_theme_tugraz/comingsoon.html")
def get_datacite_details():
"""Application credentials for DOI."""
prefix = environ.get("INVENIO_DATACITE_PREFIX")
suffix = environ.get("INVENIO_DATACITE_SUFFIX")
details = {
"datacite_prefix": prefix,
"datacite_suffix": suffix,
}
return details
def guide():
"""TUGraz_Repository_Guide."""
locale = get_locale()
return redirect(url_for('static',
filename=f'documents/TUGraz_Repository_Guide_01_{locale}.pdf',
_external=True))
@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"]
def terms():
"""Terms_And_Conditions."""
locale = get_locale()
return redirect(url_for('static',
filename=f'documents/TUGraz_Repository_Terms_And_Conditions_{locale}.pdf',
_external=True))
#
# TODO: change this override behaviour once
# PR is merged:
# https://github.com/inveniosoftware/invenio-app-rdm/pull/638
#
def gdpr():
"""General_Data_Protection_Rights."""
locale = get_locale()
return redirect(url_for('static',
filename=f'documents/TUGraz_Repository_General_Data_Protection_Rights_{locale}.pdf',
_external=True))
@login_required
def deposit_create():
"""Create a new deposit."""
forms_config = get_form_config(createUrl=("/api/records"))
forms_config["data_cite"] = get_datacite_details()
return render_template(
"invenio_theme_tugraz/deposit/deposit.html",
forms_config=forms_config,
searchbar_config=dict(searchUrl=get_search_url()),
record=new_record(),
files=dict(default_preview=None, enabled=True, entries=[], links={}),
)
@login_required
@pass_draft
def deposit_edit(draft=None, pid_value=None):
"""Edit an existing deposit."""
files_list = current_rdm_records.draft_files_service.list_files(
id_=pid_value,
identity=g.identity,
links_config=RDMDraftFilesResourceConfig.links_config,
)
serializer = UIJSONSerializer()
record = serializer.serialize_object_to_dict(draft.to_dict())
forms_config = get_form_config(apiUrl=f"/api/records/{pid_value}/draft")
forms_config["data_cite"] = get_datacite_details()
return render_template(
"invenio_theme_tugraz/deposit/deposit.html",
forms_config=forms_config,
record=record,
files=files_list.to_dict(),
searchbar_config=dict(searchUrl=get_search_url()),
permissions=draft.has_permissions_to(['new_version'])
)
@pass_record
@pass_is_preview
@pass_record_or_draft
@pass_record_files
def record_detail(record=None, files=None, pid_value=None):
def record_detail(record=None, files=None, pid_value=None, is_preview=False):
"""Record detail page (aka landing page)."""
files_dict = None if files is None else files.to_dict()
return render_template(
"invenio_theme_tugraz/landingpage/detail.html",
record=UIJSONSerializer().serialize_object_to_dict(record.to_dict()),
pid=pid_value,
files=files_dict,
permissions=record.has_permissions_to(['edit', 'new_version']),
permissions=record.has_permissions_to(['edit', 'new_version', 'manage',
'update_draft', 'read_files']),
is_preview=is_preview,
)

View File

@@ -17,14 +17,12 @@ theme = WebpackThemeBundle(
entry={
"invenio-theme-tugraz-theme": "./less/invenio_theme_tugraz/theme.less",
"invenio-theme-tugraz-js": "./js/invenio_theme_tugraz/theme.js",
"invenio-theme-tugraz-search-app": "./js/invenio_theme_tugraz/search/index.js",
# overrides RDM deposit form
'invenio-theme-tugraz-rdm-deposit': './js/invenio_theme_tugraz/deposit/index.js',
},
dependencies={
# required for RDM deposit form
# keep in sync
# add any additional npm dependencies here...
# Keep these dep: in sync with releases
"@babel/runtime": "^7.9.0",
'formik': '^2.1.4',
'luxon': '^1.23.0',
@@ -32,16 +30,12 @@ theme = WebpackThemeBundle(
'prop-types': '^15.7.2',
'react-dnd': '^11.1.3',
'react-dnd-html5-backend': '^11.1.3',
'react-invenio-deposit': '^0.12.0',
'react-invenio-forms': '^0.6.3',
'react-invenio-deposit': '^0.13.5',
'react-invenio-forms': '^0.7.0',
'react-dropzone': "^11.0.3",
'yup': '^0.27.0',
'@ckeditor/ckeditor5-build-classic': '^16.0.0',
'@ckeditor/ckeditor5-react': '^2.1.0',
# datacite - rest api plugin
'datacite-rest': '^0.1.7',
},
)
},

View File

@@ -24,7 +24,7 @@ add_ignore = D401
directory = invenio_theme_tugraz/translations/
[extract_messages]
copyright_holder = mojib wali
copyright_holder = Graz University of Technology
msgid_bugs_address = mojib.wali@tugraz.at
mapping-file = babel.ini
output-file = invenio_theme_tugraz/translations/messages.pot

View File

@@ -56,11 +56,7 @@ install_requires = [
"Flask-WebpackExt>=1.0.0",
"invenio-assets>=1.2.0",
"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==2.0.1",
"invenio_config_tugraz>=0.5.8",
]
packages = find_packages()
@@ -79,7 +75,7 @@ setup(
long_description=readme + "\n\n" + history,
keywords="invenio, theme, invenioRDM, TU-Graz, Graz University of Technology, statistics",
license="MIT",
author="mojib wali",
author="Graz University of Technology",
author_email="mojib.wali@tugraz.at",
url="https://github.com/tu-graz-library/invenio-theme-tugraz",
packages=packages,