from django import forms from common.forms import DepartmentSelectionForm from .models import * from ..org_mgnt.models import PrimaryDepartment class SocialMediaAccountRegistrationForm(forms.ModelForm): class Meta: model = SocialMediaAccountRegistration fields = '__all__' widgets = { 'platform': forms.TextInput(attrs={'class': 'form-control'}), 'account_name': forms.TextInput(attrs={'class': 'form-control'}), 'secondary_department': forms.Select(attrs={'class': 'form-control'}), 'operation_account': forms.TextInput(attrs={'class': 'form-control'}), 'password': forms.TextInput(attrs={'class': 'form-control'}), 'operator': forms.TextInput(attrs={'class': 'form-control'}), } def __init__(self, *args, **kwargs): super(SocialMediaAccountRegistrationForm, self).__init__(*args, **kwargs) self.fields['primary_department'] = forms.ChoiceField( choices=[('', '---------')] + [(dept.department_name, dept.department_name) for dept in PrimaryDepartment.objects.all()], widget=forms.Select(attrs={'class': 'form-control'}), label="一级部门" ) for field_name in self.fields: if field_name not in ['account_name', 'platform']: self.fields[field_name].required = False class AccountOperationManagementForm(forms.ModelForm): class Meta: model = AccountOperationManagement exclude = ['views', 'favorites', 'comments', 'shares', 'likes', 'update_time'] widgets = { 'platform': forms.Select(attrs={'class': 'form-control'}), 'account_name': forms.Select(attrs={'class': 'form-control'}), 'content_title': forms.TextInput(attrs={'class': 'form-control'}), 'publication_time': forms.DateTimeInput(attrs={'class': 'form-control', 'type': 'datetime-local'}) } def __init__(self, *args, **kwargs): super(AccountOperationManagementForm, self).__init__(*args, **kwargs) unique_platforms = list(set(dept.platform for dept in SocialMediaAccountRegistration.objects.all())) self.fields['platform'] = forms.ChoiceField( choices=[('', '---------')] + [(platform, platform) for platform in unique_platforms], widget=forms.Select(attrs={'class': 'form-control'}), label="所属平台", required=False ) for field_name in self.fields: if field_name not in ['platform', 'account_name']: self.fields[field_name].required = False class WebsiteRegistrationForm(forms.ModelForm): class Meta: model = WebsiteRegistration exclude = ['expiration_date'] widgets = { 'website_name': forms.TextInput(attrs={'class': 'form-control'}), 'account': forms.TextInput(attrs={'class': 'form-control'}), 'secondary_department': forms.Select(attrs={'class': 'form-control'}), 'password': forms.TextInput(attrs={'class': 'form-control'}), 'login_url': forms.TextInput(attrs={'class': 'form-control'}), 'tech_support': forms.TextInput(attrs={'class': 'form-control'}), 'domain': forms.TextInput(attrs={'class': 'form-control'}), 'expiration_date': forms.DateInput(attrs={'class': 'form-control', 'type': 'date'}), 'operator': forms.TextInput(attrs={'class': 'form-control'}), } def __init__(self, *args, **kwargs): super(WebsiteRegistrationForm, self).__init__(*args, **kwargs) self.fields['primary_department'] = forms.ChoiceField( choices=[('', '---------')] + [(dept.department_name, dept.department_name) for dept in PrimaryDepartment.objects.all()], widget=forms.Select(attrs={'class': 'form-control'}), label="一级部门") for field_name in self.fields: if field_name not in ['website_name']: self.fields[field_name].required = False class WebsiteExpirationModificationRecordForm(forms.ModelForm): class Meta: model = WebsiteExpirationModificationRecord fields = '__all__' widgets = { 'modification_date': forms.DateTimeInput(attrs={'class': 'form-control', 'type': 'datetime-local'}), 'original_expiration_date': forms.DateInput(attrs={'class': 'form-control', 'type': 'date'}), 'new_expiration_date': forms.DateInput(attrs={'class': 'form-control', 'type': 'date'}), 'cost': forms.NumberInput(attrs={'class': 'form-control', 'step': '0.01'}), 'modified_by': forms.TextInput(attrs={'class': 'form-control'}), } class WebsiteMaintenanceRecordForm(forms.ModelForm): class Meta: model = WebsiteMaintenanceRecord fields = '__all__' widgets = { 'website_name': forms.TextInput(attrs={'class': 'form-control'}), 'maintenance_content': forms.TextInput(attrs={'class': 'form-control'}), 'maintenance_details': forms.Textarea(attrs={'class': 'form-control'}), 'maintenance_time': forms.DateInput(attrs={'class': 'form-control', 'type': 'date'}), 'maintainer': forms.TextInput(attrs={'class': 'form-control'}), } def __init__(self, *args, **kwargs): super(WebsiteMaintenanceRecordForm, self).__init__(*args, **kwargs) self.fields['website_name'] = forms.ChoiceField( choices=[('', '---------')] + [(dept.website_name, dept.website_name) for dept in WebsiteRegistration.objects.all()], widget=forms.Select(attrs={'class': 'form-control'}), label="官网名称" ) for field_name in self.fields: if field_name not in ['website_name']: self.fields[field_name].required = False