Compare commits
2 Commits
35ea8c148c
...
7b8a5d0305
Author | SHA1 | Date | |
---|---|---|---|
7b8a5d0305 | |||
30433d8733 |
@ -54,17 +54,25 @@ class meta_data(dict):
|
|||||||
def history_filename(self, history_version):
|
def history_filename(self, history_version):
|
||||||
return os.path.join(self._path, HISTORY_FOLDER_NAME, "%05d_%s" % (history_version, self.META_FILE_NAME))
|
return os.path.join(self._path, HISTORY_FOLDER_NAME, "%05d_%s" % (history_version, self.META_FILE_NAME))
|
||||||
|
|
||||||
|
def update_required(self, tags):
|
||||||
|
return tags != self.get(self.KEY_TAGS)
|
||||||
|
|
||||||
def update(self, username, tags):
|
def update(self, username, tags):
|
||||||
if username:
|
if self._history_version:
|
||||||
self[self.KEY_MODIFIED_TIME] = int(time.time())
|
logger.error("A history version %05d can not be updated!", self._history_version)
|
||||||
self[self.KEY_MODIFIED_USER] = username
|
return False
|
||||||
if self.KEY_CREATION_TIME not in self:
|
else:
|
||||||
self[self.KEY_CREATION_TIME] = self[self.KEY_MODIFIED_TIME]
|
if username:
|
||||||
if tags:
|
self[self.KEY_MODIFIED_TIME] = int(time.time())
|
||||||
self[self.KEY_TAGS] = tags
|
self[self.KEY_MODIFIED_USER] = username
|
||||||
#
|
if self.KEY_CREATION_TIME not in self:
|
||||||
if username or tags:
|
self[self.KEY_CREATION_TIME] = self[self.KEY_MODIFIED_TIME]
|
||||||
self.save()
|
if tags:
|
||||||
|
self[self.KEY_TAGS] = tags
|
||||||
|
#
|
||||||
|
if username or tags:
|
||||||
|
self.save()
|
||||||
|
return True
|
||||||
|
|
||||||
def save(self):
|
def save(self):
|
||||||
if self._history_version:
|
if self._history_version:
|
||||||
@ -129,7 +137,7 @@ class page_data(object):
|
|||||||
def is_available(self):
|
def is_available(self):
|
||||||
is_a = os.path.isfile(self.filename)
|
is_a = os.path.isfile(self.filename)
|
||||||
if not is_a:
|
if not is_a:
|
||||||
logger.info("page.is_available: Not available - %s", self.filename)
|
logger.debug("page.is_available: Not available - %s", self.filename)
|
||||||
return is_a
|
return is_a
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -421,21 +429,23 @@ class page_wrapped(object):
|
|||||||
return rv
|
return rv
|
||||||
|
|
||||||
def update_page(self, txt, tags):
|
def update_page(self, txt, tags):
|
||||||
if self._page.update_required(txt):
|
if self._page.update_required(txt) or self._page_meta.update_required(tags):
|
||||||
|
rv = False
|
||||||
# Store history
|
# Store history
|
||||||
self.__store_history__()
|
self.__store_history__()
|
||||||
# Update page
|
|
||||||
rv = self._page.update_page(txt)
|
|
||||||
# Update meta data
|
|
||||||
username = None
|
username = None
|
||||||
try:
|
if self._page.update_required(txt):
|
||||||
if self._request.user.is_authenticated:
|
# Update page
|
||||||
username = self._request.user.username
|
rv |= self._page.update_page(txt)
|
||||||
else:
|
# Identify username, to update meta
|
||||||
logger.warning("Page edit without having a logged in user. This is not recommended. Check your access definitions!")
|
try:
|
||||||
except AttributeError:
|
if self._request.user.is_authenticated:
|
||||||
logger.exception("Page edit without having a request object. Check programming!")
|
username = self._request.user.username
|
||||||
self._page_meta.update(username, tags)
|
else:
|
||||||
|
logger.warning("Page edit without having a logged in user. This is not recommended. Check your access definitions!")
|
||||||
|
except AttributeError:
|
||||||
|
logger.exception("Page edit without having a request object. Check programming!")
|
||||||
|
rv |= self._page_meta.update(username, tags)
|
||||||
# Update search index
|
# Update search index
|
||||||
from pages.search import update_item
|
from pages.search import update_item
|
||||||
update_item(self)
|
update_item(self)
|
||||||
|
@ -72,7 +72,7 @@ def add_item(ix, pw: page_wrapped):
|
|||||||
)
|
)
|
||||||
with ix.writer() as w:
|
with ix.writer() as w:
|
||||||
logger.info('Adding document with id=%s to the search index.', data.get('id'))
|
logger.info('Adding document with id=%s to the search index.', data.get('id'))
|
||||||
w.add_document(**data)
|
w.update_document(**data)
|
||||||
for key in data:
|
for key in data:
|
||||||
logger.debug(' - Adding %s=%s', key, repr(data[key]))
|
logger.debug(' - Adding %s=%s', key, repr(data[key]))
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user