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),
|
||||
"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])
|
||||
email = mail_builder.contact_notification(addresses, ctx)
|
||||
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):
|
||||
return self.roles.all()
|
||||
|
||||
def get_users(self):
|
||||
def get_users(self, with_admin_privileges=None):
|
||||
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))
|
||||
|
||||
def update_role_points(self, user_stories=None):
|
||||
|
|
|
@ -31,7 +31,9 @@ pytestmark = pytest.mark.django_db
|
|||
def test_create_comment(client):
|
||||
user = f.UserFactory.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")
|
||||
|
||||
|
@ -46,7 +48,7 @@ def test_create_comment(client):
|
|||
response = client.post(url, contact_data, content_type="application/json")
|
||||
assert response.status_code == 201
|
||||
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