Compare commits

..

2 Commits

2 changed files with 34 additions and 24 deletions

View File

@ -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)

View File

@ -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]))