Skip to content

Fixes #55: Add VirtualMachine support for License and Contract assignments#130

Merged
DanSheps merged 1 commit into
DanSheps:mainfrom
jsenecal:feature/vm-support
Dec 16, 2025
Merged

Fixes #55: Add VirtualMachine support for License and Contract assignments#130
DanSheps merged 1 commit into
DanSheps:mainfrom
jsenecal:feature/vm-support

Conversation

@jsenecal
Copy link
Copy Markdown
Collaborator

@jsenecal jsenecal commented Dec 15, 2025

Summary

Adds virtual_machine ForeignKey to both LicenseAssignment and SupportContractAssignment models, allowing licenses and support contracts to be assigned to Virtual Machines in addition to Devices.

Key Changes

  • Models: Added virtual_machine field with mutual exclusivity constraint (device OR virtual_machine, not both)
  • Validation: Module assignments restricted to devices only (VMs don't have modules)
  • Forms: TabbedGroups UI for selecting Device vs Virtual Machine
  • Filtersets: Added virtual_machine and virtual_machine_id filters
  • API: Full serializer support with nested VirtualMachineSerializer
  • Tables: Added virtual_machine columns to list views
  • Template Extension: Support Contracts card now appears on VirtualMachine detail pages
  • HTMX Views: Lazy-loading contract data for VM pages
  • Tests: Comprehensive test coverage for VM functionality
  • README: Updated to document VM support

Database Migration

Migration 0016_add_virtual_machine_support.py adds:

  • virtual_machine ForeignKey to both models
  • CheckConstraint enforcing device/VM mutual exclusivity

Closes #55

@DanSheps DanSheps enabled auto-merge December 16, 2025 13:45
…t assignments

- Add virtual_machine ForeignKey to LicenseAssignment and SupportContractAssignment models
- Enforce mutual exclusivity between device and virtual_machine via clean() and CheckConstraint
- Module assignments restricted to devices only (not VMs)
- Update forms with TabbedGroups for Device vs Virtual Machine selection
- Add virtual_machine filters to filtersets
- Add virtual_machine to API serializers with nested VirtualMachineSerializer
- Add virtual_machine columns to tables
- Add Support Contracts card to VirtualMachine detail pages via template extension
- Add HTMX views for lazy-loading VM contract data
- Add comprehensive tests for VM functionality
- Update README to document VM support
@DanSheps DanSheps merged commit 6dfd2f3 into DanSheps:main Dec 16, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Allow License Assigments for VMs

2 participants