templates_wiki_filesdir = $(templates_wikidir)/files
+templates_wiki_messages_DATA = \
+ src/templates/wiki/messages/page-changed.txt
+
+templates_wiki_messagesdir = $(templates_wikidir)/messages
+
templates_wiki_modules_DATA = \
src/templates/wiki/modules/diff.html \
src/templates/wiki/modules/list.html \
#!/usr/bin/python3
import PIL
+import difflib
import io
import logging
import os.path
def url(self):
return self.page
+ @property
+ def full_url(self):
+ return "https://wiki.ipfire.org%s" % self.url
+
@property
def page(self):
return self.data.page
# Watchers
+ @lazy_property
+ def diff(self):
+ if self.previous_revision:
+ diff = difflib.unified_diff(
+ self.previous_revision.markdown.splitlines(),
+ self.markdown.splitlines(),
+ )
+
+ return "\n".join(diff)
+
@property
def watchers(self):
res = self.db.query("SELECT uid FROM wiki_watchlist \
logging.debug("Sending watcher email to %s" % watcher)
- pass # TODO
+ # Compose message
+ self.backend.messages.send_template("wiki/messages/page-changed",
+ recipients=[watcher], page=self, priority=-10)
class File(misc.Object):
--- /dev/null
+Subject: [{{ _("IPFire Wiki") }}] {{ _("Page Changed: %s") % page.title }}
+
+Hey,
+
+the wiki page has been changed by {{ page.author }}.
+Check out the current version at {{ page.full_url }}.
+
+{% if page.changes %} {{ page.changes }}{% end %}
+
+You can see what has changed here:
+
+ {{ page.full_url }}?action=diff&a={{ page.previous_revision.timestamp.isoformat() }}&b={{ page.timestamp.isoformat() }}
+
+{% raw page.diff %}