forked from FrederikBaerentsen/BrickTracker
48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
|
from flask import Blueprint, redirect, render_template, request, url_for
|
||
|
from flask_login import login_required
|
||
|
from werkzeug.wrappers.response import Response
|
||
|
|
||
|
from .exceptions import exception_handler
|
||
|
from ..retired_list import BrickRetiredList
|
||
|
from ..wish import BrickWish
|
||
|
from ..wish_list import BrickWishList
|
||
|
|
||
|
wish_page = Blueprint('wish', __name__, url_prefix='/wishlist')
|
||
|
|
||
|
|
||
|
# Index
|
||
|
@wish_page.route('/', methods=['GET'])
|
||
|
@exception_handler(__file__)
|
||
|
def list() -> str:
|
||
|
return render_template(
|
||
|
'wishes.html',
|
||
|
table_collection=BrickWishList().all(),
|
||
|
retired=BrickRetiredList(),
|
||
|
error=request.args.get('error')
|
||
|
)
|
||
|
|
||
|
|
||
|
# Add a set to the wishlit
|
||
|
@wish_page.route('/add', methods=['POST'])
|
||
|
@login_required
|
||
|
@exception_handler(__file__, post_redirect='wish.list')
|
||
|
def add() -> Response:
|
||
|
# Grab the set number
|
||
|
number: str = request.form.get('number', '')
|
||
|
|
||
|
if number != '':
|
||
|
BrickWishList.add(number)
|
||
|
|
||
|
return redirect(url_for('wish.list'))
|
||
|
|
||
|
|
||
|
# Delete a set from the wishlit
|
||
|
@wish_page.route('/delete/<number>', methods=['POST'])
|
||
|
@login_required
|
||
|
@exception_handler(__file__, post_redirect='wish.list')
|
||
|
def delete(*, number: str) -> Response:
|
||
|
brickwish = BrickWish().select_specific(number)
|
||
|
brickwish.delete()
|
||
|
|
||
|
return redirect(url_for('wish.list'))
|