mirror of
https://github.com/Cian-H/invenio-theme-iform.git
synced 2025-12-23 05:01:58 +00:00
Compare commits
29 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
28403053d2 | ||
|
|
1aaaeaf6a2 | ||
|
|
1e9ea81f1c | ||
|
|
c4356b744b | ||
|
|
752b5128bf | ||
|
|
c6c4a0aa52 | ||
|
|
b09c491e9c | ||
|
|
a2c77a8332 | ||
|
|
69aff9f7b0 | ||
|
|
61a00bfbbc | ||
|
|
8913ef6301 | ||
|
|
ccfde55f45 | ||
|
|
2543ee9cbf | ||
|
|
1598b04ed6 | ||
|
|
90bd39a010 | ||
|
|
858f02ba19 | ||
|
|
a4a4d13322 | ||
|
|
02d171009e | ||
|
|
a6681cbe4b | ||
|
|
4e613637f9 | ||
|
|
4af121bda3 | ||
|
|
feba2ff440 | ||
|
|
5eb9c40081 | ||
|
|
22aed7444a | ||
|
|
0a0ae05331 | ||
|
|
4ce5bc6043 | ||
|
|
5e5464969b | ||
|
|
2e5f27a590 | ||
|
|
42259b4cb5 |
45
.github/workflows/tests.yml
vendored
45
.github/workflows/tests.yml
vendored
@@ -20,9 +20,42 @@ jobs:
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: [3.6, 3.7, 3.8]
|
||||
python-version: [3.6, 3.7, 3.8, 3.9]
|
||||
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:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
@@ -35,8 +68,7 @@ jobs:
|
||||
- name: Generate dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip setuptools py wheel requirements-builder
|
||||
requirements-builder -e all --level=${{ matrix.requirements-level }} setup.py > .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt
|
||||
|
||||
requirements-builder -e "$EXTRAS" --level=${{ matrix.requirements-level }} setup.py > .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt
|
||||
- name: Cache pip
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
@@ -45,10 +77,11 @@ jobs:
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
pip install -r .${{matrix.requirements-level}}-${{ matrix.python-version }}-requirements.txt
|
||||
pip install .[all]
|
||||
pip install -r .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt
|
||||
pip install ".[$EXTRAS]"
|
||||
pip freeze
|
||||
|
||||
docker --version
|
||||
docker-compose --version
|
||||
- name: Run tests
|
||||
run: |
|
||||
./run-tests.sh
|
||||
@@ -0,0 +1,324 @@
|
||||
/*
|
||||
* 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.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>
|
||||
);
|
||||
};
|
||||
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* 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,
|
||||
});
|
||||
@@ -9,3 +9,18 @@
|
||||
color: #e9711c;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.title .dropdown {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.top-bottom-padded {
|
||||
margin: unset;
|
||||
}
|
||||
|
||||
.label.label-keyword {
|
||||
font-size: 0.71428571rem;
|
||||
font-weight: 400;
|
||||
background-color: #E8E8E8;
|
||||
border: unset;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* 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: #777;
|
||||
content: ';';
|
||||
}
|
||||
|
||||
.creator {
|
||||
display: inline-block;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.identifiers {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.ui.access-right {
|
||||
color: #FFFFFF;
|
||||
|
||||
&.open {
|
||||
color: @accessRightOpen;
|
||||
}
|
||||
&.restricted {
|
||||
color: @accessRightRestricted;
|
||||
}
|
||||
&.embargoed {
|
||||
color: @accessRightEmbargoed;
|
||||
}
|
||||
&.closed {
|
||||
color: @accessRightClosed;
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,7 @@
|
||||
@import "overrides";
|
||||
@import "frontpage";
|
||||
@import "record";
|
||||
@import "search";
|
||||
@import "macros";
|
||||
@import "login";
|
||||
@import (css)
|
||||
|
||||
@@ -15,3 +15,8 @@
|
||||
|
||||
//@navbar_background_image: unset;
|
||||
//@navbar_background_color: #ffffff;
|
||||
|
||||
@accessRightOpen: #e9711c;
|
||||
@accessRightRestricted: #fbbd08;
|
||||
@accessRightEmbargoed: #db2828;
|
||||
@accessRightClosed: #db2828;
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
"""invenio module for TUGRAZ theme."""
|
||||
|
||||
from flask_babelex import gettext as _
|
||||
from invenio_app_rdm.config import RECORDS_UI_ENDPOINTS
|
||||
|
||||
INVENIO_THEME_TUGRAZ_DEFAULT_VALUE = _("TU Graz Repository")
|
||||
"""Default value for the application."""
|
||||
@@ -90,7 +91,13 @@ DEPOSITS_HEADER_TEMPLATE = "invenio_theme_tugraz/header.html"
|
||||
# See https://invenio-rdm-records.readthedocs.io/en/latest/configuration.html
|
||||
# Uncomment below to override records landingpage.
|
||||
# from invenio_rdm_records.config import RECORDS_UI_ENDPOINTS
|
||||
# RECORDS_UI_ENDPOINTS["recid"].update(
|
||||
# template="invenio_theme_tugraz/record_landing_page.html"
|
||||
# )
|
||||
RECORDS_UI_ENDPOINTS["recid"].update(
|
||||
template="invenio_theme_tugraz/record_landing_page.html"
|
||||
)
|
||||
"""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"""
|
||||
|
||||
@@ -21,5 +21,5 @@ class FrontpageRecordsSearch(RecordsSearch):
|
||||
class Meta:
|
||||
"""Default index and filter for frontpage search."""
|
||||
|
||||
index = "rdmrecords"
|
||||
index = "rdmrecords-records"
|
||||
default_filter = Q("query_string", query=("access.access_right:open"))
|
||||
|
||||
@@ -67,6 +67,12 @@
|
||||
|
||||
{%- block navbar_header %}
|
||||
{%- include "invenio_theme_tugraz/navbar.html" %}
|
||||
<!--Flask messages for accounts-->
|
||||
{%- block flashmessages %}
|
||||
{%- from "invenio_theme/macros/messages.html" import flashed_messages with context -%}
|
||||
{{ flashed_messages() }}
|
||||
|
||||
{%- endblock %}
|
||||
{%- endblock navbar_header %}
|
||||
|
||||
{#
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
<div class="ui container">
|
||||
|
||||
<div class="ui two column stackable centered grid switch-grid">
|
||||
<div class="ui stackable two column grid">
|
||||
<div class="centered row">
|
||||
<h1 class="ui header">{{ _('Create an Account') }}</h1>
|
||||
</div>
|
||||
|
||||
@@ -30,15 +30,15 @@
|
||||
|
||||
<h2>{{_ ("Repository")}}</h2>
|
||||
<p class="bodytext">
|
||||
<a href="{{ url_for('invenio_rdm_records.coming_soon') }}">
|
||||
<a href="{{ url_for('invenio_app_rdm.coming_soon') }}">
|
||||
{{_ ("Impressum")}}<i class="angle right icon"></i>
|
||||
</a>
|
||||
<br>
|
||||
<a href="{{ url_for('invenio_rdm_records.coming_soon') }}">
|
||||
<a href="{{ url_for('invenio_app_rdm.coming_soon') }}">
|
||||
{{_ ("Data protection")}}<i class="angle right icon"></i>
|
||||
</a>
|
||||
<br>
|
||||
<a href="{{ url_for('invenio_rdm_records.coming_soon') }}">
|
||||
<a href="{{ url_for('invenio_app_rdm.coming_soon') }}">
|
||||
{{_ ("Feedback")}}<i class="angle right icon"></i>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
@@ -36,11 +36,17 @@
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
{%- for item in current_menu.submenu('main').children|sort(attribute='order') if item.visible recursive %}
|
||||
<!--TODO: uncomment this once translation is on place-->
|
||||
<!-- {%- 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 %}
|
||||
{%- endfor %} -->
|
||||
|
||||
<!--TODO: remove this once above is uncommented-->
|
||||
<div class="two wide column main-menu-entry">
|
||||
<a href="{{url_for('invenio_app_rdm.deposits_user')}}">{{_ ("Uploads")}}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="margin-divider" class="ui divider main-menu-underline-line">
|
||||
|
||||
@@ -48,18 +48,13 @@
|
||||
something with doi
|
||||
-->
|
||||
<div class="badges">
|
||||
<!--Publication date badge-->
|
||||
<span class="ui label teal" title="{{_('Publication date')}}">
|
||||
{{ r.metadata.publication_date }}
|
||||
</span>
|
||||
|
||||
<!--Version badge-->
|
||||
<span class="ui label record-version" title="{{_('Version')}}">
|
||||
{{ (' Version ' ~ r.version ~ '') if r.version else 'Version' }}
|
||||
<!--Publication date/Version badge-->
|
||||
<span class="ui label record-version" title="{{_('Publication date')}}">
|
||||
{{ r.metadata.publication_date }} {{ '(' ~ r.metadata.version ~ ')' if r.metadata.version }}
|
||||
</span>
|
||||
|
||||
<!--Resource type badge-->
|
||||
<span class="ui label grey" title="{{_('Resource type')}}">
|
||||
<span class="ui label teal" title="{{_('Resource type')}}">
|
||||
{{r.metadata.resource_type | cast_to_dict | vocabulary_title('resource_type') }}
|
||||
</span>
|
||||
|
||||
@@ -87,16 +82,26 @@
|
||||
<div class="ui grid">
|
||||
<div class="two column row">
|
||||
<div class="left floated column">
|
||||
{%- for s in r.metadata.subjects %}
|
||||
<div class="ui tiny label">{{s.subject}}</div>
|
||||
{%- endfor %}
|
||||
<div>
|
||||
<small>
|
||||
{% trans user=userprofile, date=creation_date | dateformat('long')%}
|
||||
Uploaded on {{date}}
|
||||
{% endtrans %}
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="right floated column">
|
||||
<span class="access-right">
|
||||
{{ r.access.access_right | make_dict_like('access_right') | vocabulary_title('access_right') | lower }}
|
||||
<i class="icon lock open"></i>
|
||||
{{ 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>
|
||||
</div>
|
||||
</div>
|
||||
@@ -106,7 +111,7 @@
|
||||
-->
|
||||
|
||||
{%- endfor %}
|
||||
<div class="ui two column centered grid">
|
||||
<div class="ui centered grid">
|
||||
<a class="ui button more" href="{{url_for('invenio_search_ui.search')}}">{{_('More')}}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{#
|
||||
Copyright (C) 2020 Zenodo
|
||||
Copyright (C) 2020 TUGRAZ
|
||||
Copyright (C) 2020 mojib wali.
|
||||
|
||||
invenio-theme-tugraz is free software; you can redistribute it and/or
|
||||
modify it under the terms of the MIT License; see LICENSE file for more
|
||||
@@ -12,7 +11,7 @@
|
||||
|
||||
{%- for creators in authors_list %}
|
||||
|
||||
{%- if creators.identifiers.orcid %}
|
||||
{%- if creators.identifiers and 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>
|
||||
{%- endif %}
|
||||
|
||||
|
||||
@@ -13,89 +13,82 @@
|
||||
|
||||
{%- block css %}
|
||||
{{ super() }}
|
||||
{{ webpack['invenio-rdm-records-theme.css'] }}
|
||||
{%- endblock css %}
|
||||
|
||||
{%- from "invenio_rdm_records/macros/files.html" import file_list_box, preview_file_box %}
|
||||
{%- 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="left floated left aligned column">
|
||||
<span class="ui label teal" title="Publication date">
|
||||
{{ record.publication_date|to_date|format_date(format='long') }}
|
||||
<div class="badges">
|
||||
<span class="ui label record-version" title="{{_('Publication date')}}">
|
||||
{{ record.metadata.publication_date }} {{ '(' ~ record.metadata.version ~ ')' if record.metadata.version }}
|
||||
</span>
|
||||
|
||||
<span class="ui label record-version">
|
||||
Version {{ record.version }}
|
||||
</span>
|
||||
|
||||
<span class="ui label grey">
|
||||
{{ record.resource_type | vocabulary_title('resource_type') }}
|
||||
<!--Resource type badge-->
|
||||
<span class="ui label teal" title="{{_('Resource type')}}">
|
||||
{{record.ui.resource_type }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<h1>{{ record.titles[0].title }}</h1>
|
||||
<p>
|
||||
{%- include "invenio_rdm_records/details/creators.html" %}
|
||||
</p>
|
||||
<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>
|
||||
|
||||
{%- if record.contributors %}
|
||||
<p>
|
||||
{%- include "invenio_rdm_records/details/contributors.html" %}
|
||||
</p>
|
||||
{%- endif %}
|
||||
|
||||
<div class="ui grid">
|
||||
<div class="ui grid" style="margin-bottom: 10px;">
|
||||
<div class="two column row">
|
||||
<div class="left floated column">
|
||||
{%- include "invenio_theme_tugraz/details/doi.html" %}
|
||||
{%- 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">
|
||||
{#
|
||||
{%- include "invenio_rdm_records/details/contact.html" %}
|
||||
#}
|
||||
|
||||
<span class="access-right">
|
||||
{{ record | vocabulary_title('access_right') | lower_case }}
|
||||
<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_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" %}
|
||||
{%- include "invenio_app_rdm/landing_page/details/description.html" %}
|
||||
|
||||
|
||||
{# files #}
|
||||
{%- if record.files and record | can_list_files %}
|
||||
{%- set files = record.files %}
|
||||
{{ preview_file_box(files | select_preview_file, pid) }}
|
||||
{{ file_list_box(files.dumps(), pid) }}
|
||||
{%- else %}
|
||||
<br>
|
||||
|
||||
<p style="text-align: center;">
|
||||
No associated files.
|
||||
</p>
|
||||
{%- 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 %}
|
||||
|
||||
{# More details #}
|
||||
|
||||
{%- endblock record_body %}
|
||||
</div>
|
||||
|
||||
<div class="six wide column">
|
||||
{% block sidebar %}
|
||||
<div class="ui segment rdm-sidebar">
|
||||
{%- include "invenio_rdm_records/details/side_bar.html" %}
|
||||
<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>
|
||||
@@ -106,8 +99,9 @@
|
||||
|
||||
{%- block javascript %}
|
||||
{{ super() }}
|
||||
{{ webpack['invenio-rdm-records-js.js'] }}
|
||||
{{ webpack['invenio-app-rdm-records.js'] }}
|
||||
{# Communities management #}
|
||||
{{ webpack['invenio-communities-records.js'] }}
|
||||
{{webpack['previewer_theme.js']}}
|
||||
{{ webpack['previewer_theme.js'] }}
|
||||
{{ webpack['invenio-app-rdm-record-management.js'] }}
|
||||
{%- endblock javascript %}
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
{#
|
||||
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 %}
|
||||
@@ -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: 2020-10-06 14:28+0200\n"
|
||||
"POT-Creation-Date: 2021-01-04 14:18+0100\n"
|
||||
"PO-Revision-Date: 2020-10-06 10:27+0200\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language: de\n"
|
||||
@@ -17,19 +17,18 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.8.0\n"
|
||||
"Generated-By: Babel 2.9.0\n"
|
||||
|
||||
#: invenio_theme_tugraz/config.py:13 invenio_theme_tugraz/config.py:52
|
||||
#: invenio_theme_tugraz/config.py:13 invenio_theme_tugraz/config.py:50
|
||||
msgid "TU Graz Repository"
|
||||
msgstr ""
|
||||
msgstr "TU Graz Repository"
|
||||
|
||||
#: invenio_theme_tugraz/config.py:55
|
||||
#: invenio_theme_tugraz/config.py:53
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:31
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:67
|
||||
msgid "Repository"
|
||||
msgstr "Repository"
|
||||
|
||||
#: invenio_theme_tugraz/config.py:80
|
||||
#: invenio_theme_tugraz/config.py:76
|
||||
msgid "German"
|
||||
msgstr "Deutsche"
|
||||
|
||||
@@ -52,63 +51,71 @@ msgstr ""
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:4
|
||||
msgid "Trusted"
|
||||
msgstr ""
|
||||
msgstr "Vertrauenswürdig"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:4
|
||||
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"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:5
|
||||
msgid "Citeable"
|
||||
msgstr ""
|
||||
msgstr "Zitierfähig "
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:5
|
||||
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"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:6
|
||||
msgid "No waiting time"
|
||||
msgstr ""
|
||||
msgstr "Keine Wartezeit"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:6
|
||||
msgid ""
|
||||
"Uploads are made available online as soon as you hit publish, and your "
|
||||
"DOI is registered within seconds."
|
||||
msgstr ""
|
||||
"Uploads stehen sofort nach drücken auf “Veröffentlichen” zur Verfügung. "
|
||||
"Ihre DOI wird innerhalb von Sekunden registriert."
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:7
|
||||
msgid "Open or closed"
|
||||
msgstr ""
|
||||
msgstr "Offen oder geschlossen"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:7
|
||||
msgid ""
|
||||
"Share e.g. anonymized clinical trial data with only medical professionals"
|
||||
" via our restricted access mode."
|
||||
msgstr ""
|
||||
"Teilen Sie z.B. anonymisierte klinische Studiendaten nur mit "
|
||||
"medizinischem Fachpersonalüber unseren eingeschränkten Zugriffsmodus."
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:8
|
||||
msgid "Versioning"
|
||||
msgstr ""
|
||||
msgstr "Versionierung"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:8
|
||||
msgid "Easily update your dataset with our versioning feature."
|
||||
msgstr ""
|
||||
msgstr "Einfaches Updaten ihrer Datensätze mit unserere Versionierung."
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:9
|
||||
msgid "Usage statisics"
|
||||
msgstr ""
|
||||
msgstr "Nutzungsstatistiken"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:9
|
||||
msgid "All uploads display standards compliant usage statistics"
|
||||
msgstr ""
|
||||
msgstr "Alle Uploads entsprechen den Standards der Nutzungsstatistiken."
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:34
|
||||
msgid "Impressum"
|
||||
msgstr ""
|
||||
msgstr "Imprint"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:38
|
||||
msgid "Data protection"
|
||||
@@ -116,43 +123,43 @@ msgstr "Datenschutzerklärung"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:42
|
||||
msgid "Feedback"
|
||||
msgstr ""
|
||||
msgstr "Feedback"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:51
|
||||
msgid "Features"
|
||||
msgstr ""
|
||||
msgstr "Features"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:53
|
||||
msgid "Scalability"
|
||||
msgstr ""
|
||||
msgstr "Skalierbarkeit"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:55
|
||||
msgid "Institutional integration"
|
||||
msgstr ""
|
||||
msgstr "Institutionelle Einbindung"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:57
|
||||
msgid "Next Generation Repository"
|
||||
msgstr ""
|
||||
msgstr "Repositorium der nächsten Generation"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:60
|
||||
msgid "Repository Profiles"
|
||||
msgstr ""
|
||||
msgstr "Repositorienprofile"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:62
|
||||
msgid "Resilient"
|
||||
msgstr ""
|
||||
msgstr "Resilient, widerstandsfähig"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:69
|
||||
msgid "Connected Services"
|
||||
msgstr ""
|
||||
msgstr "Verbundene Services "
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:73
|
||||
msgid "PURE"
|
||||
msgstr ""
|
||||
msgstr "PURE"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:76
|
||||
msgid "CampusOnline"
|
||||
msgstr ""
|
||||
msgstr "CampusOnline"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:79
|
||||
msgid "Research Data Management"
|
||||
@@ -160,7 +167,7 @@ msgstr "Forschungsdatenmanagement"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
|
||||
msgid "Accessibility"
|
||||
msgstr ""
|
||||
msgstr "Barrierefreiheit"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87
|
||||
msgid "Tipp:"
|
||||
@@ -168,15 +175,19 @@ msgstr ""
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87
|
||||
msgid "Use Ctrl + and Crtl -"
|
||||
msgstr ""
|
||||
msgstr "Verwenden Sie Strg+ und Strg-"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87
|
||||
msgid "to change the font size."
|
||||
msgstr ""
|
||||
msgstr "Um die Schriftgröße zu ändern."
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:34
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:35
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
msgstr "Startseite"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:48
|
||||
msgid "Uploads"
|
||||
msgstr "Hochladen"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:24
|
||||
msgid "Type and press enter to search"
|
||||
@@ -184,19 +195,19 @@ msgstr "Suchbegriff eingeben und “Enter” drücken (?)"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:40
|
||||
msgid "Recent uploads"
|
||||
msgstr ""
|
||||
msgstr "Kürzlich hochgeladene Dateien"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:52
|
||||
msgid "Publication date"
|
||||
msgstr ""
|
||||
msgstr "Datum der Veröffentlichung"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:57
|
||||
msgid "Version"
|
||||
msgstr ""
|
||||
msgstr "Version"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:62
|
||||
msgid "Resource type"
|
||||
msgstr ""
|
||||
msgstr "Art der Veröffentlichung"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:91
|
||||
#, python-format
|
||||
@@ -204,157 +215,161 @@ msgid ""
|
||||
"\n"
|
||||
" Uploaded on %(date)s\n"
|
||||
" "
|
||||
msgstr ""
|
||||
msgstr "Hochgeladen am %(date)s\n"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:110
|
||||
msgid "More"
|
||||
msgstr ""
|
||||
msgstr "Mehr"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:119
|
||||
msgid "Need help?"
|
||||
msgstr ""
|
||||
msgstr "Brauchen Sie Hilfe?"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:123
|
||||
msgid "Contact us"
|
||||
msgstr ""
|
||||
msgstr "Kontaktiere uns"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:127
|
||||
msgid "prioritizes all Recent uploads."
|
||||
msgstr ""
|
||||
msgstr "Reiht die neuesten Uploads vor."
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:130
|
||||
msgid "We can help with:"
|
||||
msgstr ""
|
||||
msgstr "Wir können helfen bei:"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:135
|
||||
msgid "Uploading your research data, software, preprints, etc."
|
||||
msgstr ""
|
||||
msgstr "Hochladen Ihrer Forschungsdaten, Software, Preprints usw."
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:136
|
||||
msgid "One-on-one with"
|
||||
msgstr ""
|
||||
msgstr "Eins-zu-eins mit"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:136
|
||||
msgid "supporters."
|
||||
msgstr ""
|
||||
msgstr "Unterstützern"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:137
|
||||
msgid "Quota increases beyond our default policy."
|
||||
msgstr ""
|
||||
msgstr "Erhöhung Ihres Kontingents über das vertraglich Zugesicherte hinaus."
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:138
|
||||
msgid "Scripts for automated uploading of larger datasets."
|
||||
msgstr ""
|
||||
msgstr "Skripte zum automatisierten Hochladen größerer Datensätze."
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:143
|
||||
msgid "Why use"
|
||||
msgstr ""
|
||||
msgstr "Warum"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:77
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:67
|
||||
#, fuzzy
|
||||
msgid "REPOSITORY"
|
||||
msgstr "Repository"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:69
|
||||
msgid "LIBRARY & ARCHIVES"
|
||||
msgstr "Bibliothek und Archiv"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:79
|
||||
msgid "SCIENCE"
|
||||
msgstr "Wissenschaft"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:78
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:80
|
||||
msgid "PASSION"
|
||||
msgstr "Leidenschaft"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:79
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:81
|
||||
msgid "TECHNOLOGY"
|
||||
msgstr "Technik"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:8
|
||||
#: 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 ""
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:60
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:81
|
||||
msgid "Sign up"
|
||||
msgstr "Registrierung"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:15
|
||||
msgid "Log in"
|
||||
msgstr "Einloggen"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:30
|
||||
msgid "Logout"
|
||||
msgid "Sign out"
|
||||
msgstr "Ausloggen"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:24
|
||||
msgid "Log in to Repository"
|
||||
msgstr ""
|
||||
msgstr "Anmelden"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:31
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:32
|
||||
#, python-format
|
||||
msgid " Login with %(type)s"
|
||||
msgstr ""
|
||||
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:54
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:36
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:55
|
||||
msgid "Or"
|
||||
msgstr "Oder"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:46
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:47
|
||||
msgid "Log In"
|
||||
msgstr "Einloggen"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:58
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:59
|
||||
#, python-format
|
||||
msgid "New to %(sitename)s?"
|
||||
msgstr ""
|
||||
msgstr "Neu im %(sitename)s?"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:68
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:69
|
||||
msgid "Forgot password?"
|
||||
msgstr ""
|
||||
msgstr "Passwort vergessen"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:22
|
||||
msgid "Create an Account"
|
||||
msgstr ""
|
||||
msgstr "Einen Account erstellen"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:27
|
||||
msgid "Citeable. Discoverable."
|
||||
msgstr ""
|
||||
msgstr "Zitierfähig. Auffindbar."
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:29
|
||||
msgid ""
|
||||
"Uploads get a Digital Object Identifier (DOI) to make them easily and "
|
||||
"uniquely citeable."
|
||||
msgstr ""
|
||||
"Uploads erhalten eine DOI und werden damit leichtauffindbar und "
|
||||
"zitierfähig."
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:30
|
||||
msgid "Communities."
|
||||
msgstr ""
|
||||
msgstr "Communities"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:32
|
||||
msgid ""
|
||||
"Accept or reject uploads to your own community (e.g workshops, EU "
|
||||
"projects, institutions or entire disciplines)."
|
||||
msgstr ""
|
||||
"Annehmen oder Ablehnen von Uploads in Ihrer eigenen Community (z.B. "
|
||||
"workshop, EU-Projekt, Forschungseinrichtung, Disziplin)"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:34
|
||||
msgid "Trusted Research Data Management"
|
||||
msgstr ""
|
||||
msgstr "Vertrauenswürdiges Forschungsdatenmanagement"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:36
|
||||
msgid ""
|
||||
"Built on top of TU Graz expertise in managing of the research data from "
|
||||
"the Graz University of Technology."
|
||||
msgstr ""
|
||||
msgstr "Gebaut basierend auf Expertise derTU Graz im Bereich Data Management"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:50
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:51
|
||||
msgid "Sign up with TUGRAZ "
|
||||
msgstr ""
|
||||
msgstr "Mit Ihrem TUGonline-Account einloggen"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/details/doi.html:28
|
||||
msgid "RDM DOI Badge"
|
||||
msgstr ""
|
||||
msgstr "RDM DOI Abzeichen"
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/details/doi.html:32
|
||||
msgid "DOI"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid ""
|
||||
#~ "your research is stored safely for "
|
||||
#~ "the future in CERN’s Data Centre "
|
||||
#~ "for as long as CERN exists."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "One-on-one with {{config.THEME_SITENAME}} supporters."
|
||||
#~ msgstr ""
|
||||
msgstr "DOI"
|
||||
|
||||
|
||||
@@ -1,34 +1,33 @@
|
||||
# Translations template for invenio-theme-tugraz.
|
||||
# Copyright (C) 2020 mojib wali
|
||||
# Copyright (C) 2021 mojib wali
|
||||
# This file is distributed under the same license as the
|
||||
# invenio-theme-tugraz project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2021.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: invenio-theme-tugraz 1.0.4\n"
|
||||
"Project-Id-Version: invenio-theme-tugraz 1.3.1\n"
|
||||
"Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n"
|
||||
"POT-Creation-Date: 2020-10-06 14:28+0200\n"
|
||||
"POT-Creation-Date: 2021-01-04 14:18+0100\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"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.8.0\n"
|
||||
"Generated-By: Babel 2.9.0\n"
|
||||
|
||||
#: invenio_theme_tugraz/config.py:13 invenio_theme_tugraz/config.py:52
|
||||
#: invenio_theme_tugraz/config.py:13 invenio_theme_tugraz/config.py:50
|
||||
msgid "TU Graz Repository"
|
||||
msgstr ""
|
||||
|
||||
#: invenio_theme_tugraz/config.py:55
|
||||
#: invenio_theme_tugraz/config.py:53
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:31
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:67
|
||||
msgid "Repository"
|
||||
msgstr ""
|
||||
|
||||
#: invenio_theme_tugraz/config.py:80
|
||||
#: invenio_theme_tugraz/config.py:76
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
@@ -171,10 +170,14 @@ msgstr ""
|
||||
msgid "to change the font size."
|
||||
msgstr ""
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:34
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:35
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:48
|
||||
msgid "Uploads"
|
||||
msgstr ""
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:24
|
||||
msgid "Type and press enter to search"
|
||||
msgstr ""
|
||||
@@ -247,22 +250,30 @@ msgstr ""
|
||||
msgid "Why use"
|
||||
msgstr ""
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:77
|
||||
msgid "SCIENCE"
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:67
|
||||
msgid "REPOSITORY"
|
||||
msgstr ""
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:78
|
||||
msgid "PASSION"
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:69
|
||||
msgid "LIBRARY & ARCHIVES"
|
||||
msgstr ""
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:79
|
||||
msgid "SCIENCE"
|
||||
msgstr ""
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:80
|
||||
msgid "PASSION"
|
||||
msgstr ""
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:81
|
||||
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:59
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:80
|
||||
msgid "Sign Up"
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:60
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:81
|
||||
msgid "Sign up"
|
||||
msgstr ""
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:15
|
||||
@@ -270,33 +281,33 @@ msgid "Log in"
|
||||
msgstr ""
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:30
|
||||
msgid "Logout"
|
||||
msgid "Sign out"
|
||||
msgstr ""
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:24
|
||||
msgid "Log in to Repository"
|
||||
msgstr ""
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:31
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:32
|
||||
#, python-format
|
||||
msgid " Login with %(type)s"
|
||||
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:54
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:36
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:55
|
||||
msgid "Or"
|
||||
msgstr ""
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:46
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:47
|
||||
msgid "Log In"
|
||||
msgstr ""
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:58
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:59
|
||||
#, python-format
|
||||
msgid "New to %(sitename)s?"
|
||||
msgstr ""
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:68
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:69
|
||||
msgid "Forgot password?"
|
||||
msgstr ""
|
||||
|
||||
@@ -334,7 +345,7 @@ msgid ""
|
||||
"the Graz University of Technology."
|
||||
msgstr ""
|
||||
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:50
|
||||
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:51
|
||||
msgid "Sign up with TUGRAZ "
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -12,4 +12,4 @@ This file is imported by ``invenio_theme_tugraz.__init__``,
|
||||
and parsed by ``setup.py``.
|
||||
"""
|
||||
|
||||
__version__ = "1.2.0"
|
||||
__version__ = "1.6.0"
|
||||
|
||||
@@ -17,6 +17,7 @@ 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",
|
||||
},
|
||||
dependencies={},
|
||||
)
|
||||
|
||||
25
run-tests.sh
25
run-tests.sh
@@ -1,16 +1,33 @@
|
||||
#!/usr/bin/env sh
|
||||
#!/usr/bin/env bash
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020 mojib wali.
|
||||
# Copyright (C) 2019-2020 CERN.
|
||||
# Copyright (C) 2019-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.
|
||||
|
||||
|
||||
# Quit on errors
|
||||
set -o errexit
|
||||
|
||||
# Quit on unbound symbols
|
||||
set -o nounset
|
||||
|
||||
# Always bring down docker services
|
||||
|
||||
function cleanup() {
|
||||
eval "$(docker-services-cli down --env)"
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
|
||||
python -m check_manifest --ignore ".*-requirements.txt"
|
||||
python -m sphinx.cmd.build -qnNW docs docs/_build/html
|
||||
docker-services-cli --verbose up es postgresql redis
|
||||
eval "$(docker-services-cli up --db ${DB:-postgresql} --search ${SEARCH:-elasticsearch} --cache ${CACHE:-redis} --env)"
|
||||
python -m pytest
|
||||
tests_exit_code=$?
|
||||
docker-services-cli down
|
||||
python -m sphinx.cmd.build -qnNW -b doctest docs docs/_build/doctest
|
||||
exit "$tests_exit_code"
|
||||
36
setup.py
36
setup.py
@@ -17,29 +17,33 @@ history = open("CHANGES.rst").read()
|
||||
|
||||
tests_require = [
|
||||
"pytest-invenio>=1.4.0",
|
||||
'invenio-app>=1.3.0,<2.0.0',
|
||||
# TODO: remove once a new release is out
|
||||
'docker-services-cli>=0.2.1,<0.3.0'
|
||||
"invenio-app>=1.3.0,<2.0.0",
|
||||
]
|
||||
|
||||
# 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 = {
|
||||
"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": [
|
||||
"Sphinx>=1.5.1",
|
||||
],
|
||||
"mysql": [
|
||||
"invenio-db[mysql]>=1.0.0",
|
||||
],
|
||||
"postgresql": [
|
||||
"invenio-db[postgresql]>=1.0.0",
|
||||
],
|
||||
"sqlite": [
|
||||
"invenio-db>=1.0.0",
|
||||
"Sphinx>=3",
|
||||
],
|
||||
"tests": tests_require,
|
||||
}
|
||||
|
||||
extras_require["all"] = []
|
||||
for reqs in extras_require.values():
|
||||
for name, reqs in extras_require.items():
|
||||
if name[0] == ":" or name in (
|
||||
"elasticsearch7",
|
||||
"mysql",
|
||||
"postgresql",
|
||||
"sqlite",
|
||||
):
|
||||
continue
|
||||
extras_require["all"].extend(reqs)
|
||||
|
||||
setup_requires = [
|
||||
@@ -53,7 +57,9 @@ install_requires = [
|
||||
"invenio-assets>=1.2.0",
|
||||
"invenio-i18n>=1.2.0",
|
||||
"elasticsearch_dsl>=7.2.1",
|
||||
"invenio_search>=1.3.1",
|
||||
"invenio_search>=1.4.0,<2.0.0",
|
||||
# keep this package updated.
|
||||
"invenio_app_rdm>=0.18.8",
|
||||
]
|
||||
|
||||
packages = find_packages()
|
||||
|
||||
@@ -22,6 +22,7 @@ from flask_babelex import Babel
|
||||
from invenio_db import InvenioDB, db
|
||||
from invenio_i18n import InvenioI18N
|
||||
from invenio_search import InvenioSearch
|
||||
from sqlalchemy_utils.functions import create_database, database_exists, drop_database
|
||||
|
||||
from invenio_theme_tugraz import InvenioThemeTugraz
|
||||
|
||||
|
||||
Reference in New Issue
Block a user