Compare commits
3 Commits
a5a3b8626e
...
0c7063ce7b
Author | SHA1 | Date | |
---|---|---|---|
0c7063ce7b | |||
12fbbcedf8 | |||
9d8641ac31 |
@ -5,7 +5,7 @@ from django.conf import settings
|
|||||||
# TODO: Add whoosh and search
|
# TODO: Add whoosh and search
|
||||||
|
|
||||||
import fstools
|
import fstools
|
||||||
from pages import messages
|
from pages import messages, url_page
|
||||||
import mycreole
|
import mycreole
|
||||||
import os
|
import os
|
||||||
|
|
||||||
@ -16,8 +16,9 @@ class creol_page(object):
|
|||||||
FOLDER_CONTENT = 'content'
|
FOLDER_CONTENT = 'content'
|
||||||
FILE_NAME = 'page'
|
FILE_NAME = 'page'
|
||||||
|
|
||||||
def __init__(self, rel_path) -> None:
|
def __init__(self, request, rel_path) -> None:
|
||||||
self._rel_path = rel_path
|
self._rel_path = rel_path
|
||||||
|
self._request = request
|
||||||
|
|
||||||
def rel_path_is_valid(self):
|
def rel_path_is_valid(self):
|
||||||
return not self.SPLITCHAR in self._rel_path
|
return not self.SPLITCHAR in self._rel_path
|
||||||
@ -62,11 +63,11 @@ class creol_page(object):
|
|||||||
with open(self.content_file_name, 'w') as fh:
|
with open(self.content_file_name, 'w') as fh:
|
||||||
fh.write(page_txt)
|
fh.write(page_txt)
|
||||||
|
|
||||||
def render_to_html(self, request):
|
def render_to_html(self):
|
||||||
if self.is_available():
|
if self.is_available():
|
||||||
return self.render_text(request, self.raw_page_src)
|
return self.render_text(self._request, self.raw_page_src)
|
||||||
else:
|
else:
|
||||||
messages.unavailable_msg_page(request, self._rel_path)
|
messages.unavailable_msg_page(self._request, self._rel_path)
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
def render_text(self, request, txt):
|
def render_text(self, request, txt):
|
||||||
@ -82,7 +83,7 @@ class creol_page(object):
|
|||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
params = kwargs.get('').split(",")
|
params = kwargs.get('', '').split(",")
|
||||||
depth = parse_depth(params[0])
|
depth = parse_depth(params[0])
|
||||||
if len(params) == 2:
|
if len(params) == 2:
|
||||||
startname = params[1]
|
startname = params[1]
|
||||||
@ -95,15 +96,12 @@ class creol_page(object):
|
|||||||
pathlist = fstools.dirlist(settings.PAGES_ROOT, rekursive=False)
|
pathlist = fstools.dirlist(settings.PAGES_ROOT, rekursive=False)
|
||||||
pathlist.sort()
|
pathlist.sort()
|
||||||
for path in pathlist:
|
for path in pathlist:
|
||||||
dirname = os.path.basename(path)
|
contentname = self.__folder_content_filter__(os.path.basename(path))
|
||||||
contentname = self.__folder_content_filter__(dirname)
|
|
||||||
#
|
#
|
||||||
my_dirname = self.__content_folder_filter__(self._rel_path)
|
if contentname.startswith(self._rel_path) and contentname != self._rel_path:
|
||||||
#
|
|
||||||
if dirname.startswith(my_dirname) and dirname != my_dirname:
|
|
||||||
name = contentname[len(self._rel_path)+1:]
|
name = contentname[len(self._rel_path)+1:]
|
||||||
if name.count('/') <= depth and name.startswith(startname):
|
if name.count('/') <= depth and name.startswith(startname):
|
||||||
rv += f' <li><a href="{contentname}">{name}</a></li>\n'
|
rv += f' <li><a href="{url_page(self._request, contentname)}">{name}</a></li>\n'
|
||||||
if len(rv) > 0:
|
if len(rv) > 0:
|
||||||
rv = "<ul>\n" + rv + "</ul>\n"
|
rv = "<ul>\n" + rv + "</ul>\n"
|
||||||
return rv
|
return rv
|
||||||
|
@ -15,7 +15,11 @@ import mycreole
|
|||||||
from .page import creol_page
|
from .page import creol_page
|
||||||
from themes import Context
|
from themes import Context
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
try:
|
||||||
|
from config import APP_NAME as ROOT_LOGGER_NAME
|
||||||
|
except ImportError:
|
||||||
|
ROOT_LOGGER_NAME = 'root'
|
||||||
|
logger = logging.getLogger(ROOT_LOGGER_NAME).getChild(__name__)
|
||||||
|
|
||||||
# TODO: /!\ Deactivate self registration
|
# TODO: /!\ Deactivate self registration
|
||||||
# TODO: /!\ Remove config and add config_example with data from mm_tmux /!\
|
# TODO: /!\ Remove config and add config_example with data from mm_tmux /!\
|
||||||
@ -28,9 +32,9 @@ def root(request):
|
|||||||
def page(request, rel_path):
|
def page(request, rel_path):
|
||||||
context = Context(request) # needs to be executed first because of time mesurement
|
context = Context(request) # needs to be executed first because of time mesurement
|
||||||
#
|
#
|
||||||
p = creol_page(rel_path)
|
p = creol_page(request, rel_path)
|
||||||
if access.read_page(request, rel_path):
|
if access.read_page(request, rel_path):
|
||||||
page_content = p.render_to_html(request)
|
page_content = p.render_to_html()
|
||||||
else:
|
else:
|
||||||
messages.permission_denied_msg_page(request, rel_path)
|
messages.permission_denied_msg_page(request, rel_path)
|
||||||
page_content = ""
|
page_content = ""
|
||||||
@ -50,7 +54,7 @@ def edit(request, rel_path):
|
|||||||
if access.write_page(request, rel_path):
|
if access.write_page(request, rel_path):
|
||||||
context = Context(request) # needs to be executed first because of time mesurement
|
context = Context(request) # needs to be executed first because of time mesurement
|
||||||
#
|
#
|
||||||
p = creol_page(rel_path)
|
p = creol_page(request, rel_path)
|
||||||
#
|
#
|
||||||
if not request.POST:
|
if not request.POST:
|
||||||
form = EditForm(page_data=p.raw_page_src)
|
form = EditForm(page_data=p.raw_page_src)
|
||||||
|
@ -148,6 +148,43 @@ USE_I18N = True
|
|||||||
|
|
||||||
USE_TZ = True
|
USE_TZ = True
|
||||||
|
|
||||||
|
# Logging Configuration
|
||||||
|
#
|
||||||
|
LOGGING = {
|
||||||
|
'version': 1,
|
||||||
|
'disable_existing_loggers': False,
|
||||||
|
'formatters': {
|
||||||
|
'short': {
|
||||||
|
'format': "%(name)25s - %(levelname)10s - %(message)s",
|
||||||
|
'datefmt': '[%d/%b/%Y %H:%M:%S]',
|
||||||
|
},
|
||||||
|
'long': {
|
||||||
|
'format': """~~~~(%(levelname)-10s)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
File "%(pathname)s", line %(lineno)d, in %(funcName)s
|
||||||
|
%(asctime)s: %(name)s - %(message)s
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'handlers': {
|
||||||
|
'console': {
|
||||||
|
'level': 'DEBUG',
|
||||||
|
'class': 'logging.StreamHandler',
|
||||||
|
'formatter': 'short',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'loggers': {
|
||||||
|
'django': {
|
||||||
|
'handlers': ['console'],
|
||||||
|
'level': 'INFO',
|
||||||
|
'propagate': False,
|
||||||
|
},
|
||||||
|
ROOT_LOGGER_NAME: {
|
||||||
|
'handlers': ['console'],
|
||||||
|
'level': 'DEBUG' if DEBUG else 'INFO',
|
||||||
|
'propagate': False,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
# Static files (CSS, JavaScript, Images)
|
# Static files (CSS, JavaScript, Images)
|
||||||
# https://docs.djangoproject.com/en/5.1/howto/static-files/
|
# https://docs.djangoproject.com/en/5.1/howto/static-files/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user