All checks were successful
Deploy to K8s / deploy (push) Successful in 12s
Instead of hiding older months entirely, show all months in the from/to selectors but default the from-select to the last MONTHS_TO_SHOW months on page load. The "All" button resets to full history as before. Python: passes months_to_show to render_template, IIFE sets fromSelect.value. Go: adds MonthsToShow to response structs, data-months-to-show attr in templates, filters.js reads it and defaults fromSelect after hideFutureMonths. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
416 lines
8.2 KiB
JSON
416 lines
8.2 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$ref": "#/$defs/JuniorsResponse",
|
|
"$defs": {
|
|
"Credit": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"amount": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"amount"
|
|
]
|
|
},
|
|
"ExceptionData": {
|
|
"properties": {
|
|
"amount": {
|
|
"type": "integer"
|
|
},
|
|
"note": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"type": "object",
|
|
"required": [
|
|
"amount",
|
|
"note"
|
|
]
|
|
},
|
|
"Expected": {
|
|
"oneOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"enum": [
|
|
"?"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"JuniorsMemberData": {
|
|
"properties": {
|
|
"tier": {
|
|
"type": "string"
|
|
},
|
|
"months": {
|
|
"additionalProperties": {
|
|
"$ref": "#/$defs/JuniorsMonthData"
|
|
},
|
|
"type": "object"
|
|
},
|
|
"other_transactions": {
|
|
"items": {
|
|
"$ref": "#/$defs/MemberOtherEntry"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"total_balance": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"type": "object",
|
|
"required": [
|
|
"tier",
|
|
"months",
|
|
"other_transactions",
|
|
"total_balance"
|
|
]
|
|
},
|
|
"JuniorsMonthData": {
|
|
"properties": {
|
|
"expected": {
|
|
"$ref": "#/$defs/Expected"
|
|
},
|
|
"original_expected": {
|
|
"$ref": "#/$defs/Expected"
|
|
},
|
|
"attendance_count": {
|
|
"type": "integer"
|
|
},
|
|
"exception": {
|
|
"$ref": "#/$defs/ExceptionData"
|
|
},
|
|
"paid": {
|
|
"type": "number"
|
|
},
|
|
"transactions": {
|
|
"items": {
|
|
"$ref": "#/$defs/MemberTxEntry"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"type": "object",
|
|
"required": [
|
|
"expected",
|
|
"original_expected",
|
|
"attendance_count",
|
|
"exception",
|
|
"paid",
|
|
"transactions"
|
|
]
|
|
},
|
|
"JuniorsResponse": {
|
|
"properties": {
|
|
"months": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"raw_months": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"results": {
|
|
"items": {
|
|
"$ref": "#/$defs/MemberRow"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"totals": {
|
|
"items": {
|
|
"$ref": "#/$defs/TotalCell"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"member_data": {
|
|
"additionalProperties": {
|
|
"$ref": "#/$defs/JuniorsMemberData"
|
|
},
|
|
"type": "object"
|
|
},
|
|
"month_labels": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
"raw_payments": {
|
|
"additionalProperties": {
|
|
"items": {
|
|
"$ref": "#/$defs/RawTransaction"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"type": "object"
|
|
},
|
|
"credits": {
|
|
"items": {
|
|
"$ref": "#/$defs/Credit"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"debts": {
|
|
"items": {
|
|
"$ref": "#/$defs/Credit"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"unmatched": {
|
|
"items": {
|
|
"$ref": "#/$defs/RawTransaction"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"attendance_url": {
|
|
"type": "string"
|
|
},
|
|
"payments_url": {
|
|
"type": "string"
|
|
},
|
|
"bank_account": {
|
|
"type": "string"
|
|
},
|
|
"current_month": {
|
|
"type": "string"
|
|
},
|
|
"months_to_show": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"type": "object",
|
|
"required": [
|
|
"months",
|
|
"raw_months",
|
|
"results",
|
|
"totals",
|
|
"member_data",
|
|
"month_labels",
|
|
"raw_payments",
|
|
"credits",
|
|
"debts",
|
|
"unmatched",
|
|
"attendance_url",
|
|
"payments_url",
|
|
"bank_account",
|
|
"current_month",
|
|
"months_to_show"
|
|
]
|
|
},
|
|
"MemberOtherEntry": {
|
|
"properties": {
|
|
"amount": {
|
|
"type": "number"
|
|
},
|
|
"date": {
|
|
"type": "string"
|
|
},
|
|
"sender": {
|
|
"type": "string"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
},
|
|
"purpose": {
|
|
"type": "string"
|
|
},
|
|
"confidence": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"type": "object",
|
|
"required": [
|
|
"amount",
|
|
"date",
|
|
"sender",
|
|
"message",
|
|
"purpose",
|
|
"confidence"
|
|
]
|
|
},
|
|
"MemberRow": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"months": {
|
|
"items": {
|
|
"$ref": "#/$defs/MonthCell"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"balance": {
|
|
"type": "integer"
|
|
},
|
|
"unpaid_periods": {
|
|
"type": "string"
|
|
},
|
|
"raw_unpaid_periods": {
|
|
"type": "string"
|
|
},
|
|
"payable_amount": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"months",
|
|
"balance",
|
|
"unpaid_periods",
|
|
"raw_unpaid_periods",
|
|
"payable_amount"
|
|
]
|
|
},
|
|
"MemberTxEntry": {
|
|
"properties": {
|
|
"amount": {
|
|
"type": "number"
|
|
},
|
|
"date": {
|
|
"type": "string"
|
|
},
|
|
"sender": {
|
|
"type": "string"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
},
|
|
"confidence": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"type": "object",
|
|
"required": [
|
|
"amount",
|
|
"date",
|
|
"sender",
|
|
"message",
|
|
"confidence"
|
|
]
|
|
},
|
|
"MonthCell": {
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
},
|
|
"overridden": {
|
|
"type": "boolean"
|
|
},
|
|
"status": {
|
|
"type": "string"
|
|
},
|
|
"amount": {
|
|
"type": "integer"
|
|
},
|
|
"month": {
|
|
"type": "string"
|
|
},
|
|
"raw_month": {
|
|
"type": "string"
|
|
},
|
|
"tooltip": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"type": "object",
|
|
"required": [
|
|
"text",
|
|
"overridden",
|
|
"status",
|
|
"amount",
|
|
"month",
|
|
"raw_month",
|
|
"tooltip"
|
|
]
|
|
},
|
|
"RawTransaction": {
|
|
"properties": {
|
|
"date": {
|
|
"type": "string"
|
|
},
|
|
"amount": {
|
|
"type": "number"
|
|
},
|
|
"manual_fix": {
|
|
"type": "string"
|
|
},
|
|
"person": {
|
|
"type": "string"
|
|
},
|
|
"purpose": {
|
|
"type": "string"
|
|
},
|
|
"inferred_amount": {
|
|
"type": "number"
|
|
},
|
|
"sender": {
|
|
"type": "string"
|
|
},
|
|
"vs": {
|
|
"type": "string"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
},
|
|
"bank_id": {
|
|
"type": "string"
|
|
},
|
|
"sync_id": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"type": "object",
|
|
"required": [
|
|
"date",
|
|
"amount",
|
|
"manual_fix",
|
|
"person",
|
|
"purpose",
|
|
"inferred_amount",
|
|
"sender",
|
|
"vs",
|
|
"message",
|
|
"bank_id",
|
|
"sync_id"
|
|
]
|
|
},
|
|
"TotalCell": {
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"type": "object",
|
|
"required": [
|
|
"text",
|
|
"status"
|
|
]
|
|
}
|
|
}
|
|
}
|