Comment {{ comment|linebreaksbr }}
{% endif %} {% if changed_fields %} -Updated fields: -
Updated fields:
+ {% include "emails/includes/fields_diff-html.jinja" %} {% endif %} diff --git a/taiga/projects/issues/templates/emails/update_issue_notification-body-text.jinja b/taiga/projects/issues/templates/emails/update_issue_notification-body-text.jinja index 5f68badb..a3dd43ba 100644 --- a/taiga/projects/issues/templates/emails/update_issue_notification-body-text.jinja +++ b/taiga/projects/issues/templates/emails/update_issue_notification-body-text.jinja @@ -9,9 +9,7 @@ Comment: {{ comment|linebreaksbr }} {% endif %} {% if changed_fields %} - Updated fields: - {% for field in changed_fields %} - * {{ field.verbose_name}}: from '{{ field.old_value}}' to '{{ field.new_value }}'. - {% endfor %} + {% include "emails/includes/fields_diff-text.jinja" %} {% endif %} ** More info at {{ final_url_name }} ({{ final_url }}) ** diff --git a/taiga/projects/milestones/admin.py b/taiga/projects/milestones/admin.py index 3d2f096e..b741a1b2 100644 --- a/taiga/projects/milestones/admin.py +++ b/taiga/projects/milestones/admin.py @@ -15,7 +15,6 @@ # along with this program. If not, seeComment {{ comment|linebreaksbr }}
{% endif %} {% if changed_fields %} -Updated fields: -
Updated fields:
+ {% include "emails/includes/fields_diff-html.jinja" %} {% endif %} diff --git a/taiga/projects/milestones/templates/emails/update_milestone_notification-body-text.jinja b/taiga/projects/milestones/templates/emails/update_milestone_notification-body-text.jinja index 5f41acbf..c2f667d5 100644 --- a/taiga/projects/milestones/templates/emails/update_milestone_notification-body-text.jinja +++ b/taiga/projects/milestones/templates/emails/update_milestone_notification-body-text.jinja @@ -9,9 +9,7 @@ Comment: {{ comment|linebreaksbr }} {% endif %} {% if changed_fields %} - Updated fields: - {% for field in changed_fields %} - * {{ field.verbose_name}}: from '{{ field.old_value}}' to '{{ field.new_value }}'. - {% endfor %} + {% include "emails/includes/fields_diff-text.jinja" %} {% endif %} ** More info at {{ final_url_name }} ({{ final_url }}) ** diff --git a/taiga/projects/mixins/notifications.py b/taiga/projects/mixins/notifications.py new file mode 100644 index 00000000..ef588cec --- /dev/null +++ b/taiga/projects/mixins/notifications.py @@ -0,0 +1,116 @@ +# Copyright (C) 2014 Andrey AntukhComment {{ comment|linebreaksbr }}
{% endif %} {% if changed_fields %} -Updated fields: -
Updated fields:
+ {% include "emails/includes/fields_diff-html.jinja" %} {% endif %} diff --git a/taiga/projects/tasks/templates/emails/update_task_notification-body-text.jinja b/taiga/projects/tasks/templates/emails/update_task_notification-body-text.jinja index c8181cfa..771d1d94 100644 --- a/taiga/projects/tasks/templates/emails/update_task_notification-body-text.jinja +++ b/taiga/projects/tasks/templates/emails/update_task_notification-body-text.jinja @@ -9,9 +9,7 @@ Comment: {{ comment|linebreaksbr }} {% endif %} {% if changed_fields %} - Updated fields: - {% for field in changed_fields %} - * {{ field.verbose_name}}: from '{{ field.old_value}}' to '{{ field.new_value }}'. - {% endfor %} + {% include "emails/includes/fields_diff-text.jinja" %} {% endif %} ** More info at {{ final_url_name }} ({{ final_url }}) ** diff --git a/taiga/projects/tasks/tests/tests_api.py b/taiga/projects/tasks/tests/tests_api.py index 3ee56c6e..da80ae04 100644 --- a/taiga/projects/tasks/tests/tests_api.py +++ b/taiga/projects/tasks/tests/tests_api.py @@ -20,8 +20,6 @@ from django import test from django.core import mail from django.core.urlresolvers import reverse -import reversion - from taiga.users.tests import create_user from taiga.projects.tests import create_project, add_membership from taiga.projects.milestones.tests import create_milestone @@ -111,24 +109,6 @@ class TasksTestCase(test.TestCase): response = self.client.get(reverse("tasks-detail", args=(self.task1.id,))) self.assertEqual(response.status_code, 401) - def test_view_task_by_project_owner(self): - response = self.client.login(username=self.user1.username, - password=self.user1.username) - self.assertTrue(response) - - # Change task for generate history/diff. - with reversion.create_revision(): - self.task1.tags = ["LL"] - self.task1.save() - - with reversion.create_revision(): - self.task1.tags = ["LLKK"] - self.task1.save() - - response = self.client.get(reverse("tasks-detail", args=(self.task1.id,))) - self.assertEqual(response.status_code, 200) - self.client.logout() - def test_view_task_by_owner(self): response = self.client.login(username=self.user2.username, password=self.user2.username) diff --git a/taiga/projects/templates/emails/update_project_notification-body-html.jinja b/taiga/projects/templates/emails/update_project_notification-body-html.jinja index c4012623..39fe4f7e 100644 --- a/taiga/projects/templates/emails/update_project_notification-body-html.jinja +++ b/taiga/projects/templates/emails/update_project_notification-body-html.jinja @@ -13,24 +13,8 @@Comment {{ comment|linebreaksbr }}
{% endif %} {% if changed_fields %} -Updated fields: -
Updated fields:
+ {% include "emails/includes/fields_diff-html.jinja" %} {% endif %} diff --git a/taiga/projects/templates/emails/update_project_notification-body-text.jinja b/taiga/projects/templates/emails/update_project_notification-body-text.jinja index cbe39067..dfe93b9c 100644 --- a/taiga/projects/templates/emails/update_project_notification-body-text.jinja +++ b/taiga/projects/templates/emails/update_project_notification-body-text.jinja @@ -8,8 +8,8 @@ Comment: {{ comment|linebreaksbr }} {% endif %} {% if changed_fields %} - Updated fields: - {% for field in changed_fields %} - * {{ field.verbose_name}}: from '{{ field.old_value}}' to '{{ field.new_value }}'. + {% for field_name, values in changed_fields.items() %} + * {{ verbose_name(object, field_name) }}: from '{{ values.0 }}' to '{{ values.1 }}'. {% endfor %} {% endif %} diff --git a/taiga/projects/userstories/admin.py b/taiga/projects/userstories/admin.py index 99385355..3e47aafa 100644 --- a/taiga/projects/userstories/admin.py +++ b/taiga/projects/userstories/admin.py @@ -15,14 +15,12 @@ # along with this program. If not, seeComment {{ comment|linebreaksbr }}
{% endif %} {% if changed_fields %} -Updated fields: -
Updated fields:
+ {% include "emails/includes/fields_diff-html.jinja" %} {% endif %} diff --git a/taiga/projects/userstories/templates/emails/update_userstory_notification-body-text.jinja b/taiga/projects/userstories/templates/emails/update_userstory_notification-body-text.jinja index 83a02d53..e796e9bc 100644 --- a/taiga/projects/userstories/templates/emails/update_userstory_notification-body-text.jinja +++ b/taiga/projects/userstories/templates/emails/update_userstory_notification-body-text.jinja @@ -9,9 +9,7 @@ Comment: {{ comment|linebreaksbr }} {% endif %} {% if changed_fields %} - Updated fields: - {% for field in changed_fields %} - * {{ field.verbose_name}}: from '{{ field.old_value}}' to '{{ field.new_value }}'. - {% endfor %} + {% include "emails/includes/fields_diff-text.jinja" %} {% endif %} ** More info at {{ final_url_name }} ({{ final_url }}) ** diff --git a/taiga/projects/userstories/tests/tests_api.py b/taiga/projects/userstories/tests/tests_api.py index fd3d56e4..8ec8d810 100644 --- a/taiga/projects/userstories/tests/tests_api.py +++ b/taiga/projects/userstories/tests/tests_api.py @@ -27,7 +27,6 @@ from taiga.projects.issues.tests import create_issue from . import create_userstory import json -import reversion class UserStoriesTestCase(test.TestCase): @@ -689,8 +688,6 @@ class UserStoriesTestCase(test.TestCase): self.assertEqual(len(mail.outbox), 2) self.assertEqual(response.data["origin_issue"]["subject"], issue.subject) - issue_historical = reversion.get_unique_for_object(issue) - self.assertTrue(data["subject"] in issue_historical[0].revision.comment) self.client.logout() @@ -721,8 +718,6 @@ class UserStoriesTestCase(test.TestCase): self.assertEqual(len(mail.outbox), 2) self.assertEqual(response.data["origin_issue"]["subject"], issue.subject) - issue_historical = reversion.get_unique_for_object(issue) - self.assertTrue(data["subject"] in issue_historical[0].revision.comment) self.client.logout() diff --git a/taiga/projects/wiki/admin.py b/taiga/projects/wiki/admin.py index 6fc1e2cf..053cc8a7 100644 --- a/taiga/projects/wiki/admin.py +++ b/taiga/projects/wiki/admin.py @@ -16,8 +16,7 @@ from django.contrib import admin -from taiga.projects.wiki.models import WikiPage -from taiga.projects.admin import AttachmentInline +from taiga.projects.attachments.admin import AttachmentInline from . import models diff --git a/taiga/projects/wiki/api.py b/taiga/projects/wiki/api.py index 0d751497..2daba09d 100644 --- a/taiga/projects/wiki/api.py +++ b/taiga/projects/wiki/api.py @@ -14,60 +14,55 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see
+ Project: {{ object.project.name }}+Wiki Page: {{ object.slug }}+Created by {{ changer.get_full_name() }}. + |
+
+ More info at: {{ final_url_name }} +
+{% endblock %} diff --git a/taiga/projects/wiki/templates/emails/create_wiki_notification-body-text.jinja b/taiga/projects/wiki/templates/emails/create_wiki_notification-body-text.jinja new file mode 100644 index 00000000..b41f4b8c --- /dev/null +++ b/taiga/projects/wiki/templates/emails/create_wiki_notification-body-text.jinja @@ -0,0 +1,8 @@ +{% set final_url = resolve_front_url("wiki", object.project.slug, object.slug) %} +{% set final_url_name = "Taiga - View Wiki Page '{0}'".format(object.slug) %} + +- Project: {{ object.project.name }} +- Wiki Page: {{ object.slug }} +- Created by {{ changer.get_full_name() }} + +** More info at {{ final_url_name }} ({{ final_url }}) ** diff --git a/taiga/projects/wiki/templates/emails/create_wiki_notification-subject.jinja b/taiga/projects/wiki/templates/emails/create_wiki_notification-subject.jinja new file mode 100644 index 00000000..a32efed4 --- /dev/null +++ b/taiga/projects/wiki/templates/emails/create_wiki_notification-subject.jinja @@ -0,0 +1 @@ +[{{ object.project.name|safe }}] Created the Wiki Page "{{ object.slug }}" diff --git a/taiga/projects/wiki/templates/emails/destroy_wiki_notification-body-html.jinja b/taiga/projects/wiki/templates/emails/destroy_wiki_notification-body-html.jinja new file mode 100644 index 00000000..6f9bc2ba --- /dev/null +++ b/taiga/projects/wiki/templates/emails/destroy_wiki_notification-body-html.jinja @@ -0,0 +1,13 @@ +{% extends "emails/base.jinja" %} + +{% block body %} +
+ {{ object.project.name }}+Wiki Page: {{ object.slug }}+Deleted by {{ changer.get_full_name() }} + |
+
+ Project: {{ object.project.name }}+Wiki Page: {{ object.slug }}+Updated by {{ changer.get_full_name() }}. + {% if comment %} +Comment {{ comment|linebreaksbr }} + {% endif %} + {% if changed_fields %} +Updated fields: + {% include "emails/includes/fields_diff-html.jinja" %} + {% endif %} + |
+
+ More info at: {{ final_url_name }} +
+{% endblock %} diff --git a/taiga/projects/wiki/templates/emails/update_wiki_notification-body-text.jinja b/taiga/projects/wiki/templates/emails/update_wiki_notification-body-text.jinja new file mode 100644 index 00000000..b358d18f --- /dev/null +++ b/taiga/projects/wiki/templates/emails/update_wiki_notification-body-text.jinja @@ -0,0 +1,15 @@ +{% set final_url = resolve_front_url("wiki", object.project.slug, object.slug) %} +{% set final_url_name = "Taiga - View Wiki Page '{0}'".format(object.slug) %} + +- Project: {{ object.project.name }} +- Wiki Page: {{ object.slug }} +- Updated by {{ changer.get_full_name() }} +{% if comment %} +Comment: {{ comment|linebreaksbr }} +{% endif %} +{% if changed_fields %} +- Updated fields: + {% include "emails/includes/fields_diff-text.jinja" %} +{% endif %} + +** More info at {{ final_url_name }} ({{ final_url }}) ** diff --git a/taiga/projects/wiki/templates/emails/update_wiki_notification-subject.jinja b/taiga/projects/wiki/templates/emails/update_wiki_notification-subject.jinja new file mode 100644 index 00000000..18413c2d --- /dev/null +++ b/taiga/projects/wiki/templates/emails/update_wiki_notification-subject.jinja @@ -0,0 +1 @@ +[{{ object.project.name|safe }}] Updated the Wiki Page "{{ object.slug }}" diff --git a/taiga/users/models.py b/taiga/users/models.py index e2915e49..15ef2261 100644 --- a/taiga/users/models.py +++ b/taiga/users/models.py @@ -20,7 +20,7 @@ from django.utils.translation import ugettext_lazy as _ from django.contrib.auth.models import UserManager, AbstractUser from taiga.base.utils.slug import slugify_uniquely -from taiga.base.notifications.models import WatcherMixin +from taiga.projects.notifications.models import WatcherMixin import random