feat: Улучшена система сообщений об ошибках и предупреждениях

Изменения:
- ProductCreateView/UpdateView теперь показывают warnings для предупреждений о лимите фото
- Разделение сообщений: error (красный) vs warning (желтый)
- Улучшен components/messages.html:
  * Добавлены иконки для каждого типа сообщения
  * Bootstrap Icons интеграция
  * Кастомные цвета для alerts
  * Лучший visual feedback для пользователя

Теперь пользователи видят понятные сообщения везде на сайте!

🤖 Generated with Claude Code
This commit is contained in:
2025-11-15 11:27:08 +03:00
parent f7d1851418
commit d9903cd721
2 changed files with 65 additions and 4 deletions

View File

@@ -119,7 +119,11 @@ class ProductCreateView(LoginRequiredMixin, PermissionRequiredMixin, CreateView)
photo_errors = handle_photos(self.request, self.object, ProductPhoto, 'product')
if photo_errors:
for error in photo_errors:
messages.error(self.request, error)
# Если это предупреждение о лимите фото - warning, иначе - error
if 'Загружено' in error and 'обработано только' in error:
messages.warning(self.request, error)
else:
messages.error(self.request, error)
messages.success(self.request, f'Товар "{form.instance.name}" успешно создан!')
return response
@@ -166,7 +170,11 @@ class ProductUpdateView(LoginRequiredMixin, PermissionRequiredMixin, UpdateView)
photo_errors = handle_photos(self.request, self.object, ProductPhoto, 'product')
if photo_errors:
for error in photo_errors:
messages.error(self.request, error)
# Если это предупреждение о лимите фото - warning, иначе - error
if 'Загружено' in error and 'обработано только' in error:
messages.warning(self.request, error)
else:
messages.error(self.request, error)
messages.success(self.request, f'Товар "{form.instance.name}" успешно обновлен!')
return response