Skip to content

Release 0.18.0 - #740

Merged
Tim020 merged 19 commits into
mainfrom
dev
Nov 28, 2025
Merged

Release 0.18.0#740
Tim020 merged 19 commits into
mainfrom
dev

Conversation

@Tim020

@Tim020 Tim020 commented Nov 28, 2025

Copy link
Copy Markdown
Contributor

No description provided.

dependabot Bot and others added 13 commits July 11, 2025 15:36
Bumps [alembic](https://github.com/sqlalchemy/alembic) from 1.16.2 to 1.16.4.
- [Release notes](https://github.com/sqlalchemy/alembic/releases)
- [Changelog](https://github.com/sqlalchemy/alembic/blob/main/CHANGES)
- [Commits](https://github.com/sqlalchemy/alembic/commits)

---
updated-dependencies:
- dependency-name: alembic
  dependency-version: 1.16.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Implements issue #710 by adding keyboard handlers for PageUp and PageDown keys
in the live script view. Users can now jump between script pages quickly during
live shows.

Features:
- PageUp/PageDown keys navigate between script pages
- Only available to script leaders (maintains existing permission model)
- Disabled during intervals (consistent with existing navigation)
- Proper boundary checking to prevent navigation beyond loaded pages
- Navigates to first line of target page for consistent positioning

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
…ation

Add page up/down navigation to live view (#710)
* Fix multiple submission issue in ShowLiveView new cue modal

- Add submittingNewCue state to prevent concurrent submissions
- Disable OK button during submission
- Add proper error handling with try/catch
- Ensure modal closes after successful submission
- Reset submission state in resetNewCueForm

This fixes issue #696 where pressing enter in the new cue modal
could create multiple cues due to lack of submission protection.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix multiple submission issues in ScriptLineCueEditor modals

- Add submittingNewCue, submittingEditCue, and deletingCue states
- Disable modal buttons during operations to prevent concurrent requests
- Add proper error handling with try/catch blocks
- Ensure modals close after successful operations
- Reset submission states in form reset methods

This prevents multiple cue operations from being triggered by rapid
form submissions or button clicks, complementing the ShowLiveView fix.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix multiple submission issues in ConfigCast modals

- Add submittingNewCast, submittingEditCast, and deletingCast states
- Disable modal buttons and table actions during operations
- Add proper error handling with try/catch blocks
- Ensure modals close after successful operations
- Reset submission states in form reset methods

This prevents multiple cast member operations from being triggered
by rapid form submissions or button clicks.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix multiple submission issues in ConfigCharacters and ConfigCharacterGroups modals

ConfigCharacters.vue:
- Add submission state management for new/edit/delete operations
- Disable modal buttons and table actions during operations
- Add proper error handling and modal closure behavior

ConfigCharacterGroups.vue:
- Add submission state management for new/edit/delete group operations
- Disable modal buttons and table actions during operations
- Add proper error handling and modal closure behavior
- Fix modal title from "Add New" to "Edit Character Group"

Both files now follow the established modal submission protection pattern.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix multiple submission issues in remaining config modals

ConfigActs.vue:
- Add submission state management for new/edit/delete act operations
- Disable modal buttons and table actions during operations
- Add proper error handling and modal closure behavior

ConfigScenes.vue:
- Add submission state management for new/edit/delete/first scene operations
- Disable modal buttons and table actions during operations
- Add proper error handling and modal closure behavior

ConfigCues.vue:
- Add submission state management for new/edit/delete cue type operations
- Disable modal buttons and table actions during operations
- Add proper error handling and modal closure behavior

ConfigShow.vue:
- Add submission state management for edit show operations
- Disable action buttons during operations
- Add proper error handling and modal closure behavior

ConfigScript.vue:
- Add submission state management for new revision/load/delete operations
- Disable action buttons and table actions during operations
- Add proper error handling and modal closure behavior

All config files now follow the established modal submission protection pattern.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix multiple submission issues in remaining modal components

ConfigSystem.vue:
- Add submission state management for show save/load operations
- Disable modal buttons and load buttons during operations
- Add proper error handling with try/catch blocks

MicList.vue:
- Add submission state management for new/edit/delete microphone operations
- Disable modal buttons and delete buttons during operations
- Add proper error handling and modal closure behavior
- Fix logging import path

StageDirectionStyles.vue (show config):
- Add submission state management for new/edit/delete style operations
- Disable modal buttons and table actions during operations
- Add proper error handling and modal closure behavior
- Fix bug in resetEditFormState method

StageDirectionStyles.vue (user settings):
- Add submission state management for new/edit/delete override operations
- Disable modal buttons and table actions during operations
- Add proper error handling and modal closure behavior

All remaining modal components now follow the established submission protection pattern.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
Bumps [tornado](https://github.com/tornadoweb/tornado) from 6.5.1 to 6.5.2.
- [Changelog](https://github.com/tornadoweb/tornado/blob/master/docs/releases.rst)
- [Commits](tornadoweb/tornado@v6.5.1...v6.5.2)

---
updated-dependencies:
- dependency-name: tornado
  dependency-version: 6.5.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [pylint](https://github.com/pylint-dev/pylint) from 3.3.7 to 3.3.8.
- [Release notes](https://github.com/pylint-dev/pylint/releases)
- [Commits](pylint-dev/pylint@v3.3.7...v3.3.8)

---
updated-dependencies:
- dependency-name: pylint
  dependency-version: 3.3.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [alembic](https://github.com/sqlalchemy/alembic) from 1.16.4 to 1.16.5.
- [Release notes](https://github.com/sqlalchemy/alembic/releases)
- [Changelog](https://github.com/sqlalchemy/alembic/blob/main/CHANGES)
- [Commits](https://github.com/sqlalchemy/alembic/commits)

---
updated-dependencies:
- dependency-name: alembic
  dependency-version: 1.16.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tim Bradgate <timbradgate@hotmail.co.uk>
* Update marshmallow requirement from <4 to <5 in /server

Updates the requirements on [marshmallow](https://github.com/marshmallow-code/marshmallow) to permit the latest version.
- [Changelog](https://github.com/marshmallow-code/marshmallow/blob/dev/CHANGELOG.rst)
- [Commits](marshmallow-code/marshmallow@0.1.0...4.0.1)

---
updated-dependencies:
- dependency-name: marshmallow
  dependency-version: 4.0.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix: update marshmallow-sqlalchemy to v1.4.0+ for marshmallow v4 compatibility

- Upgraded marshmallow-sqlalchemy from 0.30.0 to >=1.4.0
- Resolves AttributeError: module 'marshmallow' has no attribute '__version__'
- marshmallow-sqlalchemy v1.4.0+ supports both marshmallow v3 and v4
- All tests passing (26/26)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tim Bradgate <timbradgate@hotmail.co.uk>
Co-authored-by: Claude <noreply@anthropic.com>
…#738)

* Adding support for API Tokens for REST API interactions after the move to JWT auth

Since the move to JWT, the tokens regenerate so you cannot simply nab the cookie content anymore to use via an external application interacting with the REST API. Adding functionality to add an API Token to a user's account to authenticate in place of JWTs.

* Fix formatting and database migration missing index

* test: fix database isolation in test teardown

Added database engine disposal to DigiScriptTestCase.tearDown() to ensure
proper test isolation. Previously, in-memory SQLite database connections
persisted across test methods, causing data leakage that resulted in
2 test failures when tests were run together:

- test_create_admin failed due to username conflicts from previous tests
- test_api_token_get failed because user already had API token from
  previous test execution

The fix ensures each test method gets a fresh database instance by
calling models.db.engine.dispose() in tearDown, forcing the creation
of a new engine for the next test.

Test results improved from 11 passed/2 failed to 31 passed/0 failed
across all test suites.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Tim Bradgate <timbradgate@hotmail.co.uk>
Co-authored-by: Claude <noreply@anthropic.com>
@github-actions github-actions Bot added client Pull requests changing front end code server Pull requests changing back end code xlarge-diff idea git labels Nov 28, 2025
@github-actions

github-actions Bot commented Nov 28, 2025

Copy link
Copy Markdown

Test Results

31 tests   31 ✅  8s ⏱️
 1 suites   0 💤
 1 files     0 ❌

Results for commit 63bac57.

♻️ This comment has been updated with latest results.

dependabot Bot and others added 6 commits November 28, 2025 22:25
Bumps [alembic](https://github.com/sqlalchemy/alembic) from 1.16.5 to 1.17.2.
- [Release notes](https://github.com/sqlalchemy/alembic/releases)
- [Changelog](https://github.com/sqlalchemy/alembic/blob/main/CHANGES)
- [Commits](https://github.com/sqlalchemy/alembic/commits)

---
updated-dependencies:
- dependency-name: alembic
  dependency-version: 1.17.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [black](https://github.com/psf/black) from 25.1.0 to 25.11.0.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](psf/black@25.1.0...25.11.0)

---
updated-dependencies:
- dependency-name: black
  dependency-version: 25.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [pylint](https://github.com/pylint-dev/pylint) from 3.3.8 to 3.3.9.
- [Release notes](https://github.com/pylint-dev/pylint/releases)
- [Commits](pylint-dev/pylint@v3.3.8...v3.3.9)

---
updated-dependencies:
- dependency-name: pylint
  dependency-version: 3.3.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…uration (#741)

Consolidate Python tool configurations into a single pyproject.toml file
while preserving existing code formatting standards.

Key improvements:
- Single source of truth for tool configurations
- Dynamic dependency loading from requirements.txt files
- Pytest pythonpath configuration enables running `pytest` directly
- No code reformatting required - matches existing standards

Technical changes:
- Created pyproject.toml with:
  - Black: line-length=88 (default, matches existing formatting)
  - isort: profile=black, line-length=88
  - Pylint: migrated all settings from .pylintrc (max-line-length=120)
  - Pytest: pythonpath=["."] fixes import resolution
- Removed .pylintrc (configuration moved to pyproject.toml)

Benefits:
- Run `pytest` directly without `python -m pytest` workaround
- All tool configs in one standardized location
- Modern Python packaging standards (PEP 517/518)
- No configuration duplication

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
@Tim020
Tim020 marked this pull request as ready for review November 28, 2025 23:05
@Tim020
Tim020 merged commit 2d5f5d4 into main Nov 28, 2025
13 of 14 checks passed
@Tim020 Tim020 mentioned this pull request Nov 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

client Pull requests changing front end code git idea server Pull requests changing back end code xlarge-diff

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants