Bladeren bron

reactive TinyMCE

Laurent Hazart 1 maand geleden
bovenliggende
commit
580563e2bd
8 gewijzigde bestanden met toevoegingen van 84 en 30 verwijderingen
  1. 3 5
      blog/admin.py
  2. 9 9
      blog/models.py
  3. 1 2
      core/admin.py
  4. 9 9
      core/models.py
  5. 3 3
      duhaz_blog/settings.py
  6. 1 1
      duhaz_blog/urls.py
  7. 1 1
      requirements.txt
  8. 57 0
      test_debug.py

+ 3 - 5
blog/admin.py

@@ -1,8 +1,5 @@
-# from import_export.admin import ImportExportModelAdmin  # Désactivé temporairement (incompatible Python 3.14)
-
+from import_export.admin import ImportExportModelAdmin  # Réactivé pour test
 from django.contrib import admin
-# from django.db import models  # Pas nécessaire sans formfield_overrides
-# from tinymce.widgets import TinyMCE  # Désactivé temporairement
 from blog.models import *
 
 def bt_b_publier(modeladmin, request, queryset):
@@ -12,7 +9,8 @@ def bt_b_not_publier(modeladmin, request, queryset):
 	queryset.update(b_publier=False)
 bt_b_not_publier.short_description = "Passer en Priver"
 
-class Blog_Admin(admin.ModelAdmin):
+class Blog_Admin(ImportExportModelAdmin):  # Réactivé
+	form = Blog_Admin_Form
 	list_display = ('b_titre', 'b_description', 'b_publier','b_publdate','b_reading')
 	list_filter = ('b_publier','b_cat','b_publdate')
 	filter_horizontal = ('b_cat',)

+ 9 - 9
blog/models.py

@@ -3,7 +3,7 @@ from django import forms
 
 from django.template.defaultfilters import slugify
 
-# from tinymce.widgets import TinyMCE  # Désactivé temporairement
+from tinymce.widgets import TinyMCE  # Réactivé
 
 class Cat_Blog(models.Model) :
 	cb_titre = models.CharField("Titre", max_length = 128, unique = True)
@@ -49,11 +49,11 @@ class Blog(models.Model) : #Architecture pour le blog
 class Blog_search_Form(forms.Form):
 	b_search = forms.CharField(label='Vous recherchez un article ?', max_length=100)
 
-# class Blog_Admin_Form(forms.ModelForm):  # Désactivé temporairement
-# 	class Meta:
-# 		model = Blog
-# 		exclude = ['b_titre_slugify','b_reading']
-# 		widgets = {
-# 			'b_contenu': TinyMCE(),
-# 			'b_right': TinyMCE(),
-# 		}
+class Blog_Admin_Form(forms.ModelForm):  # Réactivé
+	class Meta:
+		model = Blog
+		exclude = ['b_titre_slugify','b_reading']
+		widgets = {
+			'b_contenu': TinyMCE(),
+			'b_right': TinyMCE(),
+		}

+ 1 - 2
core/admin.py

@@ -1,6 +1,4 @@
 from django.contrib import admin
-# from django.db import models  # Pas nécessaire
-# from tinymce.widgets import TinyMCE  # Désactivé temporairement
 from core.models import *
 
 def bt_p_publier(modeladmin, request, queryset):
@@ -32,6 +30,7 @@ def bt_sd_poid_moin(modeladmin, request, queryset):
 bt_sd_poid_moin.short_description = "Diminuer le poid de 5"
 
 class Page_Admin(admin.ModelAdmin):
+	form = Page_Admin_Form  # Réactivé
 	list_display = ('p_titre', 'p_titre_slugify', 'p_adresse', 'p_contenu', 'p_right', 'p_type', 'p_menu_poid', 'p_publier','p_see_title_and_des_in_templates')
 	list_filter = ('p_type', 'p_menu_parent', 'p_publier', 'p_see_title_and_des_in_templates')
 	actions = [bt_p_menu_poid_plus, bt_p_menu_poid_moin, bt_p_publier, bt_p_not_publier]

+ 9 - 9
core/models.py

@@ -3,7 +3,7 @@ from django import forms
 
 from django.template.defaultfilters import slugify
 
-# from tinymce.widgets import TinyMCE  # Désactivé temporairement
+from tinymce.widgets import TinyMCE  # Réactivé
 
 menu_pos = (
 	(u'no', u'No'),
@@ -167,12 +167,12 @@ class ContactForm(forms.ModelForm):# formulaire de contact lié au model
 		model = Contact
 		fields = ['c_name', 'c_email', 'c_type', 'c_description']
 
-# class Page_Admin_Form(forms.ModelForm):  # Désactivé temporairement
-# 	class Meta:
-# 		model = Page
-# 		exclude = ['p_titre_slugify']
-# 		widgets = {
-# 			'p_contenu': TinyMCE(),
-# 			'p_right': TinyMCE(),
-# 		}
+class Page_Admin_Form(forms.ModelForm):  # Réactivé
+	class Meta:
+		model = Page
+		exclude = ['p_titre_slugify']
+		widgets = {
+			'p_contenu': TinyMCE(),
+			'p_right': TinyMCE(),
+		}
 

+ 3 - 3
duhaz_blog/settings.py

@@ -41,10 +41,10 @@ INSTALLED_APPS = [
 	'django.contrib.sessions',
 	'django.contrib.messages',
 	'django.contrib.staticfiles',
-	# 'tinymce',  # Désactivé temporairement pour test
-	# 'import_export',  # Désactivé : incompatible Python 3.14
+	'tinymce',
+	'import_export',  # Réactivé pour test avec Python 3.13
 	'crispy_forms',
-	'crispy_bootstrap4',  # IMPORTANT : Ajouter pour Bootstrap 4
+	'crispy_bootstrap4',
 	'core',
 	'blog',
 ]

+ 1 - 1
duhaz_blog/urls.py

@@ -8,7 +8,7 @@ from django.views.generic.base import RedirectView
 from core import views as core
 
 urlpatterns = [
-	# path('tinymce/', include('tinymce.urls')),  # Désactivé temporairement
+	path('tinymce/', include('tinymce.urls')),  # Réactivé
 	path('admin/', admin.site.urls),
 
 	path('favicon.ico', RedirectView.as_view(url = '/static/favicon.ico')),

+ 1 - 1
requirements.txt

@@ -18,7 +18,7 @@ crispy-bootstrap4>=2.0
 django-tinymce>=4.0  # Compatible Django 5.1
 
 # Import/Export
-# django-import-export>=3.3  # Désactivé : incompatible avec Python 3.14 (bug 'super' object)
+django-import-export>=3.3  # Test avec Python 3.13
 
 # Development tools (optionnel)
 # django-debug-toolbar>=4.2

+ 57 - 0
test_debug.py

@@ -0,0 +1,57 @@
+#!/usr/bin/env python3
+"""
+Test minimal pour identifier le problème avec Python 3.14
+"""
+
+import sys
+print(f"Python version: {sys.version}")
+
+# Test 1: Import Django
+try:
+    import django
+    print(f"✅ Django version: {django.VERSION}")
+except Exception as e:
+    print(f"❌ Erreur Django import: {e}")
+    sys.exit(1)
+
+# Test 2: Setup Django
+try:
+    import os
+    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'duhaz_blog.settings')
+    import django
+    django.setup()
+    print("✅ Django setup OK")
+except Exception as e:
+    print(f"❌ Erreur Django setup: {e}")
+    import traceback
+    traceback.print_exc()
+    sys.exit(1)
+
+# Test 3: Import models
+try:
+    from blog.models import Blog, Cat_Blog
+    print("✅ Import Blog models OK")
+except Exception as e:
+    print(f"❌ Erreur import Blog models: {e}")
+    import traceback
+    traceback.print_exc()
+
+# Test 4: Créer une instance
+try:
+    cat = Cat_Blog(cb_titre="Test")
+    print(f"✅ Création instance Cat_Blog OK: {cat}")
+except Exception as e:
+    print(f"❌ Erreur création instance: {e}")
+    import traceback
+    traceback.print_exc()
+
+# Test 5: Test admin
+try:
+    from blog.admin import Blog_Admin
+    print(f"✅ Import Blog_Admin OK: {Blog_Admin}")
+except Exception as e:
+    print(f"❌ Erreur import Blog_Admin: {e}")
+    import traceback
+    traceback.print_exc()
+
+print("\n--- Test terminé ---")