mirror of
https://github.com/Cian-H/invenio-theme-iform.git
synced 2026-05-26 16:32:04 +01:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 43a095795b |
@@ -20,42 +20,9 @@ jobs:
|
|||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
python-version: [3.6, 3.7, 3.8, 3.9]
|
python-version: [3.6, 3.7, 3.8]
|
||||||
requirements-level: [min, pypi]
|
requirements-level: [min, pypi]
|
||||||
db-service: [postgresql12]
|
|
||||||
search-service: [elasticsearch7]
|
|
||||||
exclude:
|
|
||||||
- python-version: 3.6
|
|
||||||
requirements-level: pypi
|
|
||||||
|
|
||||||
- python-version: 3.7
|
|
||||||
requirements-level: min
|
|
||||||
|
|
||||||
- python-version: 3.8
|
|
||||||
requirements-level: min
|
|
||||||
|
|
||||||
- python-version: 3.9
|
|
||||||
requirements-level: min
|
|
||||||
|
|
||||||
- db-service: postgresql12
|
|
||||||
requirements-level: min
|
|
||||||
|
|
||||||
- search-service: elasticsearch7
|
|
||||||
requirements-level: min
|
|
||||||
|
|
||||||
include:
|
|
||||||
|
|
||||||
- db-service: postgresql12
|
|
||||||
DB_EXTRAS: "postgresql"
|
|
||||||
|
|
||||||
|
|
||||||
- search-service: elasticsearch7
|
|
||||||
SEARCH_EXTRAS: "elasticsearch7"
|
|
||||||
|
|
||||||
env:
|
|
||||||
DB: ${{ matrix.db-service }}
|
|
||||||
SEARCH: ${{ matrix.search-service }}
|
|
||||||
EXTRAS: all,${{ matrix.DB_EXTRAS }},${{ matrix.SEARCH_EXTRAS }}
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
@@ -68,7 +35,8 @@ jobs:
|
|||||||
- name: Generate dependencies
|
- name: Generate dependencies
|
||||||
run: |
|
run: |
|
||||||
python -m pip install --upgrade pip setuptools py wheel requirements-builder
|
python -m pip install --upgrade pip setuptools py wheel requirements-builder
|
||||||
requirements-builder -e "$EXTRAS" --level=${{ matrix.requirements-level }} setup.py > .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt
|
requirements-builder -e all --level=${{ matrix.requirements-level }} setup.py > .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt
|
||||||
|
|
||||||
- name: Cache pip
|
- name: Cache pip
|
||||||
uses: actions/cache@v2
|
uses: actions/cache@v2
|
||||||
with:
|
with:
|
||||||
@@ -77,11 +45,10 @@ jobs:
|
|||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
pip install -r .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt
|
pip install -r .${{matrix.requirements-level}}-${{ matrix.python-version }}-requirements.txt
|
||||||
pip install ".[$EXTRAS]"
|
pip install .[all]
|
||||||
pip freeze
|
pip freeze
|
||||||
docker --version
|
|
||||||
docker-compose --version
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
run: |
|
run: |
|
||||||
./run-tests.sh
|
./run-tests.sh
|
||||||
@@ -8,3 +8,4 @@
|
|||||||
|
|
||||||
$navbar_background_image: unset;
|
$navbar_background_image: unset;
|
||||||
$navbar_background_color: #ffffff;
|
$navbar_background_color: #ffffff;
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
@@ -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,
|
|
||||||
});
|
|
||||||
@@ -13,68 +13,68 @@
|
|||||||
|
|
||||||
#login-tug-logo {
|
#login-tug-logo {
|
||||||
& g {
|
& g {
|
||||||
fill: @tugrazRed;
|
fill: #e4154b;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#login-tug-logo:hover {
|
#login-tug-logo:hover {
|
||||||
& g {
|
& g {
|
||||||
fill: @tugrazBlack;
|
fill: #231f20;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.accounts-link {
|
.accounts-link {
|
||||||
margin: 5%;
|
margin: 5%;
|
||||||
color: @primaryLink;
|
color: #fff;
|
||||||
border: 1px solid @primaryLink;
|
border: 1px solid #fff;
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.accounts-link :hover {
|
.accounts-link :hover {
|
||||||
font-size: smaller !important;
|
font-size: smaller !important;
|
||||||
color: @primaryLink;
|
color: white;
|
||||||
background-color: @primaryLinkHoverBackground !important;
|
background-color: #000000 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tu-button-style button {
|
.tu-button-style button {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
border: 1px solid @primaryButton;
|
border: 1px solid #fff;
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
height: 29px;
|
height: 29px;
|
||||||
color: @primaryButton;
|
color: #fff;
|
||||||
font-family: "Source Sans Pro";
|
font-family: "Source Sans Pro";
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
.tu-button-style button:hover {
|
.tu-button-style button:hover {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
color: @primaryButton;
|
color: white;
|
||||||
background-color: @primaryButtonHoverBackground !important;
|
background-color: #000000 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.form-accounts {
|
.form-accounts {
|
||||||
margin: 15%;
|
margin: 15%;
|
||||||
text-align: left !important;
|
text-align: left !important;
|
||||||
& i {
|
& i {
|
||||||
color: @primaryFormAccounts !important;
|
color: #fff !important;
|
||||||
}
|
}
|
||||||
& label {
|
& label {
|
||||||
display: flex !important;
|
display: flex !important;
|
||||||
font-weight: 300 !important;
|
font-weight: 300 !important;
|
||||||
color: @primaryFormAccounts !important;
|
color: white !important;
|
||||||
}
|
}
|
||||||
& input {
|
& input {
|
||||||
border: 0px none !important;
|
border: 0px none !important;
|
||||||
padding: 0px !important;
|
padding: 0px !important;
|
||||||
border-bottom: 1px solid @primaryFormAccounts !important;
|
border-bottom: 1px solid white !important;
|
||||||
background-color: transparent !important;
|
background-color: transparent !important;
|
||||||
color: @primaryFormAccounts !important;
|
color: white !important;
|
||||||
border-radius: 0 !important;
|
border-radius: 0 !important;
|
||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
}
|
}
|
||||||
& input::placeholder {
|
& input::placeholder {
|
||||||
opacity: 1 !important;
|
opacity: 1 !important;
|
||||||
color: @formAccountsInputPlaceholder !important;
|
color: silver !important;
|
||||||
}
|
}
|
||||||
& th {
|
& th {
|
||||||
display: block;
|
display: block;
|
||||||
@@ -85,7 +85,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.field > input::selection {
|
.field > input::selection {
|
||||||
background: @fieldInputSelectionBackground;
|
background: #50a2ce;
|
||||||
}
|
}
|
||||||
|
|
||||||
.accounts-header {
|
.accounts-header {
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
login and sign-up pages form background color
|
login and sign-up pages form background color
|
||||||
*/
|
*/
|
||||||
.sign-form {
|
.sign-form {
|
||||||
background-color: @signInBackground !important;
|
background-color: #245b78 !important;
|
||||||
padding: 0 !important;
|
padding: 0 !important;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
@@ -104,10 +104,10 @@ login and sign-up pages form background color
|
|||||||
.tug-button-login {
|
.tug-button-login {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
fill: @tugrazRed;
|
fill: #e4154b;
|
||||||
}
|
}
|
||||||
.tug-button-login :hover {
|
.tug-button-login :hover {
|
||||||
fill: @primaryButtonHoverBackground;
|
fill: #000000;
|
||||||
}
|
}
|
||||||
.login-page-button {
|
.login-page-button {
|
||||||
margin: 5%;
|
margin: 5%;
|
||||||
@@ -118,20 +118,20 @@ login and sign-up pages form background color
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
& a:hover {
|
& a:hover {
|
||||||
background-color: @primaryLinkHoverBackground;
|
background-color: #000;
|
||||||
color: @primaryLink !important;
|
color: #fff !important;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-page-button-white {
|
.login-page-button-white {
|
||||||
color: @primaryButton !important;
|
color: #fff !important;
|
||||||
font-family: "Source Sans Pro";
|
font-family: "Source Sans Pro";
|
||||||
font-size: initial;
|
font-size: initial;
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-page-button-black {
|
.login-page-button-black {
|
||||||
color: @primaryButtonInverted !important;
|
color: #000 !important;
|
||||||
font-family: "Source Sans Pro";
|
font-family: "Source Sans Pro";
|
||||||
font-size: initial;
|
font-size: initial;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#footer {
|
#footer {
|
||||||
color: @footerGrey;
|
color: #5E5E5E;
|
||||||
|
|
||||||
/*background-image: url("/static/images/footer.jpg");*/
|
/*background-image: url("/static/images/footer.jpg");*/
|
||||||
-webkit-background-size: 100% 100%;
|
-webkit-background-size: 100% 100%;
|
||||||
@@ -22,18 +22,18 @@
|
|||||||
background-attachment: fixed;
|
background-attachment: fixed;
|
||||||
|
|
||||||
&.footer-bottom {
|
&.footer-bottom {
|
||||||
background-color: @footerBottomBackground;
|
background-color: #f2f2f2;
|
||||||
padding-top: 15px;
|
padding-top: 15px;
|
||||||
padding-bottom: 15px;
|
padding-bottom: 15px;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
|
|
||||||
a {
|
a {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: @footerGrey;
|
color: #5E5E5E;
|
||||||
|
|
||||||
&:hover, &:focus {
|
&:hover, &:focus {
|
||||||
color: @primaryLink;
|
color: #ffffff;
|
||||||
background-color: @primaryLinkHoverBackground;
|
background-color: #000000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,12 +22,12 @@ h2 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.record-version {
|
.record-version {
|
||||||
color: @greyDark;
|
color: #777777;
|
||||||
background-color: @recordVersionBackground !important;
|
background-color: #f2f2f2 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.random-records-frontpage article {
|
.random-records-frontpage article {
|
||||||
border-bottom: 1px solid @randomRecordsFrontpageArticle;
|
border-bottom: 1px solid rgba(34,36,38,.15);
|
||||||
margin-bottom: 1rem;
|
margin-bottom: 1rem;
|
||||||
padding-bottom: 1rem;
|
padding-bottom: 1rem;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
width: 18px;
|
width: 18px;
|
||||||
height: 18px;
|
height: 18px;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
fill: @tugrazRed;
|
fill: #e4154b;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****logo section******/
|
/*****logo section******/
|
||||||
@@ -18,18 +18,18 @@
|
|||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
& a {
|
& a {
|
||||||
fill: @tugrazRed;
|
fill: #e4154b;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.affiliation-logo :hover {
|
.affiliation-logo :hover {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
fill: @primaryLinkHoverBackground;
|
fill: #000000;
|
||||||
color: @primaryLinkHoverBackground;
|
color: #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.affiliation {
|
.affiliation {
|
||||||
background-color: @primaryLink;
|
background-color: white;
|
||||||
display: table;
|
display: table;
|
||||||
margin: 0 auto 80px;
|
margin: 0 auto 80px;
|
||||||
max-width: 1060px;
|
max-width: 1060px;
|
||||||
@@ -78,12 +78,12 @@ a {
|
|||||||
.short-menu-right {
|
.short-menu-right {
|
||||||
display: table-cell;
|
display: table-cell;
|
||||||
width: 50%;
|
width: 50%;
|
||||||
color: @primaryLinkInverted;
|
color: #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.short-menu-right :hover {
|
.short-menu-right :hover {
|
||||||
background-color: @primaryLinkHoverBackground;
|
background-color: #000000;
|
||||||
color: @primaryLink;
|
color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.short-menu-right-button {
|
.short-menu-right-button {
|
||||||
@@ -104,15 +104,15 @@ a {
|
|||||||
& a {
|
& a {
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
color: @primaryLinkInverted;
|
color: #000;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.short-menu-left-lang:hover {
|
.short-menu-left-lang:hover {
|
||||||
& a {
|
& a {
|
||||||
background-color: @primaryLinkHoverBackground;
|
background-color: #000;
|
||||||
color: @primaryLink;
|
color: #fff;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -126,7 +126,7 @@ a {
|
|||||||
& svg {
|
& svg {
|
||||||
& g {
|
& g {
|
||||||
stroke-linejoin: round;
|
stroke-linejoin: round;
|
||||||
stroke: @primaryLinkInverted;
|
stroke: #000;
|
||||||
stroke-miterlimit: 10;
|
stroke-miterlimit: 10;
|
||||||
stroke-width: 2;
|
stroke-width: 2;
|
||||||
fill: none;
|
fill: none;
|
||||||
@@ -137,11 +137,11 @@ a {
|
|||||||
|
|
||||||
.search-icon-header:hover {
|
.search-icon-header:hover {
|
||||||
& a {
|
& a {
|
||||||
background-color: @primaryLinkHoverBackground;
|
background-color: #000;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
& svg {
|
& svg {
|
||||||
& g {
|
& g {
|
||||||
stroke: @primaryLink;
|
stroke: #fff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -150,7 +150,7 @@ a {
|
|||||||
.short-menu-left-search {
|
.short-menu-left-search {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin: 12px 9px 6px 0;
|
margin: 12px 9px 6px 0;
|
||||||
color: @primaryLinkInverted;
|
color: #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.short-menu-right-main-menu {
|
.short-menu-right-main-menu {
|
||||||
@@ -181,8 +181,8 @@ svg:not(:root) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.main-menu-entry a:hover {
|
.main-menu-entry a:hover {
|
||||||
background-color: @primaryLinkHoverBackground;
|
background-color: #000;
|
||||||
color: @primaryLink;
|
color: #fff;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -191,7 +191,7 @@ svg:not(:root) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.main-menu-underline-line {
|
.main-menu-underline-line {
|
||||||
border: 2px solid @greyLight !important;
|
border: 2px solid #e0e1e2 !important;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -200,13 +200,13 @@ svg:not(:root) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.affiliation-text a:hover {
|
.affiliation-text a:hover {
|
||||||
background-color: @primaryLinkHoverBackground;
|
background-color: #000000;
|
||||||
color: @primaryLink;
|
color: #ffffff;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.main-menu {
|
.main-menu {
|
||||||
border-bottom: 1px solid @primaryLinkInverted;
|
border-bottom: 1px solid #000;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
height: 39px;
|
height: 39px;
|
||||||
margin-top: -1px;
|
margin-top: -1px;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
.ui.inverted.header{
|
.ui.inverted.header{
|
||||||
color: @primaryLinkInverted;
|
color:#000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-page-button {
|
.login-page-button {
|
||||||
@@ -10,14 +10,14 @@
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
& a:hover {
|
& a:hover {
|
||||||
background-color: @primaryLinkHoverBackground;
|
background-color: #000;
|
||||||
color: @primaryLink !important;
|
color: #fff !important;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-color{
|
.text-color{
|
||||||
color: @primaryLinkInverted;
|
color: #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 767px) {
|
@media (max-width: 767px) {
|
||||||
|
|||||||
@@ -14,5 +14,5 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.text-muted {
|
.text-muted {
|
||||||
color: @greyDark;
|
color: #777;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
* to #ffffff
|
* to #ffffff
|
||||||
***/
|
***/
|
||||||
.section-content-light-bg {
|
.section-content-light-bg {
|
||||||
background-color: @primaryBackground;
|
background-color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
/***
|
/***
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
* to #000000
|
* to #000000
|
||||||
***/
|
***/
|
||||||
.section-title {
|
.section-title {
|
||||||
color: @primaryText;
|
color: #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
***/
|
***/
|
||||||
.cover-page {
|
.cover-page {
|
||||||
//text-align: center;
|
//text-align: center;
|
||||||
background-color: @primaryBackground;
|
background-color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
* To #000000
|
* To #000000
|
||||||
***/
|
***/
|
||||||
.panel-free-title {
|
.panel-free-title {
|
||||||
color: @primaryText;
|
color: #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -75,16 +75,16 @@ pre {
|
|||||||
***/
|
***/
|
||||||
/*.ui.button,*/
|
/*.ui.button,*/
|
||||||
.ui.search.button {
|
.ui.search.button {
|
||||||
background-color: @tugrazRed;
|
background-color:#e4154b;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ui.button:hover,
|
.ui.button:hover,
|
||||||
.ui.search.button:hover {
|
.ui.search.button:hover {
|
||||||
background-color: @primaryButtonHoverBackground;
|
background-color:#000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ui.button:hover {
|
.ui.button:hover {
|
||||||
color: @primaryButton;
|
color:#fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
/***
|
/***
|
||||||
@@ -123,33 +123,3 @@ pre {
|
|||||||
.ui.label {
|
.ui.label {
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ui.label.access-right {
|
|
||||||
float: right;
|
|
||||||
color: @accessRight;
|
|
||||||
background-color: white;
|
|
||||||
|
|
||||||
&.open {
|
|
||||||
color: @accessRightOpen;
|
|
||||||
background-color: white;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
&.restricted {
|
|
||||||
color: @accessRightRestricted;
|
|
||||||
background-color: white;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
&.embargoed {
|
|
||||||
color: @accessRightEmbargoed;
|
|
||||||
background-color: white;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
&.closed {
|
|
||||||
color: @accessRightClosed;
|
|
||||||
background-color: white;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -5,17 +5,7 @@
|
|||||||
* it under the terms of the MIT License; see LICENSE file for more details.
|
* it under the terms of the MIT License; see LICENSE file for more details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.title .dropdown {
|
.access-right {
|
||||||
display: none;
|
color: #e9711c;
|
||||||
}
|
float: right;
|
||||||
|
|
||||||
.top-bottom-padded {
|
|
||||||
margin: unset;
|
|
||||||
}
|
|
||||||
|
|
||||||
.label.label-keyword {
|
|
||||||
font-size: 0.71428571rem;
|
|
||||||
font-weight: 400;
|
|
||||||
background-color: @labelKeywordBackground;
|
|
||||||
border: unset;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,28 +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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
.creators {
|
|
||||||
margin: 0 0 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.creators span {
|
|
||||||
margin-left: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.creator:not(:last-child):after {
|
|
||||||
color: @greyDark;
|
|
||||||
content: ';';
|
|
||||||
}
|
|
||||||
|
|
||||||
.creator {
|
|
||||||
display: inline-block;
|
|
||||||
margin-right: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.identifiers {
|
|
||||||
display: inline;
|
|
||||||
}
|
|
||||||
@@ -12,7 +12,6 @@
|
|||||||
@import "overrides";
|
@import "overrides";
|
||||||
@import "frontpage";
|
@import "frontpage";
|
||||||
@import "record";
|
@import "record";
|
||||||
@import "search";
|
|
||||||
@import "macros";
|
@import "macros";
|
||||||
@import "login";
|
@import "login";
|
||||||
@import (css)
|
@import (css)
|
||||||
|
|||||||
@@ -12,56 +12,6 @@
|
|||||||
***/
|
***/
|
||||||
|
|
||||||
//@import "../invenio_app_rdm/variables.less";
|
//@import "../invenio_app_rdm/variables.less";
|
||||||
|
|
||||||
//@navbar_background_image: unset;
|
//@navbar_background_image: unset;
|
||||||
//@navbar_background_color: #ffffff;
|
//@navbar_background_color: #ffffff;
|
||||||
|
|
||||||
|
|
||||||
// badge colors, accessibility
|
|
||||||
@accessRight : #e9711c;
|
|
||||||
@accessRightOpen : #e9711c;
|
|
||||||
@accessRightRestricted: #fbbd08;
|
|
||||||
@accessRightEmbargoed : #db2828;
|
|
||||||
@accessRightClosed : #db2828;
|
|
||||||
|
|
||||||
// primary colors TU Graz
|
|
||||||
@tugrazBlack: #231f20;
|
|
||||||
@tugrazRed : #e4154b;
|
|
||||||
|
|
||||||
|
|
||||||
// accent colors
|
|
||||||
@greyDark : #777;
|
|
||||||
@greyLight : #E0E1E2;
|
|
||||||
@labelKeywordBackground: #E8E8E8;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// link and button colors
|
|
||||||
@primaryLinkInverted : #000;
|
|
||||||
@primaryLinkBackgroundInverted: #fff;
|
|
||||||
@primaryLink : #fff;
|
|
||||||
@primaryLinkHoverBackground : #000;
|
|
||||||
@primaryButton : #fff;
|
|
||||||
@primaryButtonHoverBackground : #000;
|
|
||||||
@primaryButtonInverted : #000f;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// general
|
|
||||||
@primaryBackground: #fff;
|
|
||||||
@primaryText : #000;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//account (signin, signup) specific
|
|
||||||
@primaryFormAccounts : #fff;
|
|
||||||
@formAccountsInputPlaceholder : silver;
|
|
||||||
@fieldInputSelectionBackground: #50a2ce;
|
|
||||||
@signInBackground : #245b78;
|
|
||||||
|
|
||||||
// footer specific
|
|
||||||
@footerGrey : #5E5E5E;
|
|
||||||
@footerBottomBackground: #f2f2f2;
|
|
||||||
|
|
||||||
// record specific
|
|
||||||
@recordVersionBackground : #f2f2f2;
|
|
||||||
@randomRecordsFrontpageArticle: rgba(34, 36, 38, .15);
|
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
"""invenio module for TUGRAZ theme."""
|
"""invenio module for TUGRAZ theme."""
|
||||||
|
|
||||||
from flask_babelex import gettext as _
|
from flask_babelex import gettext as _
|
||||||
from invenio_app_rdm.config import RECORDS_UI_ENDPOINTS
|
|
||||||
|
|
||||||
INVENIO_THEME_TUGRAZ_DEFAULT_VALUE = _("TU Graz Repository")
|
INVENIO_THEME_TUGRAZ_DEFAULT_VALUE = _("TU Graz Repository")
|
||||||
"""Default value for the application."""
|
"""Default value for the application."""
|
||||||
@@ -92,35 +91,6 @@ DEPOSITS_HEADER_TEMPLATE = "invenio_theme_tugraz/header.html"
|
|||||||
# Uncomment below to override records landingpage.
|
# Uncomment below to override records landingpage.
|
||||||
# from invenio_rdm_records.config import RECORDS_UI_ENDPOINTS
|
# from invenio_rdm_records.config import RECORDS_UI_ENDPOINTS
|
||||||
# RECORDS_UI_ENDPOINTS["recid"].update(
|
# RECORDS_UI_ENDPOINTS["recid"].update(
|
||||||
# template="invenio_theme_tugraz/record_landing_page.html"
|
# template="invenio_theme_tugraz/record_landing_page.html"
|
||||||
# )
|
# )
|
||||||
"""override the default record landing page"""
|
"""override the default record landing page"""
|
||||||
|
|
||||||
# Invenio-search-ui
|
|
||||||
# =============
|
|
||||||
# See https://invenio-search-ui.readthedocs.io/en/latest/configuration.html
|
|
||||||
# SEARCH_UI_SEARCH_TEMPLATE = "invenio_theme_tugraz/search.html"
|
|
||||||
# """override the default search page"""
|
|
||||||
|
|
||||||
TUG_ROUTES = {
|
|
||||||
"index": "/",
|
|
||||||
"comingsoon": "/comingsoon",
|
|
||||||
}
|
|
||||||
|
|
||||||
# Invenio-app-rdm
|
|
||||||
# =============
|
|
||||||
# See https://invenio-app-rdm.readthedocs.io/en/latest/configuration.html
|
|
||||||
# """override the default search page"""
|
|
||||||
# Keep this in sync
|
|
||||||
APP_RDM_ROUTES = {
|
|
||||||
"index": "/notvalid/notvalid/notvalid",
|
|
||||||
"help_search": "/help/search",
|
|
||||||
"record_search": "/search2",
|
|
||||||
"record_detail": "/records/<pid_value>",
|
|
||||||
"record_export": "/records/<pid_value>/export/<export_format>",
|
|
||||||
"record_file_preview": "/records/<pid_value>/preview/<path:filename>",
|
|
||||||
"record_file_download": "/records/<pid_value>/files/<path:filename>",
|
|
||||||
"deposit_search": "/uploads",
|
|
||||||
"deposit_create": "/uploads/new",
|
|
||||||
"deposit_edit": "/uploads/<pid_value>",
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -22,4 +22,4 @@ class FrontpageRecordsSearch(RecordsSearch):
|
|||||||
"""Default index and filter for frontpage search."""
|
"""Default index and filter for frontpage search."""
|
||||||
|
|
||||||
index = "rdmrecords-records"
|
index = "rdmrecords-records"
|
||||||
default_filter = Q("query_string", query=("access.record:public"))
|
default_filter = Q("query_string", query=("access.access_right:open"))
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
{%- extends config.INVENIO_THEME_TUGRAZ_BASE_TEMPLATE %}
|
|
||||||
|
|
||||||
{%- block page_body %}
|
|
||||||
<div class="ui container">
|
|
||||||
<h1 style="text-align: center;">comingsoon</h1>
|
|
||||||
</div>
|
|
||||||
{%- endblock %}
|
|
||||||
@@ -30,15 +30,15 @@
|
|||||||
|
|
||||||
<h2>{{_ ("Repository")}}</h2>
|
<h2>{{_ ("Repository")}}</h2>
|
||||||
<p class="bodytext">
|
<p class="bodytext">
|
||||||
<a href="{{ url_for('invenio_theme_tugraz.comingsoon') }}">
|
<a href="{{ url_for('invenio_app_rdm.coming_soon') }}">
|
||||||
{{_ ("Impressum")}}<i class="angle right icon"></i>
|
{{_ ("Impressum")}}<i class="angle right icon"></i>
|
||||||
</a>
|
</a>
|
||||||
<br>
|
<br>
|
||||||
<a href="{{ url_for('invenio_theme_tugraz.comingsoon') }}">
|
<a href="{{ url_for('invenio_app_rdm.coming_soon') }}">
|
||||||
{{_ ("Data protection")}}<i class="angle right icon"></i>
|
{{_ ("Data protection")}}<i class="angle right icon"></i>
|
||||||
</a>
|
</a>
|
||||||
<br>
|
<br>
|
||||||
<a href="{{ url_for('invenio_theme_tugraz.comingsoon') }}">
|
<a href="{{ url_for('invenio_app_rdm.coming_soon') }}">
|
||||||
{{_ ("Feedback")}}<i class="angle right icon"></i>
|
{{_ ("Feedback")}}<i class="angle right icon"></i>
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
<!--TODO: remove this once above is uncommented-->
|
<!--TODO: remove this once above is uncommented-->
|
||||||
<div class="two wide column main-menu-entry">
|
<div class="two wide column main-menu-entry">
|
||||||
<a href="{{url_for('invenio_app_rdm_records.deposit_search')}}">{{_ ("Uploads")}}</a>
|
<a href="{{url_for('invenio_app_rdm.deposits_user')}}">{{_ ("Uploads")}}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
|
|
||||||
{%- for r in records %}
|
{%- 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) %}
|
{%- set record_url = url_for('invenio_records_ui.recid', pid_value=r['id']) %}
|
||||||
|
|
||||||
<article>
|
<article>
|
||||||
<!--TODO:
|
<!--TODO:
|
||||||
@@ -94,17 +94,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!--Disabled on feb-relase - enable when stable-->
|
<div class="right floated column">
|
||||||
<!-- <div class="right floated column">
|
|
||||||
<span class="access-right">
|
<span class="access-right">
|
||||||
<i class="icon lock open"></i>
|
<i class="icon lock open"></i>
|
||||||
{{ r.access.access_right | make_dict_like('access_right') | vocabulary_title('access_right') }}
|
{{ r.access.access_right | make_dict_like('access_right') | vocabulary_title('access_right') }}
|
||||||
{%- for right in r.metadata.rights %}
|
|
||||||
<a target="_blank" href="{{right.url}}">{{ '(' ~ right.identifier ~ ')' }}</a>
|
|
||||||
{%- endfor %}
|
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div> -->
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{#
|
{#
|
||||||
Copyright (C) 2020 Zenodo
|
Copyright (C) 2020 Zenodo
|
||||||
Copyright (C) 2020 TUGRAZ
|
Copyright (C) 2020 TUGRAZ
|
||||||
|
Copyright (C) 2020 mojib wali.
|
||||||
|
|
||||||
invenio-theme-tugraz is free software; you can redistribute it and/or
|
invenio-theme-tugraz is free software; you can redistribute it and/or
|
||||||
modify it under the terms of the MIT License; see LICENSE file for more
|
modify it under the terms of the MIT License; see LICENSE file for more
|
||||||
@@ -11,11 +12,11 @@
|
|||||||
|
|
||||||
{%- for creators in authors_list %}
|
{%- for creators in authors_list %}
|
||||||
|
|
||||||
{%- if creators.identifiers and creators.identifiers.orcid %}
|
{%- if creators.identifiers.orcid %}
|
||||||
<a href="{{creators.identifiers.orcid|pid_url('orcid')}}" target="_blank" ><img class="inline-orcid" src="{{ url_for('static', filename='extra/orcid.png')}}" /></a>
|
<a href="{{creators.identifiers.orcid|pid_url('orcid')}}" target="_blank" ><img class="inline-orcid" src="{{ url_for('static', filename='extra/orcid.png')}}" /></a>
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
<span class="text-muted" {% if creators.affiliations %} {% for affiliation in creators.affiliations %} data-toggle="tooltip" title="{{affiliation.name}}" {%- endfor %} {% endif %}>{{creators.person_or_org.name}}</span>
|
<span class="text-muted" {% if creators.affiliations %} {% for affiliation in creators.affiliations %} data-toggle="tooltip" title="{{affiliation.name}}" {%- endfor %} {% endif %}>{{creators.name}}</span>
|
||||||
{% if not loop.last %}; {% endif %}
|
{% if not loop.last %}; {% endif %}
|
||||||
|
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
|
|||||||
@@ -13,82 +13,89 @@
|
|||||||
|
|
||||||
{%- block css %}
|
{%- block css %}
|
||||||
{{ super() }}
|
{{ super() }}
|
||||||
|
{{ webpack['invenio-rdm-records-theme.css'] }}
|
||||||
{%- endblock css %}
|
{%- endblock css %}
|
||||||
|
|
||||||
{%- from "invenio_app_rdm/landing_page/macros/files.html" import file_list_box, preview_file_box %}
|
{%- from "invenio_rdm_records/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 %}
|
{%- block page_body %}
|
||||||
|
|
||||||
<div class="ui container">
|
<div class="ui container">
|
||||||
<div class="ui padded relaxed grid">
|
<div class="ui padded relaxed grid">
|
||||||
<div class="two column row">
|
<div class="two column row">
|
||||||
<div class="ten wide column">
|
<div class="ten wide column">
|
||||||
{%- block record_body %}
|
{%- block record_body %}
|
||||||
|
|
||||||
<div class="badges">
|
<div class="left floated left aligned column">
|
||||||
<span class="ui label record-version" title="{{_('Publication date')}}">
|
<span class="ui label teal" title="Publication date">
|
||||||
{{ record.metadata.publication_date }} {{ '(' ~ record.metadata.version ~ ')' if record.metadata.version }}
|
{{ record.publication_date|to_date|format_date(format='long') }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<!--Resource type badge-->
|
<span class="ui label record-version">
|
||||||
<span class="ui label teal" title="{{_('Resource type')}}">
|
Version {{ record.version }}
|
||||||
{{record.ui.resource_type }}
|
</span>
|
||||||
|
|
||||||
|
<span class="ui label grey">
|
||||||
|
{{ record.resource_type | vocabulary_title('resource_type') }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h1 style="margin-top: -6px">{{ record.metadata.title }}</h1>
|
<h1>{{ record.titles[0].title }}</h1>
|
||||||
<p>{%- include "invenio_app_rdm/landing_page/details/creators.html" %}</p>
|
<p>
|
||||||
<p>{%- include "invenio_app_rdm/landing_page/details/contributors.html" %}</p>
|
{%- include "invenio_rdm_records/details/creators.html" %}
|
||||||
|
</p>
|
||||||
|
|
||||||
<div class="ui grid" style="margin-bottom: 10px;">
|
{%- if record.contributors %}
|
||||||
|
<p>
|
||||||
|
{%- include "invenio_rdm_records/details/contributors.html" %}
|
||||||
|
</p>
|
||||||
|
{%- endif %}
|
||||||
|
|
||||||
|
<div class="ui grid">
|
||||||
<div class="two column row">
|
<div class="two column row">
|
||||||
<div class="left floated column">
|
<div class="left floated column">
|
||||||
{%- for s in record.metadata.subjects %}
|
{%- include "invenio_theme_tugraz/details/doi.html" %}
|
||||||
<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>
|
||||||
|
|
||||||
<div class="right floated column">
|
<div class="right floated column">
|
||||||
<span class="ui label access-right">
|
{#
|
||||||
<i class="icon lock open"></i>
|
{%- include "invenio_rdm_records/details/contact.html" %}
|
||||||
{{ 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 class="access-right">
|
||||||
|
{{ record | vocabulary_title('access_right') | lower_case }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{%- include "invenio_app_rdm/landing_page/details/description.html" %}
|
{%- include "invenio_rdm_records/details/citation.html" %}
|
||||||
|
{%- include "invenio_rdm_records/details/keywords.html" %}
|
||||||
|
{%- include "invenio_rdm_records/details/description.html" %}
|
||||||
|
{%- include "invenio_rdm_records/details/licenses.html" %}
|
||||||
|
|
||||||
{# files #}
|
{# files #}
|
||||||
{%- if record.files and record | can_list_files %}
|
{%- if record.files and record | can_list_files %}
|
||||||
{%- set files = record.files | make_files_preview_compatible %}
|
{%- set files = record.files %}
|
||||||
{%- set default_preview_file = files | select_preview_file(default_preview=record.files.default_preview) %}
|
{{ preview_file_box(files | select_preview_file, pid) }}
|
||||||
{{ preview_file_box(default_preview_file, pid) }}
|
{{ file_list_box(files.dumps(), pid) }}
|
||||||
{{ file_list_box(files, pid) }}
|
{%- else %}
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<p style="text-align: center;">
|
||||||
|
No associated files.
|
||||||
|
</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{# More details #}
|
||||||
|
|
||||||
{%- endblock record_body %}
|
{%- endblock record_body %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="six wide column">
|
<div class="six wide column">
|
||||||
<div id="recordManagement"
|
|
||||||
class="ui container"
|
|
||||||
data-recid='{{ record["id"] | tojson }}'>
|
|
||||||
</div>
|
|
||||||
{% block sidebar %}
|
{% block sidebar %}
|
||||||
{%- include "invenio_app_rdm/landing_page/details/side_bar.html" %}
|
<div class="ui segment rdm-sidebar">
|
||||||
|
{%- include "invenio_rdm_records/details/side_bar.html" %}
|
||||||
|
</div>
|
||||||
{% endblock sidebar %}
|
{% endblock sidebar %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -99,9 +106,8 @@
|
|||||||
|
|
||||||
{%- block javascript %}
|
{%- block javascript %}
|
||||||
{{ super() }}
|
{{ super() }}
|
||||||
{{ webpack['invenio-app-rdm-records.js'] }}
|
{{ webpack['invenio-rdm-records-js.js'] }}
|
||||||
{# Communities management #}
|
{# Communities management #}
|
||||||
{{ webpack['invenio-communities-records.js'] }}
|
{{ webpack['invenio-communities-records.js'] }}
|
||||||
{{ webpack['previewer_theme.js'] }}
|
{{webpack['previewer_theme.js']}}
|
||||||
{{ webpack['invenio-app-rdm-record-management.js'] }}
|
|
||||||
{%- endblock javascript %}
|
{%- endblock javascript %}
|
||||||
|
|||||||
@@ -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 %}
|
|
||||||
@@ -12,4 +12,4 @@ This file is imported by ``invenio_theme_tugraz.__init__``,
|
|||||||
and parsed by ``setup.py``.
|
and parsed by ``setup.py``.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__version__ = "1.7.0"
|
__version__ = "1.3.1stable"
|
||||||
|
|||||||
@@ -12,48 +12,36 @@ from typing import Dict
|
|||||||
|
|
||||||
from elasticsearch_dsl.utils import AttrDict
|
from elasticsearch_dsl.utils import AttrDict
|
||||||
from flask import Blueprint, render_template
|
from flask import Blueprint, render_template
|
||||||
from flask_menu import current_menu
|
|
||||||
|
|
||||||
from .search import FrontpageRecordsSearch
|
from .search import FrontpageRecordsSearch
|
||||||
|
|
||||||
|
blueprint = Blueprint(
|
||||||
def ui_blueprint(app):
|
"invenio_theme_tugraz",
|
||||||
"""Blueprint for the routes and resources provided by Invenio-theme-tugraz."""
|
__name__,
|
||||||
routes = app.config.get("TUG_ROUTES")
|
template_folder="templates",
|
||||||
|
static_folder="static",
|
||||||
blueprint = Blueprint(
|
)
|
||||||
"invenio_theme_tugraz",
|
|
||||||
__name__,
|
|
||||||
template_folder="templates",
|
|
||||||
static_folder="static",
|
|
||||||
)
|
|
||||||
|
|
||||||
blueprint.add_url_rule(routes["index"], view_func=index)
|
|
||||||
blueprint.add_url_rule(routes["comingsoon"], view_func=comingsoon)
|
|
||||||
|
|
||||||
@blueprint.app_template_filter("make_dict_like")
|
|
||||||
def make_dict_like(value: str, key: str) -> Dict[str, str]:
|
|
||||||
"""Convert the value to a dict like structure.
|
|
||||||
|
|
||||||
in the form of a key -> value pair.
|
|
||||||
"""
|
|
||||||
return {key: value}
|
|
||||||
|
|
||||||
@blueprint.app_template_filter("cast_to_dict")
|
|
||||||
def cast_to_dict(attr_dict):
|
|
||||||
"""Return the dict structure of AttrDict variable."""
|
|
||||||
return AttrDict.to_dict(attr_dict)
|
|
||||||
|
|
||||||
return blueprint
|
|
||||||
|
|
||||||
|
|
||||||
|
@blueprint.route("/")
|
||||||
def index():
|
def index():
|
||||||
"""Frontpage."""
|
"""Render frontpage view."""
|
||||||
return render_template(
|
return render_template(
|
||||||
"invenio_theme_tugraz/index.html",
|
"invenio_theme_tugraz/index.html",
|
||||||
records=FrontpageRecordsSearch()[:5].sort("-created").execute())
|
records=FrontpageRecordsSearch()[:5].sort("-created").execute(),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def comingsoon():
|
@blueprint.app_template_filter("make_dict_like")
|
||||||
"""Frontpage."""
|
def make_dict_like(value: str, key: str) -> Dict[str, str]:
|
||||||
return render_template("invenio_theme_tugraz/comingsoon.html")
|
"""Convert the value to a dict like structure.
|
||||||
|
|
||||||
|
in the form of a key -> value pair.
|
||||||
|
"""
|
||||||
|
return {key: value}
|
||||||
|
|
||||||
|
|
||||||
|
@blueprint.app_template_filter("cast_to_dict")
|
||||||
|
def cast_to_dict(attr_dict):
|
||||||
|
"""Return the dict structure of AttrDict variable."""
|
||||||
|
return AttrDict.to_dict(attr_dict)
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ theme = WebpackThemeBundle(
|
|||||||
entry={
|
entry={
|
||||||
"invenio-theme-tugraz-theme": "./less/invenio_theme_tugraz/theme.less",
|
"invenio-theme-tugraz-theme": "./less/invenio_theme_tugraz/theme.less",
|
||||||
"invenio-theme-tugraz-js": "./js/invenio_theme_tugraz/theme.js",
|
"invenio-theme-tugraz-js": "./js/invenio_theme_tugraz/theme.js",
|
||||||
"invenio-theme-tugraz-search-app": "./js/invenio_theme_tugraz/search/index.js",
|
|
||||||
},
|
},
|
||||||
dependencies={},
|
dependencies={},
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -17,33 +17,28 @@ history = open("CHANGES.rst").read()
|
|||||||
|
|
||||||
tests_require = [
|
tests_require = [
|
||||||
"pytest-invenio>=1.4.0",
|
"pytest-invenio>=1.4.0",
|
||||||
"invenio-app>=1.3.0,<2.0.0",
|
'invenio-app>=1.3.0,<2.0.0',
|
||||||
|
"psycopg2-binary>=2.8.6",
|
||||||
]
|
]
|
||||||
|
|
||||||
# Should follow inveniosoftware/invenio versions
|
|
||||||
invenio_search_version = ">=1.4.0,<2.0.0"
|
|
||||||
invenio_db_version = ">=1.0.5,<2.0.0"
|
|
||||||
|
|
||||||
extras_require = {
|
extras_require = {
|
||||||
"elasticsearch7": [f"invenio-search[elasticsearch7]{invenio_search_version}"],
|
|
||||||
"mysql": [f"invenio-db[mysql,versioning]{invenio_db_version}"],
|
|
||||||
"postgresql": [f"invenio-db[postgresql,versioning]{invenio_db_version}"],
|
|
||||||
"sqlite": [f"invenio-db[versioning]{invenio_db_version}"],
|
|
||||||
"docs": [
|
"docs": [
|
||||||
"Sphinx>=3",
|
"Sphinx>=3",
|
||||||
],
|
],
|
||||||
|
"mysql": [
|
||||||
|
"invenio-db[mysql]>=1.0.0",
|
||||||
|
],
|
||||||
|
"postgresql": [
|
||||||
|
"invenio-db[postgresql]>=1.0.0",
|
||||||
|
],
|
||||||
|
"sqlite": [
|
||||||
|
"invenio-db>=1.0.0",
|
||||||
|
],
|
||||||
"tests": tests_require,
|
"tests": tests_require,
|
||||||
}
|
}
|
||||||
|
|
||||||
extras_require["all"] = []
|
extras_require["all"] = []
|
||||||
for name, reqs in extras_require.items():
|
for reqs in extras_require.values():
|
||||||
if name[0] == ":" or name in (
|
|
||||||
"elasticsearch7",
|
|
||||||
"mysql",
|
|
||||||
"postgresql",
|
|
||||||
"sqlite",
|
|
||||||
):
|
|
||||||
continue
|
|
||||||
extras_require["all"].extend(reqs)
|
extras_require["all"].extend(reqs)
|
||||||
|
|
||||||
setup_requires = [
|
setup_requires = [
|
||||||
@@ -57,9 +52,7 @@ install_requires = [
|
|||||||
"invenio-assets>=1.2.0",
|
"invenio-assets>=1.2.0",
|
||||||
"invenio-i18n>=1.2.0",
|
"invenio-i18n>=1.2.0",
|
||||||
"elasticsearch_dsl>=7.2.1",
|
"elasticsearch_dsl>=7.2.1",
|
||||||
"invenio_search>=1.4.0,<2.0.0",
|
"invenio_search>=1.3.1",
|
||||||
# keep this package updated.
|
|
||||||
"invenio_app_rdm>=0.18.8",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
packages = find_packages()
|
packages = find_packages()
|
||||||
@@ -90,7 +83,7 @@ setup(
|
|||||||
"invenio_theme_tugraz = invenio_theme_tugraz:InvenioThemeTugraz",
|
"invenio_theme_tugraz = invenio_theme_tugraz:InvenioThemeTugraz",
|
||||||
],
|
],
|
||||||
"invenio_base.blueprints": [
|
"invenio_base.blueprints": [
|
||||||
"invenio_theme_tugraz = invenio_theme_tugraz.views:ui_blueprint",
|
"invenio_theme_tugraz = invenio_theme_tugraz.views:blueprint",
|
||||||
],
|
],
|
||||||
"invenio_i18n.translations": [
|
"invenio_i18n.translations": [
|
||||||
"messages = invenio_theme_tugraz",
|
"messages = invenio_theme_tugraz",
|
||||||
|
|||||||
+26
-26
@@ -1,33 +1,33 @@
|
|||||||
# # -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# #
|
#
|
||||||
# # Copyright (C) 2020 mojib wali.
|
# Copyright (C) 2020 mojib wali.
|
||||||
# #
|
#
|
||||||
# # invenio-theme-tugraz is free software; you can redistribute it and/or
|
# invenio-theme-tugraz is free software; you can redistribute it and/or
|
||||||
# # modify it under the terms of the MIT License; see LICENSE file for more
|
# modify it under the terms of the MIT License; see LICENSE file for more
|
||||||
# # details.
|
# details.
|
||||||
|
|
||||||
# """Test views."""
|
"""Test views."""
|
||||||
|
|
||||||
# from elasticsearch_dsl.utils import AttrDict
|
from elasticsearch_dsl.utils import AttrDict
|
||||||
|
|
||||||
# from invenio_theme_tugraz.views import cast_to_dict, make_dict_like
|
from invenio_theme_tugraz.views import cast_to_dict, make_dict_like
|
||||||
|
|
||||||
|
|
||||||
# def test_make_dict_like():
|
def test_make_dict_like():
|
||||||
# """Test make_dict_like."""
|
"""Test make_dict_like."""
|
||||||
# access = {
|
access = {
|
||||||
# "access_right" : "open"
|
"access_right" : "open"
|
||||||
# }
|
}
|
||||||
# dicts = make_dict_like("open", "access_right")
|
dicts = make_dict_like("open", "access_right")
|
||||||
# assert access == dicts
|
assert access == dicts
|
||||||
|
|
||||||
|
|
||||||
# def test_cast_to_dict():
|
def test_cast_to_dict():
|
||||||
# """Test cast_to_dict."""
|
"""Test cast_to_dict."""
|
||||||
# resource_type = {
|
resource_type = {
|
||||||
# "subtype" : "publication-datamanagementplan",
|
"subtype" : "publication-datamanagementplan",
|
||||||
# "type" : "publication"
|
"type" : "publication"
|
||||||
# }
|
}
|
||||||
# expected = {'subtype': 'publication-datamanagementplan', 'type': 'publication'}
|
expected = {'subtype': 'publication-datamanagementplan', 'type': 'publication'}
|
||||||
# attr = cast_to_dict(AttrDict(resource_type))
|
attr = cast_to_dict(AttrDict(resource_type))
|
||||||
# assert expected == attr
|
assert expected == attr
|
||||||
|
|||||||
Reference in New Issue
Block a user