feat: add persistent badges and admin badge page
This commit is contained in:
36
seed.py
36
seed.py
@@ -6,6 +6,7 @@ from app import create_app
|
||||
from app.cli import seed_badges
|
||||
from app.extensions import db
|
||||
from app.models import TaskInstance, TaskTemplate, User
|
||||
from app.services.badges import evaluate_task_badges
|
||||
from app.services.monthly import archive_months_missing_up_to_previous
|
||||
|
||||
|
||||
@@ -16,6 +17,16 @@ def seed_database() -> None:
|
||||
db.create_all()
|
||||
seed_badges()
|
||||
|
||||
admin = User(
|
||||
name="Henri",
|
||||
email="mail@hnz.io",
|
||||
avatar_path="images/avatars/default.svg",
|
||||
is_admin=True,
|
||||
notification_task_due_enabled=True,
|
||||
notification_monthly_winner_enabled=True,
|
||||
)
|
||||
admin.set_password("putzliga123")
|
||||
|
||||
anna = User(
|
||||
name="Anna",
|
||||
email="anna@putzliga.local",
|
||||
@@ -33,7 +44,7 @@ def seed_database() -> None:
|
||||
)
|
||||
ben.set_password("putzliga123")
|
||||
|
||||
db.session.add_all([anna, ben])
|
||||
db.session.add_all([admin, anna, ben])
|
||||
db.session.flush()
|
||||
|
||||
templates = [
|
||||
@@ -72,6 +83,14 @@ def seed_database() -> None:
|
||||
recurrence_interval_unit="none",
|
||||
active=True,
|
||||
),
|
||||
TaskTemplate(
|
||||
title="Flur-Grundreinigung",
|
||||
description="Einmal alles: saugen, wischen, Schuhe sortieren.",
|
||||
default_points=28,
|
||||
default_assigned_user_id=ben.id,
|
||||
recurrence_interval_unit="none",
|
||||
active=True,
|
||||
),
|
||||
TaskTemplate(
|
||||
title="Bettwäsche wechseln",
|
||||
description="Neue Bettwäsche aufziehen.",
|
||||
@@ -130,6 +149,17 @@ def seed_database() -> None:
|
||||
task_template_id=templates[4].id,
|
||||
title=templates[4].title,
|
||||
description=templates[4].description,
|
||||
assigned_user_id=ben.id,
|
||||
due_date=(now - timedelta(days=3)).date(),
|
||||
status="completed",
|
||||
completed_at=current_month_anchor - timedelta(days=2),
|
||||
completed_by_user_id=anna.id,
|
||||
points_awarded=28,
|
||||
),
|
||||
TaskInstance(
|
||||
task_template_id=templates[5].id,
|
||||
title=templates[5].title,
|
||||
description=templates[5].description,
|
||||
assigned_user_id=anna.id,
|
||||
due_date=(now - timedelta(days=9)).date(),
|
||||
status="completed",
|
||||
@@ -141,7 +171,7 @@ def seed_database() -> None:
|
||||
task_template_id=templates[1].id,
|
||||
title=templates[1].title,
|
||||
description=templates[1].description,
|
||||
assigned_user_id=ben.id,
|
||||
assigned_user_id=anna.id,
|
||||
due_date=(previous_month_anchor - timedelta(days=1)).date(),
|
||||
status="completed",
|
||||
completed_at=previous_month_anchor,
|
||||
@@ -174,6 +204,8 @@ def seed_database() -> None:
|
||||
db.session.add_all(instances)
|
||||
db.session.commit()
|
||||
|
||||
for user in (admin, anna, ben):
|
||||
evaluate_task_badges(user)
|
||||
archive_months_missing_up_to_previous()
|
||||
print("Seed-Daten geschrieben.")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user