v0.1.19 - Throughput overview & responsive header
- Throughput: new "Throughput Overview" header with Gauge icon and brand-green badge icons on each card (Today, This week, 4-week average, Horse Mix, Grain Mix) - Throughput: inline rolling-range selector (7d / 4w / 6w / 12w, default 4 weeks) driving the customer-mix cards; stats window widened to 12 weeks so switching range is a pure client-side re-filter - Throughput: cards collapse to a single even 5-across row on laptop and up, with container-query value text that scales to each card's width - Throughput: date logic pinned to Australian Eastern time (fixes the day-early date); This week subtitle shows the Mon-Sun date range - Throughput: subtler tinted add-form; removed the inline-entry kicker and the "Open full form" link - Topbar: fix cramped laptop header - action toggles no longer wrap above the user button; search drops to its own row earlier Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -238,6 +238,18 @@ class NotificationSettingsUpdate(BaseModel):
|
||||
from_email: str | None = None
|
||||
|
||||
|
||||
# --- Admin: Xero integration -------------------------------------------------
|
||||
|
||||
|
||||
class XeroContactLinkUpsert(BaseModel):
|
||||
"""Link a customer to a Xero contact. ``xero_contact_id`` is the Xero
|
||||
``ContactID`` (or, in stub mode, the deterministic stub id)."""
|
||||
|
||||
xero_contact_id: str = Field(min_length=1, max_length=128)
|
||||
xero_contact_name: str | None = Field(default=None, max_length=255)
|
||||
xero_contact_email: str | None = Field(default=None, max_length=255)
|
||||
|
||||
|
||||
# --- Admin: customers & users ------------------------------------------------
|
||||
|
||||
_CUSTOMER_STATUSES = {"active", "disabled"}
|
||||
|
||||
Reference in New Issue
Block a user