chore: remove dead top-level appreciation/forms.py
This file referenced model fields (AppreciationAttachment, submitted_by, acknowledged_by, AppreciationStatus.SUBMITTED) that no longer exist on the current model, and was not wired into any URL. grep confirms no imports. The live form is apps/appreciation/forms.py. (apps/complaints/views.py.backup was also deleted but was never tracked by git, so no commit is needed for it.)
This commit is contained in:
parent
8c1c29aae0
commit
b0d77c21e5
@ -1,308 +0,0 @@
|
||||
"""
|
||||
Appreciation forms
|
||||
"""
|
||||
from django import forms
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from .models import (
|
||||
Appreciation,
|
||||
AppreciationAttachment,
|
||||
AppreciationCategory,
|
||||
AppreciationComment,
|
||||
AppreciationStatus,
|
||||
AppreciationType,
|
||||
)
|
||||
|
||||
|
||||
class AppreciationCategoryForm(forms.ModelForm):
|
||||
"""Form for AppreciationCategory"""
|
||||
|
||||
class Meta:
|
||||
model = AppreciationCategory
|
||||
fields = ['name', 'description', 'is_active', 'display_order']
|
||||
widgets = {
|
||||
'name': forms.TextInput(attrs={
|
||||
'class': 'form-control',
|
||||
'placeholder': _('Category name')
|
||||
}),
|
||||
'description': forms.Textarea(attrs={
|
||||
'class': 'form-control',
|
||||
'rows': 3,
|
||||
'placeholder': _('Description')
|
||||
}),
|
||||
'is_active': forms.CheckboxInput(attrs={
|
||||
'class': 'form-check-input'
|
||||
}),
|
||||
'display_order': forms.NumberInput(attrs={
|
||||
'class': 'form-control',
|
||||
'min': 0
|
||||
}),
|
||||
}
|
||||
|
||||
|
||||
class AppreciationForm(forms.ModelForm):
|
||||
"""Form for Appreciation"""
|
||||
submitter_role = forms.CharField(
|
||||
required=False,
|
||||
widget=forms.TextInput(attrs={
|
||||
'class': 'form-control',
|
||||
'placeholder': _('Your role, e.g., Nurse Manager')
|
||||
})
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = Appreciation
|
||||
fields = [
|
||||
'title',
|
||||
'description',
|
||||
'story',
|
||||
'appreciation_type',
|
||||
'category',
|
||||
'recipient_name',
|
||||
'recipient_type',
|
||||
'recipient_id',
|
||||
'submitter_role',
|
||||
'tags',
|
||||
'is_public',
|
||||
'share_on_dashboard',
|
||||
'share_in_newsletter',
|
||||
]
|
||||
widgets = {
|
||||
'title': forms.TextInput(attrs={
|
||||
'class': 'form-control',
|
||||
'placeholder': _('Appreciation title')
|
||||
}),
|
||||
'description': forms.Textarea(attrs={
|
||||
'class': 'form-control',
|
||||
'rows': 5,
|
||||
'placeholder': _('Describe the appreciation')
|
||||
}),
|
||||
'story': forms.Textarea(attrs={
|
||||
'class': 'form-control',
|
||||
'rows': 8,
|
||||
'placeholder': _('Tell the story behind this appreciation')
|
||||
}),
|
||||
'appreciation_type': forms.Select(attrs={
|
||||
'class': 'form-select'
|
||||
}),
|
||||
'category': forms.Select(attrs={
|
||||
'class': 'form-select'
|
||||
}),
|
||||
'recipient_name': forms.TextInput(attrs={
|
||||
'class': 'form-control',
|
||||
'placeholder': _('Name of person or team')
|
||||
}),
|
||||
'recipient_type': forms.TextInput(attrs={
|
||||
'class': 'form-control',
|
||||
'placeholder': _('e.g., Staff, Patient, Department')
|
||||
}),
|
||||
'recipient_id': forms.TextInput(attrs={
|
||||
'class': 'form-control',
|
||||
'placeholder': _('System ID if applicable')
|
||||
}),
|
||||
'tags': forms.Textarea(attrs={
|
||||
'class': 'form-control',
|
||||
'rows': 2,
|
||||
'placeholder': _('Comma-separated tags')
|
||||
}),
|
||||
'is_public': forms.CheckboxInput(attrs={
|
||||
'class': 'form-check-input'
|
||||
}),
|
||||
'share_on_dashboard': forms.CheckboxInput(attrs={
|
||||
'class': 'form-check-input'
|
||||
}),
|
||||
'share_in_newsletter': forms.CheckboxInput(attrs={
|
||||
'class': 'form-check-input'
|
||||
}),
|
||||
}
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
user = kwargs.pop('user', None)
|
||||
hospital = kwargs.pop('hospital', None)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
# Filter categories to active ones only
|
||||
if self.fields.get('category'):
|
||||
self.fields['category'].queryset = AppreciationCategory.objects.filter(
|
||||
is_active=True
|
||||
).order_by('display_order', 'name')
|
||||
|
||||
# Set default values based on context
|
||||
if user and not self.instance.pk:
|
||||
self.instance.submitted_by = user
|
||||
|
||||
if hospital and not self.instance.pk:
|
||||
self.instance.hospital = hospital
|
||||
|
||||
def clean_tags(self):
|
||||
tags = self.cleaned_data.get('tags', '')
|
||||
if tags:
|
||||
# Convert comma-separated string to list
|
||||
return [tag.strip() for tag in tags.split(',') if tag.strip()]
|
||||
return []
|
||||
|
||||
|
||||
class AppreciationSubmitForm(AppreciationForm):
|
||||
"""Form for submitting an appreciation (sets status to submitted)"""
|
||||
|
||||
def save(self, commit=True):
|
||||
instance = super().save(commit=False)
|
||||
instance.status = AppreciationStatus.SUBMITTED
|
||||
if commit:
|
||||
instance.save()
|
||||
return instance
|
||||
|
||||
|
||||
class AppreciationAcknowledgeForm(forms.ModelForm):
|
||||
"""Form for acknowledging an appreciation"""
|
||||
acknowledgment_notes = forms.CharField(
|
||||
required=True,
|
||||
widget=forms.Textarea(attrs={
|
||||
'class': 'form-control',
|
||||
'rows': 4,
|
||||
'placeholder': _('Add your acknowledgment notes here')
|
||||
})
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = Appreciation
|
||||
fields = ['acknowledgment_notes']
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
user = kwargs.pop('user', None)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
if user and not self.instance.pk:
|
||||
self.instance.acknowledged_by = user
|
||||
|
||||
|
||||
class AppreciationAttachmentForm(forms.ModelForm):
|
||||
"""Form for uploading appreciation attachments"""
|
||||
description = forms.CharField(
|
||||
required=False,
|
||||
widget=forms.Textarea(attrs={
|
||||
'class': 'form-control',
|
||||
'rows': 2,
|
||||
'placeholder': _('Describe the attachment')
|
||||
})
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = AppreciationAttachment
|
||||
fields = ['file', 'description']
|
||||
widgets = {
|
||||
'file': forms.FileInput(attrs={
|
||||
'class': 'form-control',
|
||||
'accept': 'image/*,.pdf,.doc,.docx'
|
||||
}),
|
||||
}
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
user = kwargs.pop('user', None)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
if user and not self.instance.pk:
|
||||
self.instance.uploaded_by = user
|
||||
|
||||
def save(self, commit=True):
|
||||
instance = super().save(commit=False)
|
||||
|
||||
# Extract file information
|
||||
if instance.file:
|
||||
instance.filename = instance.file.name
|
||||
instance.file_type = instance.file.content_type
|
||||
instance.file_size = instance.file.size
|
||||
|
||||
if commit:
|
||||
instance.save()
|
||||
return instance
|
||||
|
||||
|
||||
class AppreciationCommentForm(forms.ModelForm):
|
||||
"""Form for adding comments to appreciations"""
|
||||
comment = forms.CharField(
|
||||
required=True,
|
||||
widget=forms.Textarea(attrs={
|
||||
'class': 'form-control',
|
||||
'rows': 3,
|
||||
'placeholder': _('Write your comment here')
|
||||
})
|
||||
)
|
||||
is_internal = forms.BooleanField(
|
||||
required=False,
|
||||
label=_('Internal Comment'),
|
||||
help_text=_('Check if this is an internal comment only visible to staff'),
|
||||
widget=forms.CheckboxInput(attrs={
|
||||
'class': 'form-check-input'
|
||||
})
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = AppreciationComment
|
||||
fields = ['comment', 'is_internal']
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
user = kwargs.pop('user', None)
|
||||
appreciation = kwargs.pop('appreciation', None)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
if user and not self.instance.pk:
|
||||
self.instance.user = user
|
||||
|
||||
if appreciation and not self.instance.pk:
|
||||
self.instance.appreciation = appreciation
|
||||
|
||||
|
||||
class AppreciationFilterForm(forms.Form):
|
||||
"""Form for filtering appreciations"""
|
||||
search = forms.CharField(
|
||||
required=False,
|
||||
widget=forms.TextInput(attrs={
|
||||
'class': 'form-control',
|
||||
'placeholder': _('Search appreciations...')
|
||||
})
|
||||
)
|
||||
status = forms.ChoiceField(
|
||||
required=False,
|
||||
choices=[('', _('All Statuses'))] + AppreciationStatus.choices,
|
||||
widget=forms.Select(attrs={
|
||||
'class': 'form-select'
|
||||
})
|
||||
)
|
||||
appreciation_type = forms.ChoiceField(
|
||||
required=False,
|
||||
choices=[('', _('All Types'))] + AppreciationType.choices,
|
||||
widget=forms.Select(attrs={
|
||||
'class': 'form-select'
|
||||
})
|
||||
)
|
||||
category = forms.ModelChoiceField(
|
||||
required=False,
|
||||
queryset=AppreciationCategory.objects.filter(
|
||||
is_active=True
|
||||
).order_by('display_order', 'name'),
|
||||
empty_label=_('All Categories'),
|
||||
widget=forms.Select(attrs={
|
||||
'class': 'form-select'
|
||||
})
|
||||
)
|
||||
date_from = forms.DateField(
|
||||
required=False,
|
||||
widget=forms.DateInput(attrs={
|
||||
'class': 'form-control',
|
||||
'type': 'date'
|
||||
})
|
||||
)
|
||||
date_to = forms.DateField(
|
||||
required=False,
|
||||
widget=forms.DateInput(attrs={
|
||||
'class': 'form-control',
|
||||
'type': 'date'
|
||||
})
|
||||
)
|
||||
is_public = forms.BooleanField(
|
||||
required=False,
|
||||
widget=forms.CheckboxInput(attrs={
|
||||
'class': 'form-check-input'
|
||||
})
|
||||
)
|
||||
Loading…
x
Reference in New Issue
Block a user