Release Nouri 1.3.0 with improved food states and quick entry flow
This commit is contained in:
+26
-1
@@ -15,7 +15,7 @@ from .constants import (
|
||||
DEFAULT_CATEGORY_BUILDERS,
|
||||
)
|
||||
|
||||
CURRENT_SCHEMA_VERSION = "1.2.2"
|
||||
CURRENT_SCHEMA_VERSION = "1.3.0"
|
||||
|
||||
ANIMAL_HINTS = (
|
||||
"huhn",
|
||||
@@ -344,6 +344,19 @@ def migrate_food_flavor_profiles(database: sqlite3.Connection) -> None:
|
||||
set_meta(database, "food_flavor_profiles_migrated", "1")
|
||||
|
||||
|
||||
def migrate_item_archive_state(database: sqlite3.Connection) -> None:
|
||||
if get_meta(database, "item_archive_state_migrated") == "1":
|
||||
return
|
||||
|
||||
if "is_archived" not in table_columns(database, "items"):
|
||||
return
|
||||
|
||||
database.execute("UPDATE items SET is_archived = 0 WHERE is_archived IS NULL")
|
||||
database.execute("UPDATE items SET is_archived = 1 WHERE availability_state = 'archived'")
|
||||
database.execute("UPDATE items SET availability_state = 'idea' WHERE availability_state = 'archived'")
|
||||
set_meta(database, "item_archive_state_migrated", "1")
|
||||
|
||||
|
||||
def get_db() -> sqlite3.Connection:
|
||||
if "db" not in g:
|
||||
g.db = sqlite3.connect(
|
||||
@@ -468,6 +481,7 @@ def bootstrap_legacy_schema(database: sqlite3.Connection) -> None:
|
||||
add_column_if_missing(database, "items", "meal_type TEXT")
|
||||
add_column_if_missing(database, "items", "meal_tags TEXT NOT NULL DEFAULT ''")
|
||||
add_column_if_missing(database, "items", "energy_density TEXT NOT NULL DEFAULT 'neutral'")
|
||||
add_column_if_missing(database, "items", "is_archived INTEGER NOT NULL DEFAULT 0")
|
||||
|
||||
if table_exists(database, "shopping_entries"):
|
||||
add_column_if_missing(database, "shopping_entries", "household_id INTEGER")
|
||||
@@ -722,6 +736,8 @@ def ensure_schema_upgrades(database: sqlite3.Connection) -> None:
|
||||
add_column_if_missing(database, "items", "meal_type TEXT")
|
||||
add_column_if_missing(database, "items", "meal_tags TEXT NOT NULL DEFAULT ''")
|
||||
add_column_if_missing(database, "items", "energy_density TEXT NOT NULL DEFAULT 'neutral'")
|
||||
add_column_if_missing(database, "items", "is_archived INTEGER NOT NULL DEFAULT 0")
|
||||
add_column_if_missing(database, "items", "is_quick_added INTEGER NOT NULL DEFAULT 0")
|
||||
add_column_if_missing(database, "shopping_entries", "needed_for_date TEXT")
|
||||
add_column_if_missing(database, "shopping_entries", "needed_for_daypart_id INTEGER")
|
||||
add_column_if_missing(database, "user_settings", "suggestion_style TEXT NOT NULL DEFAULT 'balanced'")
|
||||
@@ -771,6 +787,7 @@ def ensure_schema_upgrades(database: sqlite3.Connection) -> None:
|
||||
sync_default_categories(database)
|
||||
migrate_item_profiles(database)
|
||||
migrate_food_flavor_profiles(database)
|
||||
migrate_item_archive_state(database)
|
||||
database.execute(
|
||||
"""
|
||||
INSERT OR IGNORE INTO user_settings (user_id)
|
||||
@@ -784,6 +801,8 @@ def ensure_schema_upgrades(database: sqlite3.Connection) -> None:
|
||||
database.execute("UPDATE items SET suggestion_priority = 'normal' WHERE suggestion_priority IS NULL OR suggestion_priority = ''")
|
||||
database.execute("UPDATE items SET can_be_meal_core = 0 WHERE can_be_meal_core IS NULL")
|
||||
database.execute("UPDATE items SET meal_tags = '' WHERE meal_tags IS NULL")
|
||||
database.execute("UPDATE items SET is_archived = 0 WHERE is_archived IS NULL")
|
||||
database.execute("UPDATE items SET is_quick_added = 0 WHERE is_quick_added IS NULL")
|
||||
database.execute("UPDATE user_settings SET suggestion_style = 'balanced' WHERE suggestion_style IS NULL OR suggestion_style = ''")
|
||||
database.execute("UPDATE user_settings SET energy_preference = 'neutral' WHERE energy_preference IS NULL OR energy_preference = ''")
|
||||
database.execute("UPDATE user_settings SET protein_preference = 'mixed' WHERE protein_preference IS NULL OR protein_preference = ''")
|
||||
@@ -805,6 +824,12 @@ def ensure_schema_upgrades(database: sqlite3.Connection) -> None:
|
||||
ON items (household_id, visibility, availability_state)
|
||||
"""
|
||||
)
|
||||
database.execute(
|
||||
"""
|
||||
CREATE INDEX IF NOT EXISTS idx_items_household_visibility_archived
|
||||
ON items (household_id, visibility, is_archived, availability_state)
|
||||
"""
|
||||
)
|
||||
database.execute(
|
||||
"""
|
||||
CREATE INDEX IF NOT EXISTS idx_items_target_user
|
||||
|
||||
Reference in New Issue
Block a user