Upgrade CKEditoru na verzi 5 #76
					 8 changed files with 112 additions and 27 deletions
				
			
		|  | @ -13,11 +13,11 @@ from django.contrib.flatpages.admin import FlatPageAdmin as FlatPageAdminOld | |||
| from django.contrib.flatpages.admin import FlatpageForm as FlatpageFormOld | ||||
|   | ||||
| from django import forms | ||||
| from ckeditor_uploader.widgets import CKEditorUploadingWidget | ||||
| from django_ckeditor_5.widgets import CKEditor5Widget | ||||
| 
 | ||||
| 
 | ||||
| class FlatpageForm(FlatpageFormOld): | ||||
| 	content = forms.CharField(widget=CKEditorUploadingWidget()) | ||||
| 	content = forms.CharField(widget=CKEditor5Widget()) | ||||
| 	class Meta: | ||||
| 		model = FlatPage # this is not automatically inherited from FlatpageFormOld | ||||
| 		exclude = [] | ||||
|  |  | |||
|  | @ -110,8 +110,7 @@ INSTALLED_APPS = ( | |||
| 	'reversion', | ||||
| 	'django_countries', | ||||
| 	'solo', | ||||
| 	'ckeditor', | ||||
| 	'ckeditor_uploader', | ||||
| 	'django_ckeditor_5', | ||||
| 	'taggit', | ||||
| 	'dal', | ||||
| 	'dal_select2', | ||||
|  | @ -186,26 +185,98 @@ SUMMERNOTE_CONFIG = { | |||
| 	 ] | ||||
| } | ||||
| 
 | ||||
| CKEDITOR_UPLOAD_PATH = "uploads/" | ||||
| CKEDITOR_IMAGE_BACKEND = 'pillow' | ||||
| #CKEDITOR_JQUERY_URL = '//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js' | ||||
| CKEDITOR_CONFIGS = { | ||||
| CKEDITOR_5_CUSTOM_CSS = "css/ckeditor5_fix.css" | ||||
| # customColorPalette = [ | ||||
| # 	{ | ||||
| # 		'color': 'hsl(4, 90%, 58%)', | ||||
| # 		'label': 'Red', | ||||
| # 	}, | ||||
| # 	{ | ||||
| # 		'color': 'hsl(340, 82%, 52%)', | ||||
| # 		'label': 'Pink', | ||||
| # 	}, | ||||
| # 	{ | ||||
| # 		'color': 'hsl(291, 64%, 42%)', | ||||
| # 		'label': 'Purple', | ||||
| # 	}, | ||||
| # 	{ | ||||
| # 		'color': 'hsl(262, 52%, 47%)', | ||||
| # 		'label': 'Deep Purple', | ||||
| # 	}, | ||||
| # 	{ | ||||
| # 		'color': 'hsl(231, 48%, 48%)', | ||||
| # 		'label': 'Indigo', | ||||
| # 	}, | ||||
| # 	{ | ||||
| # 		'color': 'hsl(207, 90%, 54%)', | ||||
| # 		'label': 'Blue', | ||||
| # 	}, | ||||
| # ] | ||||
| CKEDITOR_5_FILE_STORAGE = "various.storage.UploadStorage" | ||||
| CKEDITOR_5_CONFIGS = { | ||||
| 	'default': { | ||||
| 		'entities': False, | ||||
| 		'toolbar': [ | ||||
| 			['Source', 'ShowBlocks', '-', 'Maximize'], | ||||
| 			['Bold', 'Italic', 'Subscript', 'Superscript', '-', 'RemoveFormat'], | ||||
| 			['NumberedList','BulletedList','-','Blockquote','-','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'], | ||||
| 			['Link', 'Unlink', 'Anchor', '-', 'Image', 'Table', 'HorizontalRule'], | ||||
| 			['Format'], | ||||
| 
 | ||||
| 		'language': 'cs', | ||||
| 		'blockToolbar': [ | ||||
| 			'paragraph', 'heading1', 'heading2', 'heading3', | ||||
| 			'|', | ||||
| 			'bulletedList', 'numberedList', | ||||
| 			'|', | ||||
| 			'blockQuote', | ||||
| 		], | ||||
| #        'toolbar': 'full', | ||||
| 		'height': '40em', | ||||
| 		'width': '100%', | ||||
| 		'toolbarStartupExpanded': False, | ||||
| 		'allowedContent' : True, | ||||
| 		'toolbar': ['sourceEditing', '|', 'heading', '|', | ||||
| 					# 'outdent', 'indent', '|', | ||||
| 					'bold', 'italic', 'link', 'underline', 'strikethrough', | ||||
| 					'code', | ||||
| 					# 'subscript', 'superscript', | ||||
| 					# 'highlight', | ||||
| 					'|', 'codeBlock', 'insertImage', | ||||
| 					'bulletedList', 'numberedList', 'todoList', '|', | ||||
| 					# 'blockQuote', '|', | ||||
| 					# 'fontSize', 'fontFamily', 'fontColor', 'fontBackgroundColor', | ||||
| 					# 'mediaEmbed', | ||||
| 					'removeFormat', | ||||
| 					# 'insertTable', | ||||
| 					], | ||||
| 		'image': { | ||||
| 			'toolbar': ['imageTextAlternative', '|', 'imageStyle:alignLeft', | ||||
| 						'imageStyle:alignRight', 'imageStyle:alignCenter', 'imageStyle:side',  '|'], | ||||
| 			'styles': [ | ||||
| 				'full', | ||||
| 				'side', | ||||
| 				'alignLeft', | ||||
| 				'alignRight', | ||||
| 				'alignCenter', | ||||
| 			] | ||||
| 
 | ||||
| 		}, | ||||
| 		# 'table': { | ||||
| 		# 	'contentToolbar': [ 'tableColumn', 'tableRow', 'mergeTableCells', | ||||
| 		# 						'tableProperties', 'tableCellProperties' ], | ||||
| 		# 	'tableProperties': { | ||||
| 		# 		'borderColors': customColorPalette, | ||||
| 		# 		'backgroundColors': customColorPalette, | ||||
| 		# 	}, | ||||
| 		# 	'tableCellProperties': { | ||||
| 		# 		'borderColors': customColorPalette, | ||||
| 		# 		'backgroundColors': customColorPalette, | ||||
| 		# 	} | ||||
| 		# }, | ||||
| 		'heading' : { | ||||
| 			'options': [ | ||||
| 				{ 'model': 'paragraph', 'title': 'Paragraph', 'class': 'ck-heading_paragraph' }, | ||||
| 				{ 'model': 'heading1', 'view': 'h1', 'title': 'Heading 1', 'class': 'ck-heading_heading1' }, | ||||
| 				{ 'model': 'heading2', 'view': 'h2', 'title': 'Heading 2', 'class': 'ck-heading_heading2' }, | ||||
| 				{ 'model': 'heading3', 'view': 'h3', 'title': 'Heading 3', 'class': 'ck-heading_heading3' }, | ||||
| 			] | ||||
| 		}, | ||||
| 	}, | ||||
| 	'list': { | ||||
| 		'properties': { | ||||
| 			'styles': 'true', | ||||
| 			'startIndex': 'true', | ||||
| 			'reversed': 'true', | ||||
| 		}, | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| # Webpack loader | ||||
|  |  | |||
							
								
								
									
										3
									
								
								mamweb/static/css/ckeditor5_fix.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								mamweb/static/css/ckeditor5_fix.css
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | |||
| .ck.ck-editor { | ||||
| 	color: black !important; /* V tmavém módu zapomene CKEditor přepnout barvu textu. (Bílý text na bílém pozadí je best.) */ | ||||
| } | ||||
|  | @ -15,7 +15,7 @@ urlpatterns = [ | |||
| 
 | ||||
| 	# Admin a nastroje | ||||
| 	path('admin/', admin.site.urls),  # NOQA | ||||
| 	path('ckeditor/', include('ckeditor_uploader.urls')), | ||||
| 	path("ckeditor5/", include('django_ckeditor_5.urls')), | ||||
| 
 | ||||
| 	# Tvorba = ročníky, čísla, problémy atd. (ma vlastni podadresare) | ||||
| 	path('', include('tvorba.urls')), | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| import django.forms | ||||
| from django.contrib import admin | ||||
| 
 | ||||
| from ckeditor_uploader.widgets import CKEditorUploadingWidget | ||||
| from django_ckeditor_5.widgets import CKEditor5Widget | ||||
| 
 | ||||
| from .models import Novinky | ||||
| 
 | ||||
|  | @ -10,7 +10,7 @@ class NovinkyAdminForm(django.forms.ModelForm): | |||
| 	class Meta: | ||||
| 		model = Novinky | ||||
| 		widgets = { | ||||
| 			'text': CKEditorUploadingWidget, | ||||
| 			'text': CKEditor5Widget, | ||||
| 		} | ||||
| 		fields = '__all__' | ||||
| 
 | ||||
|  |  | |||
|  | @ -14,7 +14,7 @@ Django<5.0 | |||
| django-reversion # Version control na datech v databázi | ||||
| django-countries # Políčko ve formu / field v modelu ohledně států | ||||
| django-solo # Singleton model (speciálně Nastavení) | ||||
| django-ckeditor # Editor htmlka (hlavně v adminu u flatpages) | ||||
| django-ckeditor-5 # Editor htmlka (hlavně v adminu u flatpages) | ||||
| django-cleanup  # Uklízí media/ od smazaných „databázových“ souborů | ||||
| django-taggit # Taggy v djangu (speciálně zaměření problémů) | ||||
| django-autocomplete-light>=3.9.0 # Automatické doplňování (problémů, účastníků, …) ve formulářích | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ from django.contrib import admin | |||
| from django.forms import widgets | ||||
| from django.db import models | ||||
| 
 | ||||
| from ckeditor_uploader.widgets import CKEditorUploadingWidget | ||||
| from django_ckeditor_5.widgets import CKEditor5Widget | ||||
| 
 | ||||
| import soustredeni.models as m | ||||
| 
 | ||||
|  | @ -42,7 +42,7 @@ class SoustredeniAdminForm(django.forms.ModelForm): | |||
| 	class Meta: | ||||
| 		model = m.Soustredeni | ||||
| 		widgets = { | ||||
| 			'text': CKEditorUploadingWidget, | ||||
| 			'text': CKEditor5Widget, | ||||
| 		} | ||||
| 		fields = '__all__' | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										11
									
								
								various/storage.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								various/storage.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,11 @@ | |||
| import os | ||||
| from urllib.parse import urljoin | ||||
| 
 | ||||
| from django.conf import settings | ||||
| from django.core.files.storage import FileSystemStorage | ||||
| 
 | ||||
| class UploadStorage(FileSystemStorage): | ||||
| 	"""Storage pro CKEditor""" | ||||
| 
 | ||||
| 	location = os.path.join(settings.MEDIA_ROOT, "uploads") | ||||
| 	base_url = urljoin(settings.MEDIA_URL, "uploads/") | ||||
		Loading…
	
		Reference in a new issue