mirror of
https://github.com/StefBuwalda/WebTech.git
synced 2025-10-30 11:19:58 +00:00
Edit service
This commit is contained in:
@@ -1,13 +1,9 @@
|
|||||||
from flask_wtf import FlaskForm # type: ignore
|
from flask_wtf import FlaskForm # type: ignore
|
||||||
from wtforms import (
|
from wtforms import StringField, SubmitField, URLField
|
||||||
StringField,
|
|
||||||
SubmitField,
|
|
||||||
URLField,
|
|
||||||
)
|
|
||||||
from wtforms.validators import DataRequired
|
from wtforms.validators import DataRequired
|
||||||
|
|
||||||
|
|
||||||
class ServiceForm(FlaskForm):
|
class ServiceForm(FlaskForm):
|
||||||
name = StringField("Service name:", validators=[DataRequired()])
|
name = StringField("Service name:", validators=[DataRequired()])
|
||||||
url = URLField("Service URL:", validators=[DataRequired()])
|
url = URLField("Service URL:", validators=[DataRequired()])
|
||||||
submit = SubmitField("Add")
|
submit = SubmitField("Submit")
|
||||||
|
|||||||
@@ -8,7 +8,8 @@
|
|||||||
<div class="bg-light container-xxl">
|
<div class="bg-light container-xxl">
|
||||||
<div class="row row-cols-3">
|
<div class="row row-cols-3">
|
||||||
<div class="col-sm-2" onclick="location.href='{{service.url}}';" style="cursor: pointer;">
|
<div class="col-sm-2" onclick="location.href='{{service.url}}';" style="cursor: pointer;">
|
||||||
<img class="fit-picture" src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c1/Google_%22G%22_logo.svg/2048px-Google_%22G%22_logo.svg.png">
|
<img class="fit-picture"
|
||||||
|
src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c1/Google_%22G%22_logo.svg/2048px-Google_%22G%22_logo.svg.png">
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@@ -16,14 +17,21 @@
|
|||||||
{{service["name"]}}
|
{{service["name"]}}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-2 dots dropdown">
|
<div class="col-sm-2 dots dropdown">
|
||||||
<button class="btn btn-light" type="button" id="threeDotDropdown" data-bs-toggle="dropdown" aria-expanded="false">
|
<button class="btn btn-light" type="button" id="threeDotDropdown" data-bs-toggle="dropdown"
|
||||||
|
aria-expanded="false">
|
||||||
⋮
|
⋮
|
||||||
</button>
|
</button>
|
||||||
<ul class="dropdown-menu" aria-labelledby="threeDotDropdown">
|
<ul class="dropdown-menu" aria-labelledby="threeDotDropdown">
|
||||||
<li><a class="dropdown-item">Edit</a></li>
|
|
||||||
<li><hr class="dropdown-divider"></li>
|
|
||||||
<li>
|
<li>
|
||||||
<form action="{{ url_for('dash.delete_item', service_id=service.id) }}" method="POST" style="display:inline;">
|
<a class="dropdown-item"
|
||||||
|
href="{{ url_for('dash.edit_service', service_id=service.id) }}">Edit</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider">
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<form action="{{ url_for('dash.delete_item', service_id=service.id) }}" method="POST"
|
||||||
|
style="display:inline;">
|
||||||
<button type="submit" class="dropdown-item">Delete</button>
|
<button type="submit" class="dropdown-item">Delete</button>
|
||||||
</form>
|
</form>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -5,5 +5,47 @@ Add service
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
123
|
<form class="form bg-body-tertiary" method="POST">
|
||||||
|
{{ form.hidden_tag() }}
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
|
||||||
|
<symbol id="check-circle-fill" fill="currentColor" viewBox="0 0 16 16">
|
||||||
|
<path
|
||||||
|
d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z" />
|
||||||
|
</symbol>
|
||||||
|
<symbol id="exclamation-triangle-fill" fill="currentColor" viewBox="0 0 16 16">
|
||||||
|
<path
|
||||||
|
d="M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z" />
|
||||||
|
</symbol>
|
||||||
|
</svg>
|
||||||
|
{% if feedback %}
|
||||||
|
{% if feedback=="Service succesfully added" %}
|
||||||
|
<div class="alert alert-success d-flex align-items-center" role="alert">
|
||||||
|
<svg class="bi flex-shrink-0 me-2" width="24" height="24" role="img" aria-label="Success:">
|
||||||
|
<use xlink:href="#check-circle-fill" />
|
||||||
|
</svg>
|
||||||
|
<div>
|
||||||
|
{{feedback}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<div class="alert alert-danger d-flex align-items-center" role="alert">
|
||||||
|
<svg class="bi flex-shrink-0 me-2" width="24" height="24" role="img" aria-label="Danger:">
|
||||||
|
<use xlink:href="#exclamation-triangle-fill" />
|
||||||
|
</svg>
|
||||||
|
<div>
|
||||||
|
{{feedback}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
<div>
|
||||||
|
{{ form.name.label }} <br> {{ form.name() }}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
{{ form.url.label }} <br> {{ form.url() }}
|
||||||
|
</div>
|
||||||
|
<div class="submit">
|
||||||
|
{{ form.submit(value="Edit") }}
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
@@ -56,11 +56,24 @@ def service():
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dash_blueprint.route("/edit_service/<int:service_id>", methods=["POST"])
|
@dash_blueprint.route(
|
||||||
|
"/edit_service/<int:service_id>", methods=["GET", "POST"]
|
||||||
|
)
|
||||||
@login_required
|
@login_required
|
||||||
def edit_service(service_id: int):
|
def edit_service(service_id: int):
|
||||||
service = Service.query.get_or_404(service_id)
|
service = Service.query.get_or_404(service_id)
|
||||||
|
|
||||||
if current_user.id != service.user_id:
|
if current_user.id != service.user_id:
|
||||||
redirect(url_for("dash.index"))
|
redirect(url_for("dash.index"))
|
||||||
|
|
||||||
return render_template("edit_service.html")
|
# Correcte gebruiker
|
||||||
|
form = ServiceForm()
|
||||||
|
if form.validate_on_submit(): # type: ignore
|
||||||
|
if service.name != form.name.data or service.url != form.url.data:
|
||||||
|
service.name = form.name.data
|
||||||
|
service.url = form.url.data
|
||||||
|
db.session.commit()
|
||||||
|
return redirect(url_for("dash.index"))
|
||||||
|
# Fill in correct data
|
||||||
|
form = ServiceForm(name=service.name, url=service.url)
|
||||||
|
return render_template("edit_service.html", form=form)
|
||||||
|
|||||||
Reference in New Issue
Block a user