diff --git a/src/admin/blueprints/products.py b/src/admin/blueprints/products.py index 294a0ab9b..7e2048f88 100644 --- a/src/admin/blueprints/products.py +++ b/src/admin/blueprints/products.py @@ -813,6 +813,7 @@ def edit_product(tenant_id, product_id): return redirect(url_for("products.edit_product", tenant_id=tenant_id, product_id=product_id)) product.formats = formats + logger.info(f"[DEBUG] Updated product.formats to: {formats}") # Flag JSONB column as modified so SQLAlchemy generates UPDATE from sqlalchemy.orm import attributes @@ -955,6 +956,11 @@ def edit_product(tenant_id, product_id): for po in existing_options[len(pricing_options_data) :]: db_session.delete(po) + # Debug: Log final state before commit + logger.info(f"[DEBUG] About to commit product {product_id}") + logger.info(f"[DEBUG] product.formats = {product.formats}") + logger.info(f"[DEBUG] product.formats type = {type(product.formats)}") + db_session.commit() flash(f"Product '{product.name}' updated successfully", "success") @@ -1032,7 +1038,9 @@ def edit_product(tenant_id, product_id): # Build set of selected format IDs for template checking # Use composite key (agent_url, format_id) tuples per AdCP spec (same as main.py) selected_format_ids = set() - logger.info(f"[DEBUG] Building selected_format_ids from product_dict['formats']: {product_dict['formats']}") + logger.info( + f"[DEBUG] Building selected_format_ids from product_dict['formats']: {product_dict['formats']}" + ) for fmt in product_dict["formats"]: agent_url = None format_id = None diff --git a/templates/add_product_gam.html b/templates/add_product_gam.html index 482f00105..e0a61181c 100644 --- a/templates/add_product_gam.html +++ b/templates/add_product_gam.html @@ -118,7 +118,7 @@