512 lines
11 KiB
Markdown
512 lines
11 KiB
Markdown
# Django Admin Bulk Actions - Quick Reference Guide
|
|
|
|
## Overview
|
|
This guide provides a quick reference for all bulk actions implemented across 39 Django admin models in the IGNY8 platform.
|
|
|
|
---
|
|
|
|
## Common Action Patterns
|
|
|
|
### 1. Status Toggle Actions
|
|
**Pattern**: `bulk_activate` / `bulk_deactivate`
|
|
|
|
**Models**: Account, Plan, Site, Sector, Clusters, ContentTaxonomy, CreditPackage, AIPrompt, IntegrationSettings, AuthorProfile, Strategy, and more
|
|
|
|
**Usage**:
|
|
1. Select records in admin list view
|
|
2. Choose "Activate/Deactivate selected" from actions dropdown
|
|
3. Click "Go"
|
|
4. Confirmation message shows count of updated records
|
|
|
|
### 2. Soft Delete Actions
|
|
**Pattern**: `bulk_soft_delete`
|
|
|
|
**Models**: Account, Content, Keywords, Tasks, Site, Sector, Clusters, ContentIdeas, Images, Industry, IndustrySector, SeedKeyword, Subscription, User
|
|
|
|
**Usage**:
|
|
1. Select records to delete
|
|
2. Choose "Soft delete selected" action
|
|
3. Records marked as deleted, not removed from database
|
|
4. Preserves data for audit trails
|
|
|
|
### 3. Import/Export Operations
|
|
**Export Only**: 21 models (logs, payment methods, deployment records, etc.)
|
|
**Import & Export**: 18 models (content, ideas, keywords, plans, etc.)
|
|
|
|
**Usage**:
|
|
- **Export**: Click "Export" button → Select format (CSV/XLSX) → Download
|
|
- **Import**: Click "Import" button → Upload file → Preview → Confirm
|
|
|
|
### 4. Form-Based Actions
|
|
**Pattern**: Actions requiring user input via intermediate form
|
|
|
|
**Examples**:
|
|
- `bulk_add_credits` / `bulk_subtract_credits` (Account)
|
|
- `bulk_assign_cluster` (ContentIdeas)
|
|
- `bulk_assign_to_user` (Tasks)
|
|
- `bulk_upgrade_plan` (Subscription)
|
|
- `bulk_update_frequency` (AutomationConfig)
|
|
|
|
**Usage**:
|
|
1. Select records
|
|
2. Choose action from dropdown
|
|
3. Fill in form on intermediate page
|
|
4. Click "Apply" to execute
|
|
|
|
---
|
|
|
|
## Model-Specific Actions Guide
|
|
|
|
### Account Management
|
|
|
|
#### Account
|
|
- **Bulk add credits** (Form: amount to add)
|
|
- **Bulk subtract credits** (Form: amount to remove)
|
|
- **Bulk activate accounts**
|
|
- **Bulk suspend accounts**
|
|
- **Bulk soft delete**
|
|
|
|
**Use Cases**:
|
|
- Credit adjustments for promotions
|
|
- Account suspension for policy violations
|
|
- Account activation after verification
|
|
|
|
#### User
|
|
- **Bulk activate users**
|
|
- **Bulk deactivate users**
|
|
- **Bulk assign to group** (Form: select group)
|
|
- **Bulk reset password**
|
|
- **Bulk verify email**
|
|
- **Bulk soft delete**
|
|
|
|
**Use Cases**:
|
|
- Team member management
|
|
- Role assignments via groups
|
|
- Password resets for security
|
|
|
|
#### Plan & Subscription
|
|
**Plan**:
|
|
- Bulk activate/deactivate
|
|
- Bulk clone plans
|
|
|
|
**Subscription**:
|
|
- Bulk activate/cancel
|
|
- Bulk renew (extends expiry)
|
|
- Bulk upgrade plan (Form: select new plan)
|
|
- Bulk soft delete
|
|
|
|
**Use Cases**:
|
|
- Plan modifications
|
|
- Subscription renewals
|
|
- Plan upgrades for customers
|
|
|
|
---
|
|
|
|
### Content Management
|
|
|
|
#### Content
|
|
- **Bulk publish to WordPress**
|
|
- **Bulk mark as published**
|
|
- **Bulk mark as draft**
|
|
- **Bulk add taxonomy** (Form: multi-select taxonomies)
|
|
- **Bulk soft delete**
|
|
|
|
**Use Cases**:
|
|
- Content publishing workflow
|
|
- Status management
|
|
- Taxonomy assignments
|
|
|
|
#### Tasks
|
|
- **Bulk assign to user** (Form: select user)
|
|
- **Bulk mark as completed**
|
|
- **Bulk mark as in progress**
|
|
- **Bulk cancel tasks**
|
|
- **Bulk soft delete**
|
|
|
|
**Use Cases**:
|
|
- Task distribution to writers
|
|
- Workflow state management
|
|
- Task cleanup
|
|
|
|
#### Images
|
|
- **Bulk approve/reject**
|
|
- **Bulk mark as featured**
|
|
- **Bulk unmark as featured**
|
|
- **Bulk soft delete**
|
|
|
|
**Use Cases**:
|
|
- Image moderation
|
|
- Featured image management
|
|
|
|
---
|
|
|
|
### Planning & SEO
|
|
|
|
#### Keywords
|
|
- **Bulk mark as reviewed**
|
|
- **Bulk approve keywords**
|
|
- **Bulk reject keywords**
|
|
- **Bulk soft delete**
|
|
|
|
**Use Cases**:
|
|
- Keyword research review
|
|
- SEO strategy approval
|
|
|
|
#### Clusters
|
|
- **Bulk activate/deactivate**
|
|
- **Bulk soft delete**
|
|
|
|
**Use Cases**:
|
|
- Content cluster management
|
|
- Topic organization
|
|
|
|
#### ContentIdeas
|
|
- **Bulk approve/reject**
|
|
- **Bulk assign cluster** (Form: select cluster)
|
|
- **Bulk update content type** (Form: select type)
|
|
- **Bulk update priority** (Form: select priority)
|
|
- **Bulk soft delete**
|
|
|
|
**Use Cases**:
|
|
- Content pipeline management
|
|
- Editorial planning
|
|
- Priority adjustments
|
|
|
|
---
|
|
|
|
### Taxonomy & Organization
|
|
|
|
#### ContentTaxonomy
|
|
- **Bulk activate**
|
|
- **Bulk merge taxonomies** (Form: select target, handles relations)
|
|
|
|
**Use Cases**:
|
|
- Taxonomy consolidation
|
|
- Category management
|
|
|
|
#### ContentAttribute
|
|
- **Bulk activate**
|
|
- **Bulk update attribute type** (Form: select type)
|
|
|
|
**Use Cases**:
|
|
- Attribute management
|
|
- Schema updates
|
|
|
|
#### ContentTaxonomyRelation
|
|
- **Bulk delete relations**
|
|
- **Bulk reassign taxonomy** (Form: select new taxonomy)
|
|
|
|
**Use Cases**:
|
|
- Relationship cleanup
|
|
- Taxonomy reassignment
|
|
|
|
#### ContentClusterMap
|
|
- **Bulk delete maps**
|
|
- **Bulk update role** (Form: pillar/supporting/related)
|
|
- **Bulk reassign cluster** (Form: select cluster)
|
|
|
|
**Use Cases**:
|
|
- Content structure management
|
|
- Cluster reorganization
|
|
|
|
---
|
|
|
|
### Billing & Finance
|
|
|
|
#### Invoice
|
|
- **Bulk mark as paid**
|
|
- **Bulk mark as pending**
|
|
- **Bulk mark as cancelled**
|
|
- **Bulk send reminders**
|
|
- **Bulk apply late fee**
|
|
|
|
**Use Cases**:
|
|
- Payment processing
|
|
- Invoice management
|
|
- Collections workflow
|
|
|
|
#### Payment
|
|
- **Bulk mark as verified**
|
|
- **Bulk mark as failed**
|
|
- **Bulk refund** (updates status)
|
|
|
|
**Use Cases**:
|
|
- Payment reconciliation
|
|
- Refund processing
|
|
|
|
#### CreditUsageLog
|
|
- **Bulk delete old logs** (>90 days)
|
|
|
|
**Use Cases**:
|
|
- Database cleanup
|
|
- Log maintenance
|
|
|
|
#### CreditPackage
|
|
- **Bulk activate/deactivate**
|
|
|
|
**Use Cases**:
|
|
- Package availability management
|
|
|
|
#### AccountPaymentMethod
|
|
- **Bulk enable/disable**
|
|
- **Bulk set as default** (Form: respects account-level uniqueness)
|
|
- **Bulk delete methods**
|
|
|
|
**Use Cases**:
|
|
- Payment method management
|
|
- Default method updates
|
|
|
|
#### PlanLimitUsage
|
|
- **Bulk reset usage**
|
|
- **Bulk delete old records** (>90 days)
|
|
|
|
**Use Cases**:
|
|
- Usage tracking reset
|
|
- Data cleanup
|
|
|
|
---
|
|
|
|
### Publishing & Integration
|
|
|
|
#### PublishingRecord
|
|
- **Bulk retry failed**
|
|
- **Bulk cancel pending**
|
|
- **Bulk mark as published**
|
|
|
|
**Use Cases**:
|
|
- Publishing workflow
|
|
- Error recovery
|
|
|
|
#### DeploymentRecord
|
|
- **Bulk rollback**
|
|
- **Bulk mark as successful**
|
|
- **Bulk retry failed**
|
|
|
|
**Use Cases**:
|
|
- Deployment management
|
|
- Error recovery
|
|
|
|
#### SiteIntegration
|
|
- **Bulk activate/deactivate**
|
|
- **Bulk test connection**
|
|
- **Bulk refresh tokens**
|
|
|
|
**Use Cases**:
|
|
- Integration management
|
|
- Connection testing
|
|
- Token maintenance
|
|
|
|
#### SyncEvent
|
|
- **Bulk mark as processed**
|
|
- **Bulk delete old events** (>30 days)
|
|
|
|
**Use Cases**:
|
|
- Event processing
|
|
- Log cleanup
|
|
|
|
---
|
|
|
|
### Automation
|
|
|
|
#### AutomationConfig
|
|
- **Bulk activate/deactivate**
|
|
- **Bulk update frequency** (Form: select frequency)
|
|
- **Bulk update delays** (Form: enter delay values)
|
|
|
|
**Use Cases**:
|
|
- Automation scheduling
|
|
- Workflow configuration
|
|
|
|
#### AutomationRun
|
|
- **Bulk mark as completed**
|
|
- **Bulk retry failed**
|
|
- **Bulk delete old runs** (>90 days)
|
|
|
|
**Use Cases**:
|
|
- Run status management
|
|
- Error recovery
|
|
- Cleanup
|
|
|
|
---
|
|
|
|
### AI & System Configuration
|
|
|
|
#### AITaskLog
|
|
- **Bulk delete old logs** (>90 days)
|
|
- **Bulk mark as reviewed**
|
|
|
|
**Use Cases**:
|
|
- Log maintenance
|
|
- Review tracking
|
|
|
|
#### AIPrompt
|
|
- **Bulk activate/deactivate**
|
|
- **Bulk reset to default values**
|
|
|
|
**Use Cases**:
|
|
- Prompt management
|
|
- Configuration reset
|
|
|
|
#### IntegrationSettings
|
|
- **Bulk activate/deactivate**
|
|
- **Bulk test connection**
|
|
|
|
**Use Cases**:
|
|
- Integration setup
|
|
- Connection validation
|
|
|
|
#### AuthorProfile
|
|
- **Bulk activate/deactivate**
|
|
- **Bulk clone profiles**
|
|
|
|
**Use Cases**:
|
|
- Profile management
|
|
- Profile duplication
|
|
|
|
#### Strategy
|
|
- **Bulk activate/deactivate**
|
|
- **Bulk clone strategies**
|
|
|
|
**Use Cases**:
|
|
- Strategy management
|
|
- Strategy templates
|
|
|
|
#### OptimizationTask
|
|
- **Bulk mark as completed/failed**
|
|
- **Bulk retry failed tasks**
|
|
|
|
**Use Cases**:
|
|
- Optimization workflow
|
|
- Error recovery
|
|
|
|
---
|
|
|
|
### Site & Sector Management
|
|
|
|
#### Site
|
|
- **Bulk activate/deactivate**
|
|
- **Bulk update settings** (Form: JSON settings)
|
|
- **Bulk soft delete**
|
|
|
|
**Use Cases**:
|
|
- Site management
|
|
- Configuration updates
|
|
|
|
#### Sector
|
|
- **Bulk activate/deactivate**
|
|
- **Bulk soft delete**
|
|
|
|
**Use Cases**:
|
|
- Sector management
|
|
- Multi-tenant organization
|
|
|
|
#### Industry & IndustrySector
|
|
- **Bulk activate/deactivate**
|
|
- **Bulk soft delete**
|
|
|
|
**Use Cases**:
|
|
- Industry taxonomy management
|
|
- Sector organization
|
|
|
|
#### SeedKeyword
|
|
- **Bulk approve/reject**
|
|
- **Bulk assign to sector** (Form: select sector)
|
|
- **Bulk soft delete**
|
|
|
|
**Use Cases**:
|
|
- Seed keyword management
|
|
- Sector assignments
|
|
|
|
---
|
|
|
|
## Best Practices
|
|
|
|
### Selection
|
|
1. Use filters and search before bulk actions
|
|
2. Preview selected records count
|
|
3. Test with small batches first
|
|
|
|
### Form Actions
|
|
1. Read help text carefully
|
|
2. Validate input before applying
|
|
3. Cannot undo after confirmation
|
|
|
|
### Export/Import
|
|
1. Export before major changes (backup)
|
|
2. Test imports on staging first
|
|
3. Review preview before confirming import
|
|
|
|
### Soft Delete
|
|
1. Prefer soft delete over hard delete
|
|
2. Maintains audit trails
|
|
3. Can be recovered if needed
|
|
|
|
### Performance
|
|
1. Batch operations work efficiently up to 10,000 records
|
|
2. For larger operations, consider database-level operations
|
|
3. Monitor query performance with Django Debug Toolbar
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
### Action Not Appearing
|
|
- Check user permissions
|
|
- Verify model admin registration
|
|
- Clear browser cache
|
|
|
|
### Import Failures
|
|
- Verify file format (CSV/XLSX)
|
|
- Check field mappings
|
|
- Ensure required fields present
|
|
- Validate data types
|
|
|
|
### Form Validation Errors
|
|
- Review error messages
|
|
- Check required fields
|
|
- Verify foreign key references exist
|
|
|
|
### Performance Issues
|
|
- Reduce batch size
|
|
- Add database indexes
|
|
- Use `.select_related()` for foreign keys
|
|
- Consider background task queue for large operations
|
|
|
|
---
|
|
|
|
## Security Notes
|
|
|
|
1. **Permissions**: All actions respect Django's built-in permissions system
|
|
2. **Account Isolation**: Multi-tenant actions automatically filter by account
|
|
3. **CSRF Protection**: All forms include CSRF tokens
|
|
4. **Audit Logging**: Consider enabling Django admin log for all actions
|
|
5. **Soft Deletes**: Preserve data integrity and compliance requirements
|
|
|
|
---
|
|
|
|
## Quick Action Shortcuts
|
|
|
|
### Most Used Actions
|
|
1. **Content Publishing**: Content → Bulk publish to WordPress
|
|
2. **Credit Management**: Account → Bulk add credits
|
|
3. **Task Assignment**: Tasks → Bulk assign to user
|
|
4. **Invoice Processing**: Invoice → Bulk mark as paid
|
|
5. **Automation Control**: AutomationConfig → Bulk activate/deactivate
|
|
|
|
### Maintenance Actions
|
|
1. **Log Cleanup**: AITaskLog/CreditUsageLog → Delete old logs
|
|
2. **Event Cleanup**: SyncEvent → Delete old events
|
|
3. **Run Cleanup**: AutomationRun → Delete old runs
|
|
4. **Usage Reset**: PlanLimitUsage → Bulk reset usage
|
|
|
|
### Emergency Actions
|
|
1. **Account Suspension**: Account → Bulk suspend accounts
|
|
2. **Task Cancellation**: Tasks → Bulk cancel tasks
|
|
3. **Publishing Rollback**: DeploymentRecord → Bulk rollback
|
|
4. **Integration Disable**: SiteIntegration → Bulk deactivate
|
|
|
|
---
|
|
|
|
*Last Updated: 2025*
|
|
*IGNY8 Platform - Django Admin Operations Guide*
|