mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-22 06:51:09 -05:00
Implement historical tracking using django-pghistory; add middleware for context capture and update model architecture
This commit is contained in:
31
memory-bank/workflows/moderation.md
Normal file
31
memory-bank/workflows/moderation.md
Normal file
@@ -0,0 +1,31 @@
|
||||
## Updated Moderation Workflow with django-pghistory
|
||||
|
||||
### Submission Lifecycle
|
||||
1. **Change Proposal**
|
||||
- Creates `pending` pghistory event with metadata:
|
||||
```python
|
||||
pghistory.track(
|
||||
pghistory.Snapshot('submission.pending'),
|
||||
status='pending'
|
||||
)
|
||||
```
|
||||
2. **Approval Process**
|
||||
- Merges event into main history:
|
||||
```python
|
||||
event.pgh_label = 'approved_change'
|
||||
event.pgh_context['approver'] = request.user
|
||||
```
|
||||
3. **Rejection Handling**
|
||||
- Preserves event with rejection context:
|
||||
```python
|
||||
event.pgh_label = 'rejected_change'
|
||||
event.pgh_context['reason'] = rejection_reason
|
||||
```
|
||||
|
||||
### Moderation Admin Integration
|
||||
```python
|
||||
# moderation/admin.py
|
||||
@admin.register(pghistory.models.Event)
|
||||
class HistoryAdmin(admin.ModelAdmin):
|
||||
list_display = ('pgh_label', 'pgh_created_at', 'content_object')
|
||||
readonly_fields = ('pgh_data', 'pgh_context')
|
||||
Reference in New Issue
Block a user