Auto-commit local changes before build (2026-01-15 10:40:40)
This commit is contained in:
parent
d5fdc9a8d9
commit
1a64627a4e
@ -1 +1 @@
|
|||||||
v20260115-02-autotask-settings-migration-fix
|
v20260115-03-autotask-settings-ui
|
||||||
|
|||||||
@ -319,6 +319,138 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
|
{% if section == 'integrations' %}
|
||||||
|
<form method="post" class="mb-4">
|
||||||
|
<div class="card mb-3">
|
||||||
|
<div class="card-header">Autotask</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="form-check form-switch mb-3">
|
||||||
|
<input class="form-check-input" type="checkbox" id="autotask_enabled" name="autotask_enabled" {% if settings.autotask_enabled %}checked{% endif %} />
|
||||||
|
<label class="form-check-label" for="autotask_enabled">Enable Autotask integration</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row g-3">
|
||||||
|
<div class="col-md-4">
|
||||||
|
<label for="autotask_environment" class="form-label">Environment</label>
|
||||||
|
<select class="form-select" id="autotask_environment" name="autotask_environment">
|
||||||
|
<option value="" {% if not settings.autotask_environment %}selected{% endif %}>Select...</option>
|
||||||
|
<option value="sandbox" {% if settings.autotask_environment == 'sandbox' %}selected{% endif %}>Sandbox</option>
|
||||||
|
<option value="production" {% if settings.autotask_environment == 'production' %}selected{% endif %}>Production</option>
|
||||||
|
</select>
|
||||||
|
<div class="form-text">Use Sandbox for testing first.</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-4">
|
||||||
|
<label for="autotask_api_username" class="form-label">API Username</label>
|
||||||
|
<input type="text" class="form-control" id="autotask_api_username" name="autotask_api_username" value="{{ settings.autotask_api_username or '' }}" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-4">
|
||||||
|
<label for="autotask_api_password" class="form-label">API Password</label>
|
||||||
|
<input
|
||||||
|
type="password"
|
||||||
|
class="form-control"
|
||||||
|
id="autotask_api_password"
|
||||||
|
name="autotask_api_password"
|
||||||
|
placeholder="{% if has_autotask_password %}******** (stored){% else %}enter password{% endif %}"
|
||||||
|
/>
|
||||||
|
<div class="form-text">Leave empty to keep the existing password.</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label for="autotask_tracking_identifier" class="form-label">Tracking Identifier (Integration Code)</label>
|
||||||
|
<input type="text" class="form-control" id="autotask_tracking_identifier" name="autotask_tracking_identifier" value="{{ settings.autotask_tracking_identifier or '' }}" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label for="autotask_base_url" class="form-label">Backupchecks Base URL</label>
|
||||||
|
<input type="text" class="form-control" id="autotask_base_url" name="autotask_base_url" value="{{ settings.autotask_base_url or '' }}" placeholder="https://backupchecks.example.com" />
|
||||||
|
<div class="form-text">Required later for creating stable links to Job Details pages.</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card mb-3">
|
||||||
|
<div class="card-header">Ticket defaults</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="row g-3">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label for="autotask_default_queue_id" class="form-label">Default Queue</label>
|
||||||
|
<select class="form-select" id="autotask_default_queue_id" name="autotask_default_queue_id">
|
||||||
|
<option value="" {% if not settings.autotask_default_queue_id %}selected{% endif %}>Select...</option>
|
||||||
|
{% for q in autotask_queues %}
|
||||||
|
<option value="{{ q.id }}" {% if settings.autotask_default_queue_id == q.id %}selected{% endif %}>{{ q.name }}</option>
|
||||||
|
{% endfor %}
|
||||||
|
</select>
|
||||||
|
<div class="form-text">Requires refreshed reference data.</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label for="autotask_default_ticket_source_id" class="form-label">Ticket Source</label>
|
||||||
|
<select class="form-select" id="autotask_default_ticket_source_id" name="autotask_default_ticket_source_id">
|
||||||
|
<option value="" {% if not settings.autotask_default_ticket_source_id %}selected{% endif %}>Select...</option>
|
||||||
|
{% for s in autotask_ticket_sources %}
|
||||||
|
<option value="{{ s.id }}" {% if settings.autotask_default_ticket_source_id == s.id %}selected{% endif %}>{{ s.name }}</option>
|
||||||
|
{% endfor %}
|
||||||
|
</select>
|
||||||
|
<div class="form-text">Requires refreshed reference data.</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label for="autotask_priority_warning" class="form-label">Priority for Warning</label>
|
||||||
|
<input type="number" min="1" class="form-control" id="autotask_priority_warning" name="autotask_priority_warning" value="{{ settings.autotask_priority_warning or '' }}" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label for="autotask_priority_error" class="form-label">Priority for Error</label>
|
||||||
|
<input type="number" min="1" class="form-control" id="autotask_priority_error" name="autotask_priority_error" value="{{ settings.autotask_priority_error or '' }}" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-text mt-2">Priority values are Autotask priority IDs.</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="d-flex justify-content-end mt-3">
|
||||||
|
<button type="submit" class="btn btn-primary">Save settings</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<div class="card mb-4">
|
||||||
|
<div class="card-header">Diagnostics & reference data</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="row g-3 align-items-end">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="text-muted small">Last reference data sync</div>
|
||||||
|
<div class="fw-semibold">
|
||||||
|
{% if autotask_last_sync_at %}
|
||||||
|
{{ autotask_last_sync_at }}
|
||||||
|
{% else %}
|
||||||
|
never
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
<div class="text-muted small mt-2">
|
||||||
|
Cached Queues: {{ autotask_queues|length }}<br />
|
||||||
|
Cached Ticket Sources: {{ autotask_ticket_sources|length }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="d-flex flex-wrap gap-2 justify-content-md-end">
|
||||||
|
<form method="post" action="{{ url_for('main.settings_autotask_test_connection') }}">
|
||||||
|
<button type="submit" class="btn btn-outline-secondary">Test connection</button>
|
||||||
|
</form>
|
||||||
|
<form method="post" action="{{ url_for('main.settings_autotask_refresh_reference_data') }}">
|
||||||
|
<button type="submit" class="btn btn-outline-primary">Refresh reference data</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="form-text mt-2 text-md-end">Refresh loads Queues and Ticket Sources from Autotask for dropdown usage.</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
{% if section == 'maintenance' %}
|
{% if section == 'maintenance' %}
|
||||||
<div class="row g-3 mb-4">
|
<div class="row g-3 mb-4">
|
||||||
<div class="col-12 col-lg-6">
|
<div class="col-12 col-lg-6">
|
||||||
|
|||||||
@ -1,23 +1,30 @@
|
|||||||
## v20260115-01-autotask-settings
|
## v20260115-01-autotask-settings
|
||||||
|
|
||||||
Changes:
|
### Changes:
|
||||||
- Added initial Autotask integration settings structure to Backupchecks.
|
- Added initial Autotask integration settings structure to Backupchecks.
|
||||||
- Introduced new system settings demonstrating Autotask configuration fields such as enable toggle, environment selection, credentials, tracking identifier, and Backupchecks base URL.
|
- Introduced new system settings demonstrating Autotask configuration fields such as enable toggle, environment selection, credentials, tracking identifier, and Backupchecks base URL.
|
||||||
- Prepared data model and persistence layer to store Autotask-related configuration.
|
- Prepared data model and persistence layer to store Autotask-related configuration.
|
||||||
- Laid groundwork for future validation and integration logic without enabling ticket creation or customer mapping.
|
- Laid groundwork for future validation and integration logic without enabling ticket creation or customer mapping.
|
||||||
- Ensured changes are limited to configuration foundations only, keeping Phase 1 scope intact.
|
- Ensured changes are limited to configuration foundations only, keeping Phase 1 scope intact.
|
||||||
|
|
||||||
##
|
## v20260115-02-autotask-settings-migration-fix
|
||||||
|
|
||||||
v20260115-02-autotask-settings-migration-fix
|
### Changes:
|
||||||
|
|
||||||
Changes:
|
|
||||||
- Fixed Autotask system settings migration so it is always executed during application startup.
|
- Fixed Autotask system settings migration so it is always executed during application startup.
|
||||||
- Added safe, idempotent column existence checks to prevent startup failures on re-deployments.
|
- Added safe, idempotent column existence checks to prevent startup failures on re-deployments.
|
||||||
- Ensured all Autotask-related system_settings columns are created before being queried.
|
- Ensured all Autotask-related system_settings columns are created before being queried.
|
||||||
- Prevented aborted database transactions caused by missing columns during settings initialization.
|
- Prevented aborted database transactions caused by missing columns during settings initialization.
|
||||||
- Improved overall stability of the Settings page when Autotask integration is enabled.
|
- Improved overall stability of the Settings page when Autotask integration is enabled.
|
||||||
|
|
||||||
|
## v20260115-03-autotask-settings-ui
|
||||||
|
|
||||||
|
### Changes:
|
||||||
|
- Added visible Autotask configuration section under Settings → Integrations.
|
||||||
|
- Implemented form fields for enabling Autotask integration, environment selection, API credentials, tracking identifier, and Backupchecks base URL.
|
||||||
|
- Wired Autotask settings to SystemSettings for loading and saving configuration values.
|
||||||
|
- Added Diagnostics & Reference Data section with actions for testing the Autotask connection and refreshing reference data.
|
||||||
|
- Kept all functionality strictly within Phase 1 scope without introducing ticket or customer logic.
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
## v0.1.21
|
## v0.1.21
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user