Skip to content

Commit 7342673

Browse files
committed
Merge branch 'develop'
2 parents a34f034 + fddc0c0 commit 7342673

28 files changed

Lines changed: 701 additions & 9493 deletions

File tree

frontend_tests/cypress/e2e/project/tasks/canPublishTaskWithRessource.cy.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
describe('I can attach miscellanious ressource to task @page-projet-recommandations-creation', () => {
22
it('publishes a task with resource comment / no comment', () => {
33
cy.login('conseiller1');
4-
cy.visit(`/projects/action/?project_id=25`);
4+
cy.visit('/project/1');
5+
cy.visit('/project/25');
6+
7+
cy.visit(`/projects/action/?resource_id=2`);
8+
cy.get('[data-cy="reco-pusher-selected-project"]').contains(
9+
'commune de test - Projet avec une reco qui a une resource qui a des contacts'
10+
);
511

612
cy.get('[data-cy="radio-push-reco-single-resource"]').should('be.checked');
713

frontend_tests/cypress/e2e/project/tasks/contact/canCreateContactOrgaAndGroup.cy.js

Lines changed: 259 additions & 98 deletions
Large diffs are not rendered by default.

frontend_tests/cypress/e2e/project/tasks/contact/canShareContact.cy.js renamed to frontend_tests/cypress/e2e/project/tasks/contact/canEditAndShareContact.cy.js

File renamed without changes.

recoco/apps/addressbook/rest.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1+
from django.contrib.sites.shortcuts import get_current_site
12
from rest_framework.filters import BaseFilterBackend
3+
from rest_framework.response import Response
24
from rest_framework.viewsets import ModelViewSet
35

46
from recoco.rest_api.filters import (
@@ -44,6 +46,16 @@ def get_serializer_class(self):
4446
case _:
4547
return serializers.OrganizationSerializer
4648

49+
def create(self, request, *args, **kwargs):
50+
instance = Organization.objects.filter(name=request.data["name"]).first()
51+
if instance is not None:
52+
# if someone create an organization that exists in another site we just enable this one to the new one
53+
instance.sites.add(get_current_site(request))
54+
serializer = self.get_serializer(instance)
55+
# todo handle potential new data from creation request. Now it is discarded
56+
return Response(serializer.data)
57+
return super().create(request, *args, **kwargs)
58+
4759

4860
class OrgaStartswithFilterBackend(BaseFilterBackend):
4961
def filter_queryset(self, request, queryset, view):

recoco/apps/addressbook/static/addressbook/css/contact_list.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
.actions {
88
&__search-bar {
99
position: relative;
10-
width: 75%;
10+
width: 50%;
1111
max-width: 852px;
1212
span {
1313
position: absolute;

recoco/apps/addressbook/templates/addressbook/contact_list.html

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ <h2>Contact</h2>
5151
placeholder="Rechercher">
5252
</div>
5353
<button class="actions__add-contact no-wrap fr-btn fr-btn--icon-left fr-icon-add-line"
54-
@click="openModalCreateContact()">Créer un contact</button>
54+
@click="openModalCreateContact()"
55+
data-test-id="button-create-contact">Créer un contact</button>
5556
</div>
5657
<div class="header__filter d-flex">
5758
<template x-for="letter of letters">
@@ -76,11 +77,12 @@ <h2>Contact</h2>
7677
x-text="nationalGroup.name"></h3>
7778
<template x-for="organization in nationalGroup.organizations" :key="index">
7879
<div class="organization-container">
79-
<div class="d-flex align-items-center">
80+
<div class="d-flex align-items-center" data-test-id="organization-header">
8081
<h3 class="organization__name fr-mb-0 no-wrap" x-text="organization.name"></h3>
8182
<button class="fr-btn fr-btn--tertiary-no-outline fr-btn--sm fr-icon-pencil-line button__actions-edit"
82-
@click="openModalCreateOrganization(organization, nationalGroup)">
83-
Éditer l'organisation'
83+
@click="openModalCreateOrganization(organization, nationalGroup)"
84+
data-test-id="button-edit-organization">
85+
Éditer l'organisation
8486
</button>
8587
<template x-if="organization.departments?.length > 0">
8688
<div class="organization__departments"

recoco/apps/addressbook/tests/test_rest_organization.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import pytest
2+
from django.contrib.sites.models import Site
23
from django.urls import reverse
34
from model_bakery import baker
45

@@ -70,3 +71,16 @@ def test_update_use_given_group(api_client, staff_user, current_site):
7071
api_client.force_authenticate(staff_user)
7172
response = api_client.patch(url, {"group": group.id, "name": "orga_name"})
7273
assert response.data["group"] == group.id
74+
75+
76+
@pytest.mark.django_db
77+
def test_add_sites_to_orga_when_created_same_name(api_client, staff_user):
78+
site = baker.make(Site)
79+
organization = baker.make(Organization, name="Services Secrets 91", sites=[site])
80+
url = reverse("api-addressbook-organization-list")
81+
api_client.force_authenticate(staff_user)
82+
response = api_client.post(url, {"name": organization.name})
83+
assert response.data["id"] == organization.id
84+
assert response.status_code == 200
85+
organization.refresh_from_db()
86+
assert site in organization.sites.all()

recoco/apps/crm/tests/test_user.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -407,10 +407,7 @@ def test_crm_user_update_profile_information_and_email_address(request, client):
407407

408408
# the confirmation email has been sent
409409
assert len(django.core.mail.outbox) == 1
410-
assert (
411-
"Pour activer votre compte, vous pouvez copier-coller le lien ci-dessous dans votre navigateur internet"
412-
in django.core.mail.outbox[0].subject
413-
)
410+
assert "Confirmez votre adresse email" in django.core.mail.outbox[0].subject
414411

415412

416413
@pytest.mark.django_db

recoco/apps/home/static/home/css/dsfr/custom-dsfr.scss

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -764,6 +764,10 @@ form > p {
764764
font-size: 18px !important;
765765
}
766766

767+
.h2-rework {
768+
font-size: 28px;
769+
}
770+
767771
.size-20px {
768772
font-size: 20px;
769773
}
@@ -805,3 +809,11 @@ form > p {
805809
color: white !important;
806810
text-decoration: none !important;
807811
}
812+
813+
/* ¯¯¯¯¯¯¯¯ *\
814+
Espacement
815+
\* ˍˍˍˍˍˍˍˍ */
816+
817+
.fr-pt-05v {
818+
padding-top: 2px;
819+
}

recoco/apps/invites/tests.py

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -148,12 +148,19 @@ def test_invite_available_for_everyone(request, client):
148148
def test_invite_404_if_already_accepted(request, client):
149149
current_site = get_current_site(request)
150150
baker.make(home_models.SiteConfiguration, site=current_site)
151-
invite = Recipe(models.Invite, site=current_site, accepted_on=timezone.now()).make()
152151

153-
url = reverse("invites-invite-details", args=[invite.pk])
154-
response = client.get(url)
155-
156-
assert response.status_code == 404
152+
with login(client) as user:
153+
invite = baker.make(
154+
models.Invite, site=current_site, accepted_on=timezone.now()
155+
)
156+
invite.project.members.add(user, through_defaults={"is_owner": False})
157+
url = reverse("invites-invite-details", args=[invite.pk])
158+
response = client.get(url, follow=True)
159+
last_url, status_code = response.redirect_chain[-1]
160+
assert status_code == 302
161+
assert last_url == reverse(
162+
"projects-project-detail-overview", args=(invite.project_id,)
163+
)
157164

158165

159166
@pytest.mark.django_db
@@ -729,16 +736,19 @@ def test_user_cannot_access_already_refused_invitation(
729736
baker.make(home_models.SiteConfiguration, site=current_site)
730737

731738
with login(client, email="invited@here.tld") as user:
732-
invite = Recipe(
739+
invite = baker.make(
733740
models.Invite,
734741
site=current_site,
735742
email=user.email,
736743
refused_on=timezone.now(),
737-
).make()
744+
)
738745
url = reverse("invites-invite-accept", args=[invite.pk])
739-
response = client.post(url)
740-
741-
assert response.status_code == 404
746+
response = client.post(url, follow=True)
747+
last_url, status_code = response.redirect_chain[-1]
748+
assert status_code == 302
749+
assert last_url == reverse(
750+
"projects-project-detail-overview", args=(invite.project_id,)
751+
)
742752

743753

744754
@pytest.mark.django_db

0 commit comments

Comments
 (0)