Upgrade from bootstrap 4 to 5
This commit is contained in:
parent
fd281532e6
commit
4446cbed6e
27
depicts/mediawiki_category.py
Normal file
27
depicts/mediawiki_category.py
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
from .category import Category
|
||||||
|
from .mediawiki import mediawiki_query
|
||||||
|
from .type import CallParams
|
||||||
|
|
||||||
|
|
||||||
|
def process_cats(cats: list[dict[str, str]], site: str) -> list[Category]:
|
||||||
|
"""Process categories."""
|
||||||
|
return [Category(cat["title"], site) for cat in cats]
|
||||||
|
|
||||||
|
|
||||||
|
def get_categories(titles: list[str], site: str) -> list[tuple[str, list[Category]]]:
|
||||||
|
"""Get categories for pages with given titles."""
|
||||||
|
params: CallParams = {
|
||||||
|
"prop": "categories",
|
||||||
|
"clshow": "!hidden",
|
||||||
|
"cllimit": "max",
|
||||||
|
}
|
||||||
|
from_wiki = mediawiki_query(titles, params, site)
|
||||||
|
title_and_cats = []
|
||||||
|
for i in from_wiki:
|
||||||
|
if "categories" not in i:
|
||||||
|
continue
|
||||||
|
cats = process_cats(i["categories"], site)
|
||||||
|
if not cats:
|
||||||
|
continue
|
||||||
|
title_and_cats.append((i["title"], cats))
|
||||||
|
return title_and_cats
|
|
@ -2,7 +2,7 @@
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<link rel="stylesheet" href="{{ url_for('static', filename='javascript/bootstrap4/css/bootstrap.min.css') }}">
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
|
||||||
<title>
|
<title>
|
||||||
|
@ -27,8 +27,7 @@
|
||||||
{% block content %}{% endblock %}
|
{% block content %}{% endblock %}
|
||||||
|
|
||||||
<script src="{{ url_for('static', filename='javascript/jquery/jquery.min.js') }}"></script>
|
<script src="{{ url_for('static', filename='javascript/jquery/jquery.min.js') }}"></script>
|
||||||
{# <script src="{{ url_for('static', filename='javascript/popper.js/popper.min.js') }}"></script> #}
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script>
|
||||||
<script src="{{ url_for('static', filename='javascript/bootstrap4/js/bootstrap.min.js') }}"></script>
|
|
||||||
|
|
||||||
{% block script %}{% endblock %}
|
{% block script %}{% endblock %}
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -6,16 +6,40 @@
|
||||||
<style>
|
<style>
|
||||||
div.description { margin-left: 2em; color: rgb(96, 96, 96); }
|
div.description { margin-left: 2em; color: rgb(96, 96, 96); }
|
||||||
span.description { color: rgb(96, 96, 96); }
|
span.description { color: rgb(96, 96, 96); }
|
||||||
|
|
||||||
|
#artwork {
|
||||||
|
position: fixed; /* This keeps the map in place when the page is scrolled */
|
||||||
|
top: 56px;
|
||||||
|
left: 0; /* Positioned on the right side */
|
||||||
|
width: 50%; /* Half the screen width */
|
||||||
|
bottom: 0px;
|
||||||
|
z-index: -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#artwork img {
|
||||||
|
object-fit: contain; /* The image will be scaled to maintain its aspect ratio */
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#main {
|
||||||
|
float: right; /* Floats the main content to the right */
|
||||||
|
width: 48%; /* Adjusted width of the main content */
|
||||||
|
height: auto; /* Height is set to auto, allowing it to expand naturally */
|
||||||
|
margin-right: 1%;
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="container-fluid mt-2">
|
<div id="artwork">
|
||||||
<div class="row">
|
<div class="w-100 h-100">
|
||||||
<div class="col-md">
|
<img src="{{ image.thumburl }}" />
|
||||||
<img src="{{ image.thumburl }}" class="w-100" />
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md">
|
<div id="main">
|
||||||
<h1>{{ self.title() }}</h1>
|
<h1>{{ self.title() }}</h1>
|
||||||
{% if label_languages %}
|
{% if label_languages %}
|
||||||
<p>Label from:
|
<p>Label from:
|
||||||
|
@ -179,8 +203,6 @@ span.description { color: rgb(96, 96, 96); }
|
||||||
</form>
|
</form>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block script %}
|
{% block script %}
|
||||||
|
|
|
@ -5,40 +5,39 @@
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
|
||||||
{% macro navbar_inner(name) %}
|
{% macro navbar_inner(name) %}
|
||||||
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
<div class="container-fluid">
|
||||||
<span class="navbar-toggler-icon"></span>
|
<a class="navbar-brand" href="{{ url_for('browse_page') }}">Wikidata Art Depiction Explorer</a>
|
||||||
</button>
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
<a class="navbar-brand" href="{{ url_for('browse_page') }}">Wikidata Art Depiction Explorer</a>
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
<ul class="navbar-nav mr-auto">
|
<ul class="navbar-nav me-auto">
|
||||||
<ul class="navbar-nav mr-auto">
|
{{ nav_item('browse_page', 'Browse') }}
|
||||||
{{ nav_item('browse_page', 'Browse') }}
|
{{ nav_item('list_edits', 'Recent changes') }}
|
||||||
{{ nav_item('list_edits', 'Recent changes') }}
|
{{ nav_item('random_artwork', 'Random artwork') }}
|
||||||
{{ nav_item('random_artwork', 'Random artwork') }}
|
</ul>
|
||||||
</ul>
|
<ul class="navbar-nav">
|
||||||
</ul>
|
<li class="nav-item">
|
||||||
<ul class="navbar-nav">
|
{% if g.user %}
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
{% if g.user %}
|
<a class="nav-link" href="{{ url_for('user_page', username=g.user) }}">{{ g.user }}</a>
|
||||||
<li class="nav-item">
|
</li>
|
||||||
<a class="nav-link" href="{{ url_for('user_page', username=g.user) }}">{{ g.user }}</a>
|
<li class="nav-item">
|
||||||
</li>
|
<a class="nav-link" href="{{ url_for('oauth_disconnect', next=request.script_root + request.full_path) }}">switch user</a>
|
||||||
<li class="nav-item">
|
</li>
|
||||||
<a class="nav-link" href="{{ url_for('oauth_disconnect', next=request.script_root + request.full_path) }}">switch user</a>
|
{% else %}
|
||||||
</li>
|
<li class="nav-item">
|
||||||
{% else %}
|
{% set login_url = url_for('start_oauth', next=request.script_root + request.full_path) %}
|
||||||
<li class="nav-item">
|
<a class="nav-link" href="{{ login_url }}">connect with Wikidata</a>
|
||||||
{% set login_url = url_for('start_oauth', next=request.script_root + request.full_path) %}
|
</li>
|
||||||
<a class="nav-link" href="{{ login_url }}">connect with Wikidata</a>
|
{% endif %}
|
||||||
</li>
|
</ul>
|
||||||
{% endif %}
|
</div>
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
|
||||||
{% macro navbar() %}
|
{% macro navbar() %}
|
||||||
<nav class="navbar navbar-toggleable-md navbar-expand-lg navbar-dark bg-dark">
|
<nav class="navbar navbar-expand-lg bg-dark" data-bs-theme="dark">
|
||||||
{{ navbar_inner() }}
|
{{ navbar_inner() }}
|
||||||
</nav>
|
</nav>
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
|
Loading…
Reference in a new issue