修复问题,员工信息编辑modal,二级部门不显示

This commit is contained in:
王思川 2024-06-16 15:24:35 +08:00
parent 020c84483d
commit 71417b58e9
4 changed files with 14 additions and 5 deletions

View File

@ -1,4 +1,6 @@
from django import forms from django import forms
from common.forms import DepartmentSelectionForm
from .models import * from .models import *
@ -16,7 +18,7 @@ class EmployeeInformationForm(forms.ModelForm):
} }
class EmployeeInformationAddForm(forms.ModelForm): class EmployeeInformationAddForm(DepartmentSelectionForm, forms.ModelForm):
class Meta: class Meta:
model = EmployeeInformation model = EmployeeInformation
fields = [field.name for field in EmployeeInformation._meta.fields if fields = [field.name for field in EmployeeInformation._meta.fields if
@ -27,11 +29,12 @@ class EmployeeInformationAddForm(forms.ModelForm):
'regularization_date': forms.DateInput(attrs={'type': 'date'}), 'regularization_date': forms.DateInput(attrs={'type': 'date'}),
'departure_date': forms.DateInput(attrs={'type': 'date'}), 'departure_date': forms.DateInput(attrs={'type': 'date'}),
'contract_end_date': forms.DateInput(attrs={'type': 'date'}), 'contract_end_date': forms.DateInput(attrs={'type': 'date'}),
'resignation_date': forms.DateInput(attrs={'type': 'date'}),
'base_salary': forms.NumberInput() 'base_salary': forms.NumberInput()
} }
class EmployeeInformationEditForm(forms.ModelForm): class EmployeeInformationEditForm(DepartmentSelectionForm, forms.ModelForm):
class Meta: class Meta:
model = EmployeeInformation model = EmployeeInformation
fields = '__all__' fields = '__all__'

View File

@ -11,6 +11,7 @@ from django.views.decorators.csrf import csrf_protect
from application.hrm_mgnt.forms import * from application.hrm_mgnt.forms import *
from application.hrm_mgnt.models import * from application.hrm_mgnt.models import *
from application.org_mgnt.models import SecondaryDepartment
from common.auth import custom_permission_required from common.auth import custom_permission_required
from common.utils.page_helper import paginate_query_and_assign_numbers from common.utils.page_helper import paginate_query_and_assign_numbers
@ -206,6 +207,7 @@ def emp_list_modify(request):
try: try:
instance = EmployeeInformation.objects.get(employee_id=request.GET['id']) instance = EmployeeInformation.objects.get(employee_id=request.GET['id'])
form = EmployeeInformationEditForm(instance=instance) form = EmployeeInformationEditForm(instance=instance)
form.fields['secondary_department'].queryset = SecondaryDepartment.objects.filter(primary_department=instance.primary_department).order_by('secondary_department_name')
except EmployeeInformation.DoesNotExist: except EmployeeInformation.DoesNotExist:
raise Http404("对象不存在") raise Http404("对象不存在")
else: else:

View File

@ -27,7 +27,7 @@ class DepartmentSelectionForm(forms.Form):
pass pass
elif 'instance' in kwargs and kwargs['instance']: elif 'instance' in kwargs and kwargs['instance']:
instance = kwargs['instance'] instance = kwargs['instance']
if isinstance(instance.primary_department, PrimaryDepartment): if hasattr(instance, 'primary_department') and isinstance(instance.primary_department, PrimaryDepartment):
self.fields['secondary_department'].queryset = instance.primary_department.secondarydepartment_set.order_by('secondary_department_name') self.fields['secondary_department'].queryset = instance.primary_department.secondarydepartment_set.order_by('secondary_department_name')
else: else:
try: try:

View File

@ -104,7 +104,7 @@
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function () { $(document).ready(function () {
function updateSecondaryDepartments(primaryDepartmentId) { function updateSecondaryDepartments(primaryDepartmentId, selectedSecondaryDepartmentId = null) {
var url = "{% url 'load_secondary_departments' %}"; var url = "{% url 'load_secondary_departments' %}";
$.ajax({ $.ajax({
url: url, url: url,
@ -117,6 +117,9 @@
$.each(data, function (key, value) { $.each(data, function (key, value) {
$('#id_secondary_department').append('<option value="' + value.secondary_department_id + '">' + value.secondary_department_name + '</option>'); $('#id_secondary_department').append('<option value="' + value.secondary_department_id + '">' + value.secondary_department_name + '</option>');
}); });
if (selectedSecondaryDepartmentId) {
$('#id_secondary_department').val(selectedSecondaryDepartmentId);
}
} }
}); });
} }
@ -132,8 +135,9 @@
// 如果在页面加载时已选择一级部门,则加载相应的二级部门 // 如果在页面加载时已选择一级部门,则加载相应的二级部门
var initialPrimaryDepartmentId = $('#id_primary_department').val(); var initialPrimaryDepartmentId = $('#id_primary_department').val();
var initialSecondaryDepartmentId = $('#id_secondary_department').val();
if (initialPrimaryDepartmentId) { if (initialPrimaryDepartmentId) {
updateSecondaryDepartments(initialPrimaryDepartmentId); updateSecondaryDepartments(initialPrimaryDepartmentId, initialSecondaryDepartmentId);
} }
}); });
</script> </script>