faut que je lance sur ma rpi pour des tst
This commit is contained in:
parent
2a914817c0
commit
c3d75c230d
@ -10,6 +10,8 @@ from flask_uploads import patch_request_class
|
|||||||
|
|
||||||
from PDMI.blueprints.admin import admin
|
from PDMI.blueprints.admin import admin
|
||||||
from PDMI.blueprints.api import api, api_0_0_1
|
from PDMI.blueprints.api import api, api_0_0_1
|
||||||
|
from PDMI.blueprints.front import front
|
||||||
|
from PDMI.blueprints.documentation import documentation
|
||||||
from PDMI.models import db, Users, Roles
|
from PDMI.models import db, Users, Roles
|
||||||
from PDMI.views import main_bp
|
from PDMI.views import main_bp
|
||||||
|
|
||||||
@ -69,6 +71,9 @@ admin.init_app(server)
|
|||||||
api.init_app(server)
|
api.init_app(server)
|
||||||
api_0_0_1.init_app(server)
|
api_0_0_1.init_app(server)
|
||||||
|
|
||||||
|
server.register_blueprint(front)
|
||||||
|
server.register_blueprint(documentation)
|
||||||
|
|
||||||
# Register main blueprint
|
# Register main blueprint
|
||||||
server.register_blueprint(main_bp)
|
server.register_blueprint(main_bp)
|
||||||
|
|
||||||
|
17
PDMI/blueprints/documentation/__init__.py
Normal file
17
PDMI/blueprints/documentation/__init__.py
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
from flask import Blueprint, render_template, abort
|
||||||
|
|
||||||
|
documentation = Blueprint('documentation', __name__, template_folder="templates")
|
||||||
|
|
||||||
|
|
||||||
|
@documentation.route("/")
|
||||||
|
def index():
|
||||||
|
return render_template("documentation/index.html")
|
||||||
|
|
||||||
|
|
||||||
|
@documentation.route("/create_module")
|
||||||
|
def create_module():
|
||||||
|
return render_template("documentation/create_module.html")
|
||||||
|
|
||||||
|
@documentation.route("/create_repository")
|
||||||
|
def create_repository():
|
||||||
|
return render_template("documentation/create_repository.html")
|
8
PDMI/blueprints/front/__init__.py
Normal file
8
PDMI/blueprints/front/__init__.py
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
from flask import Blueprint, render_template, abort
|
||||||
|
|
||||||
|
front = Blueprint('front', __name__, template_folder="templates")
|
||||||
|
|
||||||
|
|
||||||
|
@front.route("/")
|
||||||
|
def index():
|
||||||
|
return render_template("front/index.html")
|
Binary file not shown.
3719
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap-grid.css
vendored
Normal file
3719
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap-grid.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap-grid.css.map
vendored
Normal file
1
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap-grid.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
7
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap-grid.min.css
vendored
Normal file
7
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap-grid.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap-grid.min.css.map
vendored
Normal file
1
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap-grid.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
331
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap-reboot.css
vendored
Normal file
331
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap-reboot.css
vendored
Normal file
@ -0,0 +1,331 @@
|
|||||||
|
/*!
|
||||||
|
* Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)
|
||||||
|
* Copyright 2011-2019 The Bootstrap Authors
|
||||||
|
* Copyright 2011-2019 Twitter, Inc.
|
||||||
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
|
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||||
|
*/
|
||||||
|
*,
|
||||||
|
*::before,
|
||||||
|
*::after {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
font-family: sans-serif;
|
||||||
|
line-height: 1.15;
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||||
|
font-size: 1rem;
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 1.5;
|
||||||
|
color: #212529;
|
||||||
|
text-align: left;
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
[tabindex="-1"]:focus {
|
||||||
|
outline: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
box-sizing: content-box;
|
||||||
|
height: 0;
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1, h2, h3, h4, h5, h6 {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
abbr[title],
|
||||||
|
abbr[data-original-title] {
|
||||||
|
text-decoration: underline;
|
||||||
|
-webkit-text-decoration: underline dotted;
|
||||||
|
text-decoration: underline dotted;
|
||||||
|
cursor: help;
|
||||||
|
border-bottom: 0;
|
||||||
|
-webkit-text-decoration-skip-ink: none;
|
||||||
|
text-decoration-skip-ink: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
address {
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
font-style: normal;
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol,
|
||||||
|
ul,
|
||||||
|
dl {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol ol,
|
||||||
|
ul ul,
|
||||||
|
ol ul,
|
||||||
|
ul ol {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
dt {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
dd {
|
||||||
|
margin-bottom: .5rem;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
margin: 0 0 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
b,
|
||||||
|
strong {
|
||||||
|
font-weight: bolder;
|
||||||
|
}
|
||||||
|
|
||||||
|
small {
|
||||||
|
font-size: 80%;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub,
|
||||||
|
sup {
|
||||||
|
position: relative;
|
||||||
|
font-size: 75%;
|
||||||
|
line-height: 0;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub {
|
||||||
|
bottom: -.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
sup {
|
||||||
|
top: -.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #007bff;
|
||||||
|
text-decoration: none;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
color: #0056b3;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:not([href]):not([tabindex]) {
|
||||||
|
color: inherit;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
|
||||||
|
color: inherit;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:not([href]):not([tabindex]):focus {
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre,
|
||||||
|
code,
|
||||||
|
kbd,
|
||||||
|
samp {
|
||||||
|
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
figure {
|
||||||
|
margin: 0 0 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
vertical-align: middle;
|
||||||
|
border-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
svg {
|
||||||
|
overflow: hidden;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
caption {
|
||||||
|
padding-top: 0.75rem;
|
||||||
|
padding-bottom: 0.75rem;
|
||||||
|
color: #6c757d;
|
||||||
|
text-align: left;
|
||||||
|
caption-side: bottom;
|
||||||
|
}
|
||||||
|
|
||||||
|
th {
|
||||||
|
text-align: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
display: inline-block;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:focus {
|
||||||
|
outline: 1px dotted;
|
||||||
|
outline: 5px auto -webkit-focus-ring-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
input,
|
||||||
|
button,
|
||||||
|
select,
|
||||||
|
optgroup,
|
||||||
|
textarea {
|
||||||
|
margin: 0;
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: inherit;
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
input {
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
select {
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
select {
|
||||||
|
word-wrap: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
[type="button"],
|
||||||
|
[type="reset"],
|
||||||
|
[type="submit"] {
|
||||||
|
-webkit-appearance: button;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:not(:disabled),
|
||||||
|
[type="button"]:not(:disabled),
|
||||||
|
[type="reset"]:not(:disabled),
|
||||||
|
[type="submit"]:not(:disabled) {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
button::-moz-focus-inner,
|
||||||
|
[type="button"]::-moz-focus-inner,
|
||||||
|
[type="reset"]::-moz-focus-inner,
|
||||||
|
[type="submit"]::-moz-focus-inner {
|
||||||
|
padding: 0;
|
||||||
|
border-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="radio"],
|
||||||
|
input[type="checkbox"] {
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="date"],
|
||||||
|
input[type="time"],
|
||||||
|
input[type="datetime-local"],
|
||||||
|
input[type="month"] {
|
||||||
|
-webkit-appearance: listbox;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
overflow: auto;
|
||||||
|
resize: vertical;
|
||||||
|
}
|
||||||
|
|
||||||
|
fieldset {
|
||||||
|
min-width: 0;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
legend {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
max-width: 100%;
|
||||||
|
padding: 0;
|
||||||
|
margin-bottom: .5rem;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
line-height: inherit;
|
||||||
|
color: inherit;
|
||||||
|
white-space: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
progress {
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
[type="number"]::-webkit-inner-spin-button,
|
||||||
|
[type="number"]::-webkit-outer-spin-button {
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
[type="search"] {
|
||||||
|
outline-offset: -2px;
|
||||||
|
-webkit-appearance: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
[type="search"]::-webkit-search-decoration {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-file-upload-button {
|
||||||
|
font: inherit;
|
||||||
|
-webkit-appearance: button;
|
||||||
|
}
|
||||||
|
|
||||||
|
output {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
summary {
|
||||||
|
display: list-item;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
template {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
[hidden] {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
/*# sourceMappingURL=bootstrap-reboot.css.map */
|
1
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap-reboot.css.map
vendored
Normal file
1
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap-reboot.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
8
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap-reboot.min.css
vendored
Normal file
8
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap-reboot.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap-reboot.min.css.map
vendored
Normal file
1
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap-reboot.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
10038
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap.css
vendored
Normal file
10038
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap.css.map
vendored
Normal file
1
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
7
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap.min.css
vendored
Normal file
7
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap.min.css.map
vendored
Normal file
1
PDMI/static/documentation/vendor/bootstrap-4.3.1/css/bootstrap.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
7013
PDMI/static/documentation/vendor/bootstrap-4.3.1/js/bootstrap.bundle.js
vendored
Normal file
7013
PDMI/static/documentation/vendor/bootstrap-4.3.1/js/bootstrap.bundle.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
PDMI/static/documentation/vendor/bootstrap-4.3.1/js/bootstrap.bundle.js.map
vendored
Normal file
1
PDMI/static/documentation/vendor/bootstrap-4.3.1/js/bootstrap.bundle.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
7
PDMI/static/documentation/vendor/bootstrap-4.3.1/js/bootstrap.bundle.min.js
vendored
Normal file
7
PDMI/static/documentation/vendor/bootstrap-4.3.1/js/bootstrap.bundle.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
PDMI/static/documentation/vendor/bootstrap-4.3.1/js/bootstrap.bundle.min.js.map
vendored
Normal file
1
PDMI/static/documentation/vendor/bootstrap-4.3.1/js/bootstrap.bundle.min.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
4435
PDMI/static/documentation/vendor/bootstrap-4.3.1/js/bootstrap.js
vendored
Normal file
4435
PDMI/static/documentation/vendor/bootstrap-4.3.1/js/bootstrap.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
PDMI/static/documentation/vendor/bootstrap-4.3.1/js/bootstrap.js.map
vendored
Normal file
1
PDMI/static/documentation/vendor/bootstrap-4.3.1/js/bootstrap.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
7
PDMI/static/documentation/vendor/bootstrap-4.3.1/js/bootstrap.min.js
vendored
Normal file
7
PDMI/static/documentation/vendor/bootstrap-4.3.1/js/bootstrap.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
PDMI/static/documentation/vendor/bootstrap-4.3.1/js/bootstrap.min.js.map
vendored
Normal file
1
PDMI/static/documentation/vendor/bootstrap-4.3.1/js/bootstrap.min.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
3719
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap-grid.css
vendored
Normal file
3719
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap-grid.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap-grid.css.map
vendored
Normal file
1
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap-grid.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
7
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap-grid.min.css
vendored
Normal file
7
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap-grid.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap-grid.min.css.map
vendored
Normal file
1
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap-grid.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
331
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap-reboot.css
vendored
Normal file
331
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap-reboot.css
vendored
Normal file
@ -0,0 +1,331 @@
|
|||||||
|
/*!
|
||||||
|
* Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)
|
||||||
|
* Copyright 2011-2019 The Bootstrap Authors
|
||||||
|
* Copyright 2011-2019 Twitter, Inc.
|
||||||
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
|
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||||
|
*/
|
||||||
|
*,
|
||||||
|
*::before,
|
||||||
|
*::after {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
font-family: sans-serif;
|
||||||
|
line-height: 1.15;
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||||
|
font-size: 1rem;
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 1.5;
|
||||||
|
color: #212529;
|
||||||
|
text-align: left;
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
[tabindex="-1"]:focus {
|
||||||
|
outline: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
box-sizing: content-box;
|
||||||
|
height: 0;
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1, h2, h3, h4, h5, h6 {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
abbr[title],
|
||||||
|
abbr[data-original-title] {
|
||||||
|
text-decoration: underline;
|
||||||
|
-webkit-text-decoration: underline dotted;
|
||||||
|
text-decoration: underline dotted;
|
||||||
|
cursor: help;
|
||||||
|
border-bottom: 0;
|
||||||
|
-webkit-text-decoration-skip-ink: none;
|
||||||
|
text-decoration-skip-ink: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
address {
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
font-style: normal;
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol,
|
||||||
|
ul,
|
||||||
|
dl {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol ol,
|
||||||
|
ul ul,
|
||||||
|
ol ul,
|
||||||
|
ul ol {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
dt {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
dd {
|
||||||
|
margin-bottom: .5rem;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
margin: 0 0 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
b,
|
||||||
|
strong {
|
||||||
|
font-weight: bolder;
|
||||||
|
}
|
||||||
|
|
||||||
|
small {
|
||||||
|
font-size: 80%;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub,
|
||||||
|
sup {
|
||||||
|
position: relative;
|
||||||
|
font-size: 75%;
|
||||||
|
line-height: 0;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub {
|
||||||
|
bottom: -.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
sup {
|
||||||
|
top: -.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #007bff;
|
||||||
|
text-decoration: none;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
color: #0056b3;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:not([href]):not([tabindex]) {
|
||||||
|
color: inherit;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
|
||||||
|
color: inherit;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:not([href]):not([tabindex]):focus {
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre,
|
||||||
|
code,
|
||||||
|
kbd,
|
||||||
|
samp {
|
||||||
|
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
figure {
|
||||||
|
margin: 0 0 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
vertical-align: middle;
|
||||||
|
border-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
svg {
|
||||||
|
overflow: hidden;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
caption {
|
||||||
|
padding-top: 0.75rem;
|
||||||
|
padding-bottom: 0.75rem;
|
||||||
|
color: #6c757d;
|
||||||
|
text-align: left;
|
||||||
|
caption-side: bottom;
|
||||||
|
}
|
||||||
|
|
||||||
|
th {
|
||||||
|
text-align: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
display: inline-block;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:focus {
|
||||||
|
outline: 1px dotted;
|
||||||
|
outline: 5px auto -webkit-focus-ring-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
input,
|
||||||
|
button,
|
||||||
|
select,
|
||||||
|
optgroup,
|
||||||
|
textarea {
|
||||||
|
margin: 0;
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: inherit;
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
input {
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
select {
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
select {
|
||||||
|
word-wrap: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
[type="button"],
|
||||||
|
[type="reset"],
|
||||||
|
[type="submit"] {
|
||||||
|
-webkit-appearance: button;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:not(:disabled),
|
||||||
|
[type="button"]:not(:disabled),
|
||||||
|
[type="reset"]:not(:disabled),
|
||||||
|
[type="submit"]:not(:disabled) {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
button::-moz-focus-inner,
|
||||||
|
[type="button"]::-moz-focus-inner,
|
||||||
|
[type="reset"]::-moz-focus-inner,
|
||||||
|
[type="submit"]::-moz-focus-inner {
|
||||||
|
padding: 0;
|
||||||
|
border-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="radio"],
|
||||||
|
input[type="checkbox"] {
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="date"],
|
||||||
|
input[type="time"],
|
||||||
|
input[type="datetime-local"],
|
||||||
|
input[type="month"] {
|
||||||
|
-webkit-appearance: listbox;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
overflow: auto;
|
||||||
|
resize: vertical;
|
||||||
|
}
|
||||||
|
|
||||||
|
fieldset {
|
||||||
|
min-width: 0;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
legend {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
max-width: 100%;
|
||||||
|
padding: 0;
|
||||||
|
margin-bottom: .5rem;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
line-height: inherit;
|
||||||
|
color: inherit;
|
||||||
|
white-space: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
progress {
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
[type="number"]::-webkit-inner-spin-button,
|
||||||
|
[type="number"]::-webkit-outer-spin-button {
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
[type="search"] {
|
||||||
|
outline-offset: -2px;
|
||||||
|
-webkit-appearance: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
[type="search"]::-webkit-search-decoration {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-file-upload-button {
|
||||||
|
font: inherit;
|
||||||
|
-webkit-appearance: button;
|
||||||
|
}
|
||||||
|
|
||||||
|
output {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
summary {
|
||||||
|
display: list-item;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
template {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
[hidden] {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
/*# sourceMappingURL=bootstrap-reboot.css.map */
|
1
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap-reboot.css.map
vendored
Normal file
1
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap-reboot.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
8
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap-reboot.min.css
vendored
Normal file
8
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap-reboot.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap-reboot.min.css.map
vendored
Normal file
1
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap-reboot.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
10038
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap.css
vendored
Normal file
10038
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap.css.map
vendored
Normal file
1
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
7
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap.min.css
vendored
Normal file
7
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap.min.css.map
vendored
Normal file
1
PDMI/static/front/vendor/bootstrap-4.3.1/css/bootstrap.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
7013
PDMI/static/front/vendor/bootstrap-4.3.1/js/bootstrap.bundle.js
vendored
Normal file
7013
PDMI/static/front/vendor/bootstrap-4.3.1/js/bootstrap.bundle.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
PDMI/static/front/vendor/bootstrap-4.3.1/js/bootstrap.bundle.js.map
vendored
Normal file
1
PDMI/static/front/vendor/bootstrap-4.3.1/js/bootstrap.bundle.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
7
PDMI/static/front/vendor/bootstrap-4.3.1/js/bootstrap.bundle.min.js
vendored
Normal file
7
PDMI/static/front/vendor/bootstrap-4.3.1/js/bootstrap.bundle.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
PDMI/static/front/vendor/bootstrap-4.3.1/js/bootstrap.bundle.min.js.map
vendored
Normal file
1
PDMI/static/front/vendor/bootstrap-4.3.1/js/bootstrap.bundle.min.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
4435
PDMI/static/front/vendor/bootstrap-4.3.1/js/bootstrap.js
vendored
Normal file
4435
PDMI/static/front/vendor/bootstrap-4.3.1/js/bootstrap.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
PDMI/static/front/vendor/bootstrap-4.3.1/js/bootstrap.js.map
vendored
Normal file
1
PDMI/static/front/vendor/bootstrap-4.3.1/js/bootstrap.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
7
PDMI/static/front/vendor/bootstrap-4.3.1/js/bootstrap.min.js
vendored
Normal file
7
PDMI/static/front/vendor/bootstrap-4.3.1/js/bootstrap.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
PDMI/static/front/vendor/bootstrap-4.3.1/js/bootstrap.min.js.map
vendored
Normal file
1
PDMI/static/front/vendor/bootstrap-4.3.1/js/bootstrap.min.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
19
PDMI/templates/documentation/base/base.html
Normal file
19
PDMI/templates/documentation/base/base.html
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="fr">
|
||||||
|
<head>
|
||||||
|
<title>{% block title %}PDMI - Documentation{% endblock %}</title>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta name="description" content="PDMI - Python Discord Module Index">
|
||||||
|
<meta name="author" content="Louis Chauvet">
|
||||||
|
<!-- Favicon.ico -->
|
||||||
|
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}">
|
||||||
|
|
||||||
|
<link href="{{ url_for('static', filename='documentation/vendor/bootstrap-4.3.1/css/bootstrap.css') }}" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
{% block body %}
|
||||||
|
{% endblock %}
|
||||||
|
</body>
|
||||||
|
</html>
|
5
PDMI/templates/documentation/create_module.html
Normal file
5
PDMI/templates/documentation/create_module.html
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{% extends 'documentation/base/base.html' %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
create_module
|
||||||
|
{% endblock %}
|
5
PDMI/templates/documentation/create_repository.html
Normal file
5
PDMI/templates/documentation/create_repository.html
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{% extends 'documentation/base/base.html' %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
create_repository
|
||||||
|
{% endblock %}
|
5
PDMI/templates/documentation/index.html
Normal file
5
PDMI/templates/documentation/index.html
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{% extends 'documentation/base/base.html' %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
index
|
||||||
|
{% endblock %}
|
19
PDMI/templates/front/base/base.html
Normal file
19
PDMI/templates/front/base/base.html
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="fr">
|
||||||
|
<head>
|
||||||
|
<title>{% block title %}PDMI - Python Discord Module Index{% endblock %}</title>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta name="description" content="PDMI - Python Discord Module Index">
|
||||||
|
<meta name="author" content="Louis Chauvet">
|
||||||
|
<!-- Favicon.ico -->
|
||||||
|
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}">
|
||||||
|
|
||||||
|
<link href="{{ url_for('static', filename='front/vendor/bootstrap-4.3.1/css/bootstrap.css') }}" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
{% block body %}
|
||||||
|
{% endblock %}
|
||||||
|
</body>
|
||||||
|
</html>
|
104
PDMI/templates/front/index.html
Normal file
104
PDMI/templates/front/index.html
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
{% extends 'front/base/base.html' %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
|
||||||
|
<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
|
||||||
|
<a class="navbar-brand" href="#">Navbar</a>
|
||||||
|
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div class="collapse navbar-collapse" id="navbarsExampleDefault">
|
||||||
|
<ul class="navbar-nav mr-auto">
|
||||||
|
<li class="nav-item active">
|
||||||
|
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="#">Link</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link disabled" href="#">Disabled</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="dropdown01" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
|
||||||
|
<div class="dropdown-menu" aria-labelledby="dropdown01">
|
||||||
|
<a class="dropdown-item" href="#">Action</a>
|
||||||
|
<a class="dropdown-item" href="#">Another action</a>
|
||||||
|
<a class="dropdown-item" href="#">Something else here</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<form class="form-inline my-2 my-lg-0">
|
||||||
|
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
|
||||||
|
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<main role="main">
|
||||||
|
|
||||||
|
<!-- Main jumbotron for a primary marketing message or call to action -->
|
||||||
|
<div class="jumbotron">
|
||||||
|
<div class="container">
|
||||||
|
<h1 class="display-3">PDMI - Python Discord Module index</h1>
|
||||||
|
<p>
|
||||||
|
PDMI is a part of PDBA project. PDBA is a basic discord bot which integrate possibility to install modules.
|
||||||
|
PDMI is the website where most of modules are uploaded. If you want to create your own module you can check
|
||||||
|
<a href="{{ url_for('documentation.create_module') }}">documentation</a>. You can also create your own
|
||||||
|
<a href="{{ url_for('documentation.create_repository') }}">repository</a>.
|
||||||
|
</p>
|
||||||
|
<p><a class="btn btn-primary btn-lg" href="#" role="button">Learn more »</a></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<!-- Example row of columns -->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h2>Heading</h2>
|
||||||
|
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
||||||
|
<p><a class="btn btn-secondary" href="#" role="button">View details »</a></p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h2>Heading</h2>
|
||||||
|
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
||||||
|
<p><a class="btn btn-secondary" href="#" role="button">View details »</a></p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h2>Heading</h2>
|
||||||
|
<p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>
|
||||||
|
<p><a class="btn btn-secondary" href="#" role="button">View details »</a></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
</div> <!-- /container -->
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="container">
|
||||||
|
<p>© Company 2017-2019</p>
|
||||||
|
</footer>
|
||||||
|
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
|
||||||
|
<script>window.jQuery || document.write('<script src="/docs/4.3/assets/js/vendor/jquery-slim.min.js"><\/script>')</script><script src="/docs/4.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-xrRywqdh3PHs8keKZN+8zzc5TX0GRTLCcmivcbNJWm2rs5C8PRhcEn3czEjhAO9o" crossorigin="anonymous"></script></body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h1>PDMI - Python Discord Module Index</h1>
|
||||||
|
<p>PDMI is a module's repository for Python Discord Bot (insert here bot name)</p>
|
||||||
|
<div>
|
||||||
|
<input>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h2>Téléchargements du serveur</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Code source: <a href="https://moriya.zapto.org/PDBA/PDMI">PDMI</a></li>
|
||||||
|
</ul>
|
||||||
|
<h2>Téléchargements du gestionaire</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Code source: <a href="https://moriya.zapto.org/PDBA/PDBd">PDBd</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<a href="{{ url_for('admin.index') }}">Connection à la gestion des modules</a><br/>
|
||||||
|
{% endblock %}
|
@ -6,10 +6,6 @@ from flask import render_template, Blueprint, send_from_directory
|
|||||||
main_bp = Blueprint('', __name__)
|
main_bp = Blueprint('', __name__)
|
||||||
|
|
||||||
|
|
||||||
@main_bp.route('/')
|
|
||||||
def index():
|
|
||||||
return render_template("index.html")
|
|
||||||
|
|
||||||
|
|
||||||
@main_bp.route('/favicon.ico')
|
@main_bp.route('/favicon.ico')
|
||||||
def favicon():
|
def favicon():
|
||||||
|
Loading…
Reference in New Issue
Block a user