add entry manually
This commit is contained in:
47
app.py
47
app.py
@@ -513,6 +513,12 @@ def logbook():
|
||||
if not is_logged_in(): return redirect(url_for('login'))
|
||||
user_id = get_user_id()
|
||||
|
||||
# Fetch activities for the manual entry dropdown
|
||||
activities = list(db.activities.find({'user_id': user_id}))
|
||||
# Ensure keys exist for template using them safely
|
||||
for a in activities:
|
||||
if 'subcategories' not in a: a['subcategories'] = []
|
||||
|
||||
# --- Statistics Logic ---
|
||||
time_range = request.args.get('range', '24h')
|
||||
now = datetime.now()
|
||||
@@ -616,7 +622,46 @@ def logbook():
|
||||
entry['duration_str'] = str(duration).split('.')[0]
|
||||
entry['is_running'] = True
|
||||
|
||||
return render_template('logbook.html', log=log, chart_data=chart_data, current_range=time_range, total_time_display=total_time_display)
|
||||
return render_template('logbook.html', log=log, chart_data=chart_data, current_range=time_range, total_time_display=total_time_display, activities=activities)
|
||||
|
||||
@app.route('/add_manual_entry', methods=['POST'])
|
||||
def add_manual_entry():
|
||||
if not is_logged_in(): return redirect(url_for('login'))
|
||||
user_id = get_user_id()
|
||||
|
||||
activity_id = request.form['activity_id']
|
||||
start_str = request.form['start_time']
|
||||
end_str = request.form['end_time']
|
||||
note = request.form.get('note', '')
|
||||
|
||||
# Check both inputs (one will be disabled in frontend, but check priority)
|
||||
subcategory = request.form.get('subcategory_select')
|
||||
if not subcategory:
|
||||
subcategory = request.form.get('subcategory', '')
|
||||
|
||||
try:
|
||||
start_time = datetime.strptime(start_str, '%Y-%m-%dT%H:%M')
|
||||
end_time = datetime.strptime(end_str, '%Y-%m-%dT%H:%M') if end_str else datetime.now()
|
||||
|
||||
# Validation: End time cannot be before start time
|
||||
if end_time < start_time:
|
||||
flash('End time cannot be before start time')
|
||||
return redirect(url_for('logbook'))
|
||||
|
||||
except ValueError:
|
||||
flash('Invalid date format')
|
||||
return redirect(url_for('logbook'))
|
||||
|
||||
db.time_entries.insert_one({
|
||||
'user_id': user_id,
|
||||
'activity_id': ObjectId(activity_id),
|
||||
'start_time': start_time,
|
||||
'end_time': end_time,
|
||||
'note': note,
|
||||
'subcategory': subcategory
|
||||
})
|
||||
|
||||
return redirect(url_for('logbook'))
|
||||
|
||||
@app.route('/logbook/<entry_id>', methods=['GET', 'POST'])
|
||||
def log_entry_detail(entry_id):
|
||||
|
||||
Reference in New Issue
Block a user