initial commit

This commit is contained in:
2024-11-10 07:27:36 -08:00
commit 5efd61d236
43 changed files with 1503 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
from flask import Blueprint
from .views import index, only_admin, product, secret
bp = Blueprint("webui", __name__, template_folder="templates")
bp.add_url_rule("/", view_func=index)
bp.add_url_rule(
"/product/<product_id>", view_func=product, endpoint="productview"
)
bp.add_url_rule("/secret", view_func=secret, endpoint="secret")
bp.add_url_rule("/only_admin", view_func=only_admin, endpoint="onlyadmin")
def init_app(app):
app.register_blueprint(bp)

View File

@@ -0,0 +1,29 @@
{% extends "bootstrap/base.html" %}
{% block title %}{{config.get('TITLE')}}{% endblock %}
{% block navbar %}
<div class="navbar">
<div class="navbar-header">
<a class="navbar-brand" href="#">
<img alt="Brand" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAB+0lEQVR4AcyYg5LkUBhG+1X2PdZGaW3btm3btm3bHttWrPomd1r/2Jn/VJ02TpxcH4CQ/dsuazWgzbIdrm9dZVd4pBz4zx2igTaFHrhvjneVXNHCSqIlFEjiwMyyyOBilRgGSqLNF1jnwNQdIvAt48C3IlBmHCiLQHC2zoHDu6zG1iXn6+y62ScxY9AODO6w0pvAqf23oSE4joOfH6OxfMoRnoGUm+de8wykbFt6wZtA07QwtNOqKh3ZbS3Wzz2F+1c/QJY0UCJ/J3kXWJfv7VhxCRRV1jGw7XI+gcO7rEFFRvdYxydwcPsVsC0bQdKScngt4iUTD4Fy/8p7PoHzRu1DclwmgmiqgUXjD3oTKHbAt869qdJ7l98jNTEblPTkXMwetpvnftA0LLHb4X8kiY9Kx6Q+W7wJtG0HR7fdrtYz+x7iya0vkEtUULIzCjC21wY+W/GYXusRH5kGytWTLxgEEhePPwhKYb7EK3BQuxWwTBuUkd3X8goUn6fMHLyTT+DCsQdAEXNzSMeVPAJHdF2DmH8poCREp3uwm7HsGq9J9q69iuunX6EgrwQVObjpBt8z6rdPfvE8kiiyhsvHnomrQx6BxYUyYiNS8f75H1w4/ISepDZLoDhNJ9cdNUquhRsv+6EP9oNH7Iff2A9g8h8CLt1gH0Qf9NMQAFnO60BJFQe0AAAAAElFTkSuQmCC">
</a>
</div>
</div>
{% endblock %}
{% block content %}
<div class="container">
<h1>{{config.get('TITLE')}}</h1>
<div class="jumbotron">
<ul class="list-group">
{% for product in products %}
<li class="list-group-item">
<a href="{{url_for('webui.productview', product_id=product.id)}}">{{product.name}}- {{ "%0.2f" | format(product.price)}}</a>
</li>
{% endfor %}
</ul>
</div>
</div>
{% endblock %}

View File

@@ -0,0 +1,13 @@
{% extends "index.html" %}
{% block content %}
<div class="container">
<h1>{{ product.name }}</h1>
<div class="jumbotron">
<h2>R$ {{ "%0.2f" | format(product.price)}}</h2>
<p>
{{product.description}}
</p>
</div>
</div>
{% endblock %}

View File

@@ -0,0 +1,26 @@
from flask import abort, render_template
from flask_simplelogin import login_required
from project_name.models import Product
def index():
products = Product.query.all()
return render_template("index.html", products=products)
def product(product_id):
product = Product.query.filter_by(id=product_id).first() or abort(
404, "produto nao encontrado"
)
return render_template("product.html", product=product)
@login_required
def secret():
return "This can be seen only if user is logged in"
@login_required(username="admin")
def only_admin():
return "only admin user can see this text"