deployment ready?

This commit is contained in:
root
2020-09-25 09:22:39 +00:00
parent c077139e6d
commit b1fc02e809
11 changed files with 31610 additions and 96 deletions

View File

@@ -1,12 +1,11 @@
docker stop flask-fet-fotos
docker container rm flask-fet-fotos
docker build -t flask-fet-fotos .
#docker run -d --name mycontainer -p 8080:8080 -v $(pwd):/app -e FLASK_APP=main.py -e FLASK_DEBUG=1 myimage flask run --host=0.0.0.0 --port=8080
#
while true; do
read -p "Run a docker container?" yn
case $yn in
[Yy]* ) docker run --name flask-fet-fotos -d -p 8080:8080 \
-v "$(pwd)/data:/mnt" flask-fet-fotos; break;;
[Yy]* ) docker run -d --name flask-fet-fotos -p 8002:8002 -v $(pwd):/app -e pages_root=/app/data -e FLASK_APP=main.py -e FLASK_DEBUG=1 flask-fet-fotos flask run --host=0.0.0.0 --port=8002; break;;
[Nn]* ) break;;
* ) echo "Please answer yes or no.";;
esac
@@ -14,3 +13,7 @@ done
#-v "$(pwd):/app"
#docker run --name flask-fet-fotos -d -p 8080:8080 \
# -v "$(pwd)/data:/mnt" flask-fet-fotos; break;;
#

View File

@@ -1 +1,2 @@
title: title
template: gallery_index.html

0
data/test.html Normal file
View File

12
docker-compose.yml Normal file
View File

@@ -0,0 +1,12 @@
version: "3"
services:
flaskfetfotos:
build:
context: .
ports:
- "8002:8080"
environment:
FLASK_DEBUG: 1
FLASK_APP: main.py
volumes:
- .:/app

View File

@@ -21,10 +21,10 @@ import environ
env = environ.Env(
# set casting, default value
DEBUG=(bool, False),
pages_root=(str,'data_sample'),
pages_root=(str,'../data'),
static_root=(str,'static'),
default_template=(str, 'page.html'),
url_prefix =(str, "/stuff"),
default_template=(str, 'gallery.html'),
url_prefix =(str, "/fotos"),
FLATPAGES_EXTENSION = (str, ".md"),
FLATPAGES_AUTO_RELOAD = (bool, True)
@@ -32,12 +32,14 @@ env = environ.Env(
# Initialize application
app = Flask(__name__)
#app.config.update(cfg)
app.config["pages_root"]=env('pages_root')
app.config["pages_root"]=os.path.abspath(env('pages_root'))
app.config["static_root"]=env('static_root')
app.config["default_template"]=env('default_template')
app.config["FLATPAGES_DEFAULT_TEMPLATE"]=env('default_template')
app.config["url_prefix"]=env('url_prefix')
app.config["FLATPAGES_EXTENSION"]=env('FLATPAGES_EXTENSION')
app.config["FLATPAGES_AUTO_RELOAD"]=env('FLATPAGES_AUTO_RELOAD')
app.config["FLATPAGES_ROOT"]=os.path.abspath(env('pages_root'))
app.logger.setLevel(logging.DEBUG)
# Initialize FlatPages Index
@@ -47,7 +49,7 @@ flatpages_index.Links.endpoint="intern.post"
flatpages_index.Links.image_url=lambda s,x: url_for(s.endpoint,name=x)
flatpages_index.Links.thumb_url=lambda s,x: url_for("intern.thumb",size=128,name=x)
flatpages_index.Links.image_url=lambda s,x: url_for("intern.post",name=x)
flatpages_index.Page.page_defaults={"type":"gallery"}
flatpages_index.Page.page_defaults={"type":"gallery", "template":"gallery.html"}
flatpages.get('index')
app.logger.info('Initialize FET Foto Gallery App')
@@ -106,17 +108,18 @@ def thumb(size=64,name=''):
@page_blueprint.route('/<path:name>/',strict_slashes=False)
@page_blueprint.route('/')
def post(name=''):
print("Post: %s" % name)
app.logger.debug("post_name: %s" % name)
page = flatpages.get(name)
if not page is None:
page["has_img"]=True
page.links.endpoint='intern.post'
app.logger.debug(dict(page))
return render_template(page["template"], post=page,
pth=page["dirpath"])
if os.path.exists(os.path.join(app.config["FLATPAGES_ROOT"],name)):
app.logger.debug("sending static:%s" % name)
return send_from_directory(app.config["FLATPAGES_ROOT"],name)
elif os.path.exists(os.path.join('static',name)):
print("send from static dir %s" % name)
@@ -126,9 +129,6 @@ def post(name=''):
elif os.path.exists(os.path.join("blueimp",name)):
return send_from_directory(os.path.abspath('blueimp'),name)
else:
print("%s not found" % os.path.abspath(os.path.join('static',name)))
print("%s not found" % os.path.abspath(os.path.join(cfg["fet_assets"],name)))
return abort(404)
@api_blueprint.route('/<path:name>.json',strict_slashes=False)

View File

@@ -1,9 +1,7 @@
{# -*-jinja2-*- #}
{% extends "layoutfetbs3.html" %}
{% extends "layout.html" %}
{% block head %}
<script src="/galleries/js/blueimp-gallery.min.js"></script>
<script src="/galleries/init.js"></script>
{% endblock %}
@@ -12,6 +10,7 @@
<h1>{{post.title}}</h1>
<small> von {{post.author}} </small>
{{post.html | safe}}
{% if post.links.images |length > 0 %}
<hr/>
@@ -28,16 +27,17 @@
<ol class="indicator"></ol>
</div>
<div id="links">
<div id="links" class="grid-x">
{% for d in post.links.images %}
<a href="{{d.url}}" title="{{d.title}}">
<a id="{{d.url | slug}}" href="{{d.url}}" title="{{d.title}}" class="cell medium-3 small-12 large-2">
<img src="{{d.thumb_url}}" alt="{{d.title}}" class="img-thumbnail" />
</a>
{% endfor %}
</div>
{% endif %}
{% endblock %}

View File

@@ -1,28 +1,28 @@
{# -*-jinja2-*- #}
{% extends "layoutfetbs3.html" %}
{% extends "layout.html" %}
{% block content %}
{{ post.html|safe }}
{% if post.links.subindexpages | length > 0 %}
<div class= "container-fluid" >
<div class="row">
<div class= "grid-container" >
<div class="grid-x">
{% for d in post.links.subindexpages %}
<div class="span6">
<div class="cell small-12 medium-4 large-3">
<a href="{{d.url}}" class="gallery-block media">
<img src="{{d.thumb_url}}" alt="{{d.title}}" class="img-thumbnail pull-left" />
<img src="{{d.thumb_url }}" alt="{{d.title}}" class="img-thumbnail pull-left" />
<div class="media-body">
<small class="pull-right">{{d.date}} </small>
<h2> {{d.title}} </h2>
<div >{{d.desc}} </div>
</div>
</a>
</div>
{{ loop.cycle('','</div><div class="row">')| safe }}
{# loop.cycle('','','</div><div class="row">')| safe #}
{% endfor %}
</div>

View File

@@ -1,69 +1,49 @@
{# -*-jinja2-*- #}
<html>
<!doctype html>
<html class="no-js" lang="en">
<head>
<LINK href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="/gallery/css/blueimp-gallery.min.css" />
<meta charset="utf-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>FET DjangoLayout</title>
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self'">
<!-- <link rel="stylesheet" href="/gallery/blue2fetat.css" />-->
</head>
<link rel="stylesheet" href="/fotos/app.css">
<script src="/fotos/jquery-3.5.1.min.js"></script>
<link rel="stylesheet" href="/fotos/css/blueimp-gallery.min.css" />
<body>
<div id="maincontainer" class="container-fluid">
<div class="row">
<div class="col-10 offset-1">
<div class="header_wrap">
<nav class="navbar navbar-expand-sm">
<div class="header d-print-none hidden-print">
<a href="/home">
<img alt="Logo2014_64" src="/gallery/logo2014_64.png" style="float:left;height:50px" height="50">
</a>
</div>
<div class="header d-print-block d-none">
<img alt="Logo2014_64" src="/gallery/logo2014_64.png" style="float:left;height:50px" height="50">
Fachschaft Elektrotechnik
<hr>
</div>
<div id="menudiv" class="collapse navbar-collapse navbar-expand-sm">
<ul class="nav nav-pills nav-stacked">
<li class="nav-item"><a class="nav-link" href="/home">Startseite</a>
</li>
<li class="nav-item"><a class="nav-link" href="/rubriken">Neuigkeiten</a></li>
<li><a href="/themengruppen">Information</a></li>
<li><a href="/members">Mitarbeiter</a></li>
<li><a href="/galleries">Fotos</a></li>
<li><a href="/studien">Studien/Beispielsammlung</a></li>
<li> <a href="/home/search">Suche</a></li>
<li> <a href="/home/kontakt">Kontakt</a></li>
</ul>
</div>
</nav>
</div>
</div>
</div>
<div class="row">
<div class="col-10 offset-1">
<nav class="breadcrumb" style="background-color: #FFF">
{% for b in post.links.breadcrumbs %}
<a href="{#url_for('page',name=b.path)#}{{b.url}}" class="breadcrumb-item">{{b.title}} </a> /
{% endfor %}
</nav>
{% block content %}
<script src="/fotos/js/blueimp-gallery.min.js"></script>
<script src="/fotos/init.js"></script>
{% block head %}
{% endblock %}
</head>
<body>
<div class="top-bar" id="main-menu">
<div class="top-bar-left"><a href="/">
<img style="height:40px; width:40px" src="/assets/img/logo2014_64.png"/></a>
</div>
<div class="top-bar-right">
<ul class="menu vertical medium-horizontal expanded medium-text-center">
<li class=""><a href="/">Home</a> </li>
<li class=""><a href="/">Aktuelles</a> </li>
<li class=""><a href="#">Info</a> </li>
<li class=""><a href="#">Team</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="grid-container">
{% block content %}
{% endblock %}
</div>
<!-- App.js -->
<script src="/fotos/app.js"></script>
{% block scr %}
{% endblock %}
</body>
</html>

8872
static/app.css Normal file

File diff suppressed because one or more lines are too long

22644
static/app.js Normal file

File diff suppressed because it is too large Load Diff

2
static/jquery-3.5.1.min.js vendored Normal file

File diff suppressed because one or more lines are too long