Ajout et utilisation de summernote
This commit is contained in:
@@ -11,6 +11,7 @@ https://docs.djangoproject.com/en/4.0/ref/settings/
|
||||
"""
|
||||
|
||||
from pathlib import Path
|
||||
import os
|
||||
|
||||
# Build paths inside the project like this: BASE_DIR / 'subdir'.
|
||||
BASE_DIR = Path(__file__).resolve().parent.parent
|
||||
@@ -25,6 +26,8 @@ SECRET_KEY = 'django-insecure-j4jd&+4j^t_=@zr(#q@n!8e*58vkql6&_6w-t14ju8pw%ei%^s
|
||||
# SECURITY WARNING: don't run with debug turned on in production!
|
||||
DEBUG = True
|
||||
|
||||
|
||||
|
||||
cfg_dev_mode = True
|
||||
|
||||
ALLOWED_HOSTS = ["rh.ambulance-clerc.ch"]
|
||||
@@ -50,10 +53,54 @@ INSTALLED_APPS = [
|
||||
'django.contrib.admin',
|
||||
'carnet_rouge.apps.CarnetRougeConfig',
|
||||
#'nextcloud.apps.NextcloudConfig',
|
||||
'tinymce',
|
||||
'django_quill',
|
||||
'django_summernote',
|
||||
|
||||
]
|
||||
|
||||
|
||||
MEDIA_URL = '/media/'
|
||||
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
|
||||
X_FRAME_OPTIONS = 'SAMEORIGIN'
|
||||
|
||||
MAX_IMAGE_PIXELS = int(1024 * 1024 * 1024 // 4 // 3)
|
||||
SUMMERNOTE_THEME = 'bs4'
|
||||
SUMMERNOTE_CONFIG = {
|
||||
# Using SummernoteWidget - iframe mode, default
|
||||
'iframe': True,
|
||||
'attachment_filesize_limit': 2621440 ,
|
||||
|
||||
|
||||
'summernote': {
|
||||
# As an example, using Summernote Air-mode
|
||||
'airMode': False,
|
||||
|
||||
|
||||
# Change editor size
|
||||
'width': '100%',
|
||||
'height': '480',
|
||||
|
||||
# Use proper language setting automatically (default)
|
||||
'lang': "fr-FR",
|
||||
|
||||
# Toolbar customization
|
||||
# https://summernote.org/deep-dive/#custom-toolbar-popover
|
||||
'toolbar': [
|
||||
['view', ['undo','redo','fullscreen', 'codeview', 'help']],
|
||||
['fontfamily',['fontsize']],
|
||||
['font', ['bold', 'italic', 'underline', 'superscript', 'subscript', 'clear']],
|
||||
['color', ['forecolor','backcolor']],
|
||||
['para', ['ul', 'ol', 'paragraph']],
|
||||
['table', ['table']],
|
||||
['insert', ['link', 'picture', 'video', 'hr']],
|
||||
['style', ['style']],
|
||||
],
|
||||
}
|
||||
}
|
||||
|
||||
DATA_UPLOAD_MAX_NUMBER_FIELDS = 2500
|
||||
|
||||
|
||||
MIDDLEWARE = [
|
||||
'django.middleware.security.SecurityMiddleware',
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
@@ -293,9 +340,10 @@ JAZZMIN_SETTINGS = {
|
||||
"language_chooser": False,
|
||||
}
|
||||
|
||||
|
||||
if cfg_dev_mode:
|
||||
NEXTCLOUD_HOST = "cloud.ambulance-clerc.ch"
|
||||
else:
|
||||
NEXTCLOUD_HOST = "cloud.ambulance-clerc.ch"
|
||||
NEXTCLOUD_USER_DEFAULT_PASSWORD = "Mc144*1870"
|
||||
|
||||
|
||||
|
@@ -7,6 +7,7 @@ from django.contrib.admin import SimpleListFilter
|
||||
from django.utils.encoding import force_str
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from django_summernote.admin import SummernoteModelAdmin
|
||||
|
||||
class DefaultListFilter(SimpleListFilter):
|
||||
all_value = '_all'
|
||||
@@ -49,7 +50,8 @@ class StatusFilter(DefaultListFilter):
|
||||
return 1
|
||||
|
||||
@admin.register(cr_Message)
|
||||
class cr_Message_Admin(admin.ModelAdmin):
|
||||
class cr_Message_Admin(SummernoteModelAdmin):
|
||||
summernote_fields = ('sText',)
|
||||
class Meta:
|
||||
verbose_name = 'Message carnet rouge'
|
||||
verbose_name_plural = 'Messages carnet rouge'
|
||||
|
@@ -30,7 +30,7 @@ class cr_Message(models.Model):
|
||||
sReadedUsers = models.TextField("Liste des utilisateurs ayant lu", blank=True)
|
||||
DestGroup = models.ForeignKey(Group, on_delete=models.DO_NOTHING)
|
||||
sTitle = models.CharField("Titre", max_length=120)
|
||||
sText = QuillField ("Corps de texte")
|
||||
sText = models.TextField ("Corps de texte")
|
||||
dtValidityFrom = models.DateField("Validité depuis",default=timezone.now)
|
||||
dtValidityTo = models.DateField("Validité jusqu'à", blank=True, null=True)
|
||||
bEnabled = models.BooleanField("Actif", default=True)
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div>
|
||||
{{ obj.sText.html|safe }}
|
||||
{{ obj.sText|safe }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@@ -1,5 +1,7 @@
|
||||
from django.urls import path
|
||||
from django.urls import path, include
|
||||
|
||||
from django.conf import settings
|
||||
from django.conf.urls.static import static
|
||||
|
||||
|
||||
from carnet_rouge import views
|
||||
@@ -9,12 +11,9 @@ urlpatterns = [
|
||||
path('cr', views.model_form_view, name='model_form_view'),
|
||||
path('view/<int:pk>', views.CrDetailView.as_view(), name='cr_view'),
|
||||
path('notread', views.CrNotReadView.as_view(), name='cr_not_read_list'),
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
path('summernote/', include('django_summernote.urls')),
|
||||
path('editor/', include('django_summernote.urls')),
|
||||
|
||||
]
|
||||
|
||||
if settings.DEBUG:
|
||||
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||
|
@@ -56,4 +56,4 @@ x-wr-timezone==0.0.5
|
||||
xhtml2pdf==0.2.7
|
||||
zopfli==0.1.9
|
||||
django-autologin
|
||||
django-quill-editor
|
||||
django-summernote
|
Reference in New Issue
Block a user