Updated notifications and open grpah for forums and wiki, should now email new

topics to the mailing list.
This commit is contained in:
Oly 2017-09-14 13:34:13 +01:00
parent 8c99019476
commit 28e0cd8f94
10 changed files with 71 additions and 9 deletions

View File

@ -435,7 +435,9 @@ SASS_PROCESSOR_INCLUDE_DIRS = [
SASS_PROCESSOR_ENABLED = True
SASS_PROCESSOR_AUTO_INCLUDE = True
EMAIL_NOTIFY = True
EMAIL_SUPPORT = 'support@maidstone-hackspace.org.uk'
EMAIL_MAILING_LIST = 'maidstone-hackspace@googlegroups.com'
REST_FRAMEWORK = {
'DEFAULT_FILTER_BACKENDS': (
@ -466,4 +468,4 @@ CORS_ORIGIN_WHITELIST = (
MATRIX_USER=env('MATRIX_USERNAME')
MATRIX_PASSWORD=env('MATRIX_PASSWORD')
MATRIX_ROOM=env('MATRIX_ROOM')
MSG_PREFIX = '[MH]'
MSG_PREFIX = 'MH'

View File

@ -31,6 +31,7 @@ SECRET_KEY = env('DJANGO_SECRET_KEY', default='wq)sg12k&5&adv)e%56n5e97o@))6xu90
EMAIL_PORT = 1025
EMAIL_HOST = env("EMAIL_HOST", default='mailhog')
MSG_PREFIX = 'MHT'
# CACHING

View File

@ -113,6 +113,7 @@ EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_PASSWORD = env('EMAIL_PASSWORD')
EMAIL_HOST_USER = env('EMAIL_USER')
EMAIL_PORT = 587
EMAIL_NOTIFY = False
# Anymail with Mailgun
#INSTALLED_APPS += ("anymail", )

View File

@ -1,14 +1,15 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals, absolute_import
from django.contrib.sites.models import Site
from django.db import models
from django.conf import settings
from django.contrib.sites.models import Site
from django.utils import timezone
from stdimage.models import StdImageField
from stdimage.utils import UploadToAutoSlugClassNameDir
from stdimage.validators import MinSizeValidator
from spirit.comment.models import Comment
from spirit.topic.models import Topic
from wiki.models.article import ArticleRevision
# from django.contrib.auth.models import User
from django.core.mail import EmailMessage
@ -63,7 +64,7 @@ def send_topic_update_email(sender, instance, **kwargs):
addresses = {comment.user.email for comment in comments}
for user_email in addresses:
email = EmailMessage(
'[%s] - %s' % ('MH', instance.topic.title),
'[%s] - %s' % (settings.MSG_PREFIX, instance.topic.title),
'A topic you have interacted with has been updated click link to see new comments %s' % instance.get_absolute_url(),
'no-reply@maidstone-hackspace.org.uk',
to=[user_email],
@ -80,5 +81,19 @@ def wiki_article_updated(sender, instance, **kwargs):
instance.article.get_absolute_url()))
def send_new_topic_notification(sender, instance, **kwargs):
matrix_message.delay('https://%s%s' % (
Site.objects.get_current().domain,
instance.get_absolute_url()))
email = EmailMessage(
'[%s - TOPIC] - %s' % (settings.MSG_PREFIX, instance),
'A new topic has been created, click link to view %s' % instance.get_absolute_url(),
settings.EMAIL_MAILING_LIST,
to=[settings.EMAIL_MAILING_LIST],
headers={'Reply-To': settings.EMAIL_MAILING_LIST})
email.send()
post_save.connect(wiki_article_updated, sender=ArticleRevision)
post_save.connect(send_topic_update_email, sender=Comment)
post_save.connect(send_new_topic_notification, sender=Topic)

View File

@ -8,6 +8,7 @@ from mhackspace.feeds.helper import import_feeds
def update_homepage_feeds():
return import_feeds()
matrix_url = "https://matrix.org/_matrix/client/r0"
matrix_login_url = matrix_url + "/login"
matrix_join_room_alias_url = matrix_url + "/join/{room}?access_token={access_token}"
@ -15,11 +16,27 @@ matrix_join_room_id_url = matrix_url + "rooms/%21{room}/join?access_token={acces
matrix_send_msg_url = matrix_url + "/rooms/%21{room}/send/m.room.message?access_token={access_token}"
@shared_task
def send_email(email_to,
message,
email_from='no-reply@maidstone-hackspace.org.uk',
reply_to='no-reply@maidstone-hackspace.org.uk'):
if settings.EMAIL_NOTIFY is False:
return
email = EmailMessage(
'[%s] - %s' % (settings.MSG_PREFIX, instance.topic.title),
'A topic you have interacted with has been updated click link to see new comments %s' % instance.get_absolute_url(),
'no-reply@maidstone-hackspace.org.uk',
to=[email_to],
headers={'Reply-To': 'no-reply@maidstone-hackspace.org.uk'})
email.send()
@shared_task
def matrix_message(message):
# we dont rely on theses, so ignore if it goes wrong
# TODO at least log that something has gone wrong
try:
try:
# login
details = {
"type":"m.login.password",
@ -42,9 +59,8 @@ def matrix_message(message):
url = matrix_send_msg_url.format(**url_params)
details = {
"msgtype": "m.text",
"body": "%s %s" % (settings.MSG_PREFIX, message)}
"body": "[%s] %s" % (settings.MSG_PREFIX, message)}
r2 = requests.post(url, json=details)
except:
pass
return True

View File

@ -45,7 +45,7 @@ class UserRequests(models.Model):
def send_topic_update_email(sender, instance, **kwargs):
matrix_message.delay('[MH] New Request - %s' % instance.title)
matrix_message.delay('New Request - %s' % instance.title)
post_save.connect(send_topic_update_email, sender=UserRequests)

View File

@ -31,10 +31,13 @@
<link href="{% sass_src 'sass/project.scss' %}" rel="stylesheet">
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
{% block head-open-graph %}
<meta property="og:title" content="Maidstone Hackspace" />
<meta property="og:type" content="website" />
<meta property="og:url" content="{{ request.build_absolute_uri }}" />
<meta property="og:image" content="https://maidstone-hackspace.org.uk/static/images/android-chrome-192x192.png" />
{% endblock head-open-graph %}
{% block css %}{% endblock %}
@ -125,7 +128,10 @@
<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
<a class="dropdown-item" href="{% url 'users:detail' request.user.username %}">{% trans "My Profile" %}</a>
<a class="dropdown-item" href="{% url 'members' %}">Members</a>
<a class="dropdown-item" href="{% url 'requests' %}">Equipment</a>
<a class="dropdown-item" href="{% url 'requests' %}">Requests</a>
{% if request.user.is_superuser %}
<a class="dropdown-item" href="{% url 'spirit:admin:index' %}">Forum Admin</a>
{% endif %}
</div>
</li>
<li class="nav-item">

View File

@ -3,6 +3,14 @@
{% load crispy_forms_tags %}
{% load recapture %}
{% block head-open-graph %}
<meta property="og:title" content="New request made" />
<meta property="og:type" content="website" />
<meta property="og:url" content="{{ request.build_absolute_uri }}" />
<meta property="og:image" content="https://maidstone-hackspace.org.uk/static/images/android-chrome-192x192.png" />
{% endblock head-open-graph %}
{% block content %}
<h2>Requests</h2>

View File

@ -3,6 +3,13 @@
{% load static i18n %}
{% block title %}Members{% endblock %}
{% block head-open-graph %}
<meta property="og:title" content="{{ topic.title }}" />
<meta property="og:type" content="article" />
<meta property="og:url" content="{{ request.build_absolute_uri }}" />
<meta property="og:image" content="https://maidstone-hackspace.org.uk/static/images/android-chrome-192x192.png" />
{% endblock head-open-graph %}
{% block css %}
<link rel="stylesheet" href="{% static 'spirit/stylesheets/styles.all.min.css' %}">
<link href="{% sass_src 'sass/project.scss' %}" rel="stylesheet">

View File

@ -1,6 +1,12 @@
{% extends "base.html" %}
{% load sekizai_tags i18n wiki_tags static %}
{% block head-open-graph %}
<meta property="og:title" content="{{ article.current_revision.title }}" />
<meta property="og:type" content="article" />
<meta property="og:url" content="{{ request.build_absolute_uri }}" />
<meta property="og:image" content="https://maidstone-hackspace.org.uk/static/images/android-chrome-192x192.png" />
{% endblock head-open-graph %}
{% block content %}
{% block wiki_body %}