Fixing contact project
parent
095d613cf9
commit
fd71ae704f
|
@ -38,7 +38,7 @@ def send_contact_email(contact_entry_id):
|
||||||
"user_profile_url": resolve_front_url("user", contact_entry.user.username),
|
"user_profile_url": resolve_front_url("user", contact_entry.user.username),
|
||||||
"project_settings_url": resolve_front_url("project-admin", contact_entry.project.slug),
|
"project_settings_url": resolve_front_url("project-admin", contact_entry.project.slug),
|
||||||
}
|
}
|
||||||
users = contact_entry.project.get_users().exclude(id=contact_entry.user_id)
|
users = contact_entry.project.get_users(with_admin_privileges=True).exclude(id=contact_entry.user_id)
|
||||||
addresses = ", ".join([u.email for u in users])
|
addresses = ", ".join([u.email for u in users])
|
||||||
email = mail_builder.contact_notification(addresses, ctx)
|
email = mail_builder.contact_notification(addresses, ctx)
|
||||||
email.extra_headers["Reply-To"] = ", ".join([contact_entry.user.email])
|
email.extra_headers["Reply-To"] = ", ".join([contact_entry.user.email])
|
||||||
|
|
|
@ -382,9 +382,12 @@ class Project(ProjectDefaults, TaggedMixin, TagsColorsMixin, models.Model):
|
||||||
def get_roles(self):
|
def get_roles(self):
|
||||||
return self.roles.all()
|
return self.roles.all()
|
||||||
|
|
||||||
def get_users(self):
|
def get_users(self, with_admin_privileges=None):
|
||||||
user_model = get_user_model()
|
user_model = get_user_model()
|
||||||
members = self.memberships.values_list("user", flat=True)
|
members = self.memberships.all()
|
||||||
|
if with_admin_privileges is not None:
|
||||||
|
members = members.filter(Q(is_admin=True)|Q(user__id=self.owner.id))
|
||||||
|
members = members.values_list("user", flat=True)
|
||||||
return user_model.objects.filter(id__in=list(members))
|
return user_model.objects.filter(id__in=list(members))
|
||||||
|
|
||||||
def update_role_points(self, user_stories=None):
|
def update_role_points(self, user_stories=None):
|
||||||
|
|
|
@ -31,7 +31,9 @@ pytestmark = pytest.mark.django_db
|
||||||
def test_create_comment(client):
|
def test_create_comment(client):
|
||||||
user = f.UserFactory.create()
|
user = f.UserFactory.create()
|
||||||
project = f.ProjectFactory.create()
|
project = f.ProjectFactory.create()
|
||||||
f.MembershipFactory(user=project.owner, project=project, is_admin=True)
|
m1 = f.MembershipFactory(user=project.owner, project=project)
|
||||||
|
m2 = f.MembershipFactory(project=project, is_admin=True)
|
||||||
|
m3 = f.MembershipFactory(project=project, is_admin=False)
|
||||||
|
|
||||||
url = reverse("contact-list")
|
url = reverse("contact-list")
|
||||||
|
|
||||||
|
@ -46,7 +48,7 @@ def test_create_comment(client):
|
||||||
response = client.post(url, contact_data, content_type="application/json")
|
response = client.post(url, contact_data, content_type="application/json")
|
||||||
assert response.status_code == 201
|
assert response.status_code == 201
|
||||||
assert len(mail.outbox) == 1
|
assert len(mail.outbox) == 1
|
||||||
assert mail.outbox[0].to == [project.owner.email]
|
assert set(mail.outbox[0].to[0].split(", ")) == set([project.owner.email, m2.user.email])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue