Admin Interface¶
The django-micboard admin interface provides comprehensive management and monitoring of your Shure wireless microphone system.
Accessing the Admin¶
Navigate to /admin/ in your Django application after logging in with admin credentials.
Device Management¶
Device List¶
The main device list (/admin/micboard/device/) shows all discovered devices:
- Device Information: Name, model, manufacturer, device ID
- Status Indicators:
- 🔋 Battery level (color-coded: green > 50%, yellow 20-50%, red < 20%)
- 📶 RF signal strength
- 🌐 Online/offline status
- 📍 Location and user assignment
- Timestamps: Last update, created date
- Actions: Edit, delete, assign user/location
Adding Devices¶
Automatic Discovery:
python manage.py add_shure_devices --cidr 192.168.1.0/24
Manual Addition: 1. Click "Add Device" in admin 2. Select Manufacturer: Shure 3. Enter Device ID and IP address 4. Optionally assign location and user
Device Details¶
Click on any device to view detailed information:
- Real-time Metrics: Live battery, RF, audio levels
- Device Configuration: Model, firmware, serial number
- Network Information: IP address, MAC address
- Assignment History: Previous users/locations
- Status Log: Recent status changes
User Assignments¶
Managing Assignments¶
Navigate to /admin/micboard/assignment/ to manage device assignments:
- Create Assignment: Assign device to user with alert preferences
- Bulk Assignment: Assign multiple devices at once
- Assignment History: Track assignment changes over time
Assignment Features¶
from micboard.services import AssignmentService
# Create assignment with alerts
assignment = AssignmentService.create_assignment(
user=user,
device=device,
alert_enabled=True,
alert_battery_threshold=20
)
Location Management¶
Location Setup¶
Create and manage locations at /admin/micboard/location/:
- Location Hierarchy: Building → Room → Zone
- Device Assignment: Assign devices to locations
- Capacity Tracking: Monitor device density per location
Location Analytics¶
View location-based analytics:
- Device count per location
- Battery health by area
- Signal strength mapping
- Usage patterns
Connection Monitoring¶
Real-time Connection Status¶
Monitor WebSocket and API connections at /admin/micboard/realtimeconnection/:
- Connection State: Connected, disconnected, error
- Health Metrics: Latency, error rate, uptime
- Automatic Recovery: Failed connection retry logic
Connection Health Checks¶
# Check all connections
python manage.py check_connections
# Monitor continuously
python manage.py check_connections --continuous
Manufacturer Management¶
Manufacturer Configuration¶
Configure manufacturer settings at /admin/micboard/manufacturer/:
- Shure Settings: API endpoints, credentials, timeouts
- Plugin Configuration: Enable/disable manufacturers
- API Rate Limits: Configure request limits
Discovery Management¶
Discovery IP Ranges¶
Manage device discovery at /admin/micboard/discovery/:
- IP Range Configuration: Add CIDR ranges for scanning
- Discovery Scheduling: Automated discovery intervals
- Manual Discovery: On-demand device scanning
System Health Dashboard¶
Overview Dashboard¶
The main admin index provides system health overview:
- Device Summary: Total devices, online/offline counts
- Battery Status: Devices by battery level ranges
- Alert Summary: Active alerts and notifications
- Connection Status: API and WebSocket health
Health Metrics¶
Monitor system performance:
- Polling success rates
- API response times
- WebSocket connection counts
- Error rates and trends
Custom Admin Features¶
Custom Actions¶
Bulk operations available in admin lists:
- Bulk Status Update: Mark multiple devices online/offline
- Bulk Assignment: Assign multiple devices to user/location
- Bulk Delete: Remove multiple devices
- Export Data: CSV export of device information
Custom Admin Extensions¶
To extend the admin interface with custom fields:
# custom_admin.py
from django.contrib import admin
from micboard.models import Receiver
@admin.register(Receiver)
class CustomReceiverAdmin(admin.ModelAdmin):
list_display = ['name', 'api_device_id', 'ip', 'is_online']
search_fields = ['name', 'api_device_id', 'serial_number']
list_filter = ['manufacturer', 'is_online', 'location']
Security and Permissions¶
Admin Permissions¶
Configure admin access controls:
- User Permissions: Read-only vs. full access
- Object Permissions: Location-based access control
- Audit Logging: Track all admin actions
API Access Control¶
Secure API endpoints:
# settings.py
MICBOARD_API_PERMISSIONS = {
'require_authentication': True,
'allow_cors_origins': ['https://your-domain.com'],
}
Troubleshooting¶
Common Admin Issues¶
Devices not appearing: - Check discovery IP ranges - Verify API credentials - Review Django logs for errors
Real-time updates not working: - Confirm WebSocket configuration - Check Redis connectivity - Verify ASGI setup
Permission errors: - Review user group permissions - Check object-level permissions - Verify authentication settings
Performance Optimization¶
Large device counts: - Implement pagination in admin lists - Use select_related for foreign keys - Configure database indexes
Slow page loads: - Enable admin caching - Optimize queryset filtering - Use admin list_select_related
Advanced Features¶
Custom Dashboard Widgets¶
Add custom admin dashboard widgets:
from django.contrib.admin import site
from micboard.admin.widgets import BatteryHealthWidget
site.add_action(BatteryHealthWidget())
API Integration¶
Use admin data in custom applications:
# Get admin data via API
import requests
response = requests.get('/api/v1/devices/', auth=('user', 'pass'))
devices = response.json()
Export and Reporting¶
Generate reports from admin data:
- CSV Export: Device inventories
- PDF Reports: System health summaries
- Scheduled Reports: Automated report generation