Compare commits
5 Commits
53a884d23e
...
4e996180fe
| Author | SHA1 | Date | |
|---|---|---|---|
| 4e996180fe | |||
| 0208ef5f47 | |||
| bb1cfe77f2 | |||
| 3427e8f271 | |||
| f7967c2dfd |
96
app.py
96
app.py
@ -312,26 +312,104 @@ def profile_change():
|
||||
@app.route('/edit-habit')
|
||||
@login_required
|
||||
def edit_habit():
|
||||
habit_id = request.args.get("habit")
|
||||
#habit_id = request.get_json()["editHabitId"]
|
||||
|
||||
habit_id = int(request.args.get("habit"))
|
||||
habit = Habit.get(habit_id)
|
||||
|
||||
|
||||
units = ["Tag", "Woche", "Monat", "Jahr"]
|
||||
|
||||
return render_template(
|
||||
"edit-habit.html",
|
||||
title=habit.name
|
||||
title=habit.name,
|
||||
habit=habit.id,
|
||||
name=habit.name,
|
||||
note=habit.note,
|
||||
times=habit.times,
|
||||
unit=units[habit.unit],
|
||||
errors={}
|
||||
)
|
||||
'''
|
||||
|
||||
@app.route('/edit-habit', methods=['POST'])
|
||||
@login_required
|
||||
def edit_habit_change():
|
||||
#habit_id = request.get_json()["habitId"]
|
||||
|
||||
#habit = Habit.get(habit_id)
|
||||
|
||||
units = ["Tag", "Woche", "Monat", "Jahr"]
|
||||
name = request.form.get('name')
|
||||
note = request.form.get('note')
|
||||
times = request.form.get('times')
|
||||
unit = request.form.get('unit')
|
||||
list_id = request.form.get('habit')
|
||||
|
||||
habit = Habit.get(list_id)
|
||||
|
||||
# Check for errors
|
||||
errors = {}
|
||||
if not name:
|
||||
errors['name'] = 'Der Name ist erforderlich.'
|
||||
if not times:
|
||||
errors['times'] = 'Die Anzahl ist erforderlich.'
|
||||
if not note:
|
||||
note = ''
|
||||
if not unit:
|
||||
errors['unit'] = 'Die Einheit ist erforderlich.'
|
||||
if not list_id:
|
||||
errors['habit'] = 'Das Habit ist erforderlich.'
|
||||
|
||||
# Check if times is an integer
|
||||
try:
|
||||
print(times)
|
||||
times = int(times)
|
||||
|
||||
|
||||
# Check that times is greater than 0
|
||||
if times <= 0:
|
||||
errors['times'] = 'Die Anzahl muss größer als 0 sein.'
|
||||
except ValueError:
|
||||
errors['times'] = 'Die Anzahl muss eine Zahl sein.'
|
||||
|
||||
# Check that unit is valid
|
||||
if unit not in ['Tag', 'Woche', 'Monat', 'Jahr']:
|
||||
errors['unit'] = 'Die Einheit ist ungültig.'
|
||||
|
||||
# check if list_id is an int
|
||||
try:
|
||||
list_id = int(list_id)
|
||||
except ValueError:
|
||||
errors['list_query'] = 'Die Anzahl muss eine Zahl sein.'
|
||||
|
||||
if errors:
|
||||
return render_template(
|
||||
"edit-habit.html"
|
||||
"edit-habit.html",
|
||||
title=habit.name,
|
||||
habit=habit.id,
|
||||
name=habit.name,
|
||||
note=habit.note,
|
||||
times=habit.times,
|
||||
unit=units[habit.unit],
|
||||
errors={}
|
||||
)
|
||||
'''
|
||||
|
||||
# Map unit to integer
|
||||
if unit == 'Tag':
|
||||
unit = 0
|
||||
elif unit == 'Woche':
|
||||
unit = 1
|
||||
elif unit == 'Monat':
|
||||
unit = 2
|
||||
elif unit == 'Jahr':
|
||||
unit = 3
|
||||
else:
|
||||
unit = 1
|
||||
|
||||
# Save habit to database
|
||||
print(name, note, times, unit)
|
||||
habit.name, habit.note, habit.times, habit.unit = name, note, times, unit
|
||||
|
||||
habit.update()
|
||||
# Back to index
|
||||
return redirect(url_for('index'))
|
||||
|
||||
@app.route('/check_password', methods=['POST'])
|
||||
@login_required
|
||||
def check_password():
|
||||
|
||||
@ -2,6 +2,81 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
test
|
||||
{{ title }}
|
||||
<h1 class="mt-5">Habit Bearbeiten📋</h1>
|
||||
|
||||
<form action="/edit-habit" method="POST">
|
||||
<div class="mb-3">
|
||||
<label for="name" class="form-label">Name der Gewohnheit</label>
|
||||
<input type="text" class="form-control {% if errors.get('name') %} is-invalid {% endif %}" id="name" name="name" value="{{name}}">
|
||||
<div class="invalid-feedback">
|
||||
{{ errors.get('name', '') }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="note" class="form-label">Beschreibung</label>
|
||||
<input type="text" class="form-control {% if errors.get('note') %} is-invalid {% endif %}" id="note" name="note" value="{{note}}">
|
||||
<div class="invalid-feedback">
|
||||
{{ errors.get('note', '') }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="mb-3 col-2">
|
||||
<label for="times" class="form-label">Häufigkeit</label>
|
||||
<input type="number" min="1" class="form-control {% if errors.get('times') %} is-invalid {% endif %}" id="times" name="times" value="{{times}}">
|
||||
<div class="invalid-feedback">
|
||||
{{ errors.get('times', '') }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 col-10">
|
||||
<label for="unit" class="form-label">Im Zeitraum</label>
|
||||
<select class="form-select {% if errors.get('unit') %} is-invalid {% endif %}" id="unit" name="unit">
|
||||
<option value="Tag">Tag</option>
|
||||
<option value="Woche">Woche</option>
|
||||
<option value="Monat">Monat</option>
|
||||
<option value="Jahr">Jahr</option>
|
||||
</select>
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', (event) => {
|
||||
let selectedElement = document.getElementById('unit');
|
||||
|
||||
for (let option of selectedElement.options) {
|
||||
if (option.value == '{{ unit }}') {
|
||||
option.selected = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<div class="invalid-feedback">
|
||||
{{ errors.get('unit', '') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="hidden" name="habit" id="habit" class="{% if errors.get('habit') %} is-invalid {% endif %}">
|
||||
<div class="invalid-feedback">
|
||||
{{ errors.get('list_query', '') }}
|
||||
</div>
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
// Extracting the list-query from the URL
|
||||
var listQuery = new URLSearchParams(window.location.search).get('habit');
|
||||
|
||||
if ("{{ habit }}" != "") {
|
||||
listQuery = "{{ habit }}";
|
||||
|
||||
// Add the list_id to the URL
|
||||
var url = new URL(window.location.href);
|
||||
url.searchParams.set('habit', listQuery);
|
||||
// window.history.pushState({}, '', url);
|
||||
}
|
||||
|
||||
// Setting the list-query as the value of the hidden input field
|
||||
document.getElementById('habit').value = listQuery;
|
||||
});
|
||||
</script>
|
||||
<button type="submit" class="btn btn-primary">Submit</button>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
Loading…
x
Reference in New Issue
Block a user