it: каталог моделей в popup и возврат к добавлению экземпляров.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -152,6 +152,36 @@ class ItManagerEquipmentTests(TestCase):
|
||||
self.assertContains(r, 'role="dialog"')
|
||||
self.assertNotContains(r, 'id="it-equipment-panel-overlay"')
|
||||
|
||||
def test_models_catalog_is_popup(self):
|
||||
r = self.client.get('/it-manager/')
|
||||
self.assertContains(r, 'id="it-equipment-models-panel"')
|
||||
self.assertContains(r, 'it-equipment-models-modal-title')
|
||||
self.assertContains(r, 'itModelsOpenFromEquipment')
|
||||
self.assertNotContains(r, 'id="it-equipment-models-panel-overlay"')
|
||||
|
||||
def test_model_create_returns_to_equipment_popup(self):
|
||||
r = self.client.post('/it-manager/equipment/models/create/', {
|
||||
'equipment_type': 'laptop',
|
||||
'name': 'Latitude 5440',
|
||||
'return_to': 'equipment',
|
||||
}, HTTP_HX_REQUEST='true')
|
||||
self.assertEqual(r.status_code, 200)
|
||||
model = EquipmentModel.objects.get(name='Latitude 5440')
|
||||
self.assertContains(r, 'data-it-equipment-open="1"')
|
||||
self.assertContains(r, f'data-it-select-model-id="{model.pk}"')
|
||||
self.assertNotContains(r, 'data-it-models-open="1"')
|
||||
|
||||
def test_model_create_error_reopens_models_popup(self):
|
||||
r = self.client.post('/it-manager/equipment/models/create/', {
|
||||
'equipment_type': 'laptop',
|
||||
'name': '',
|
||||
'return_to': 'equipment',
|
||||
}, HTTP_HX_REQUEST='true')
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertContains(r, 'data-it-models-open="1"')
|
||||
self.assertContains(r, 'name="return_to"')
|
||||
self.assertContains(r, 'it-equipment-models-modal-title')
|
||||
|
||||
def test_bulk_create_error_reopens_popup(self):
|
||||
r = self.client.post('/it-manager/equipment/bulk-create/', {
|
||||
'serial_numbers': 'SN-X',
|
||||
|
||||
@@ -589,12 +589,13 @@ def equipment_model_create_view(request):
|
||||
return HttpResponseForbidden()
|
||||
|
||||
context_extra = {}
|
||||
return_to = (request.POST.get('return_to') or '').strip()
|
||||
if request.method == 'POST':
|
||||
equipment_type_id = _resolve_directory('equipment_type', request.POST.get('equipment_type', ''))
|
||||
name = request.POST.get('name', '').strip()
|
||||
if equipment_type_id and name:
|
||||
warranty_months = request.POST.get('warranty_months', '').strip()
|
||||
EquipmentModel.objects.get_or_create(
|
||||
model, _created = EquipmentModel.objects.get_or_create(
|
||||
equipment_type_id=equipment_type_id,
|
||||
brand_id=request.POST.get('brand_id') or None,
|
||||
name=name,
|
||||
@@ -603,8 +604,14 @@ def equipment_model_create_view(request):
|
||||
'notes': request.POST.get('notes', '').strip(),
|
||||
},
|
||||
)
|
||||
if return_to == 'equipment':
|
||||
context_extra['it_equipment_open'] = True
|
||||
context_extra['it_select_model_id'] = model.pk
|
||||
else:
|
||||
context_extra['equipment_form_error'] = 'Вкажіть тип і назву моделі.'
|
||||
context_extra['equipment_model_form_error'] = 'Вкажіть тип і назву моделі.'
|
||||
context_extra['it_models_open'] = True
|
||||
if return_to:
|
||||
context_extra['it_models_return_to'] = return_to
|
||||
|
||||
context = _it_manager_context(request)
|
||||
context['it_active_tab'] = 'equipment'
|
||||
|
||||
Reference in New Issue
Block a user