Skip to content

Commit bf3315f

Browse files
committed
Merge branch 'develop'
2 parents dd4688d + 7ec0555 commit bf3315f

10 files changed

Lines changed: 101 additions & 11 deletions

File tree

frontend_tests/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ Merci de mettre à jour la colonne `Utilisé` en fonction de l'utilisation du co
190190
| Projet - Paramètres | `/project/{id}/administration` | Mettre projet en pause | `// @page-projet-parametres-pause-projet` ||
191191
| Projet - Paramètres | `/project/{id}/administration` | Quitter le projet | `// @page-projet-parametres-quitter-projet` ||
192192
| Déposer un projet | `/onboarding/project` | Page | `// @deposer-projet` | 🚧 |
193+
| Demande compte conseiller | `/advisor-access-request` | Demande de compte conseiller | `// @demande-compte-conseiller` | 🚧 |
193194

194195
Le code est a positionner dans les fichiers de tests Cypress dans le nom du test pour permettre de retrouver facilement les tests concernés et de les executer selectivement à l'aide du package @cypress/grep.
195196

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
describe('Signup advisor @demande-compte-conseiller', () => {
2+
const userToSignup = {
3+
'[name=first_name]': 'Signupuser',
4+
'[name=last_name]': 'Successful',
5+
'[name=organization]': 'Signup Corp',
6+
'[name=organization_position]': 'Tester',
7+
'[name=email]': 'signup4@success.test',
8+
'[name=phone_no]': '0102030405',
9+
'[name=password1]': 'derpderp',
10+
'[name=password2]': 'derpderp',
11+
};
12+
13+
it('signup a new advisor', function () {
14+
cy.visit('/acteurs-locaux');
15+
cy.get('[data-test-id="button-advisor-access-request"]').click();
16+
17+
cy.url().should('include', '/advisor-access-request');
18+
19+
for (const key in userToSignup) {
20+
if (Object.prototype.hasOwnProperty.call(userToSignup, key)) {
21+
const element = userToSignup[key];
22+
cy.get(key).type(element, { delay: 0 });
23+
}
24+
}
25+
cy.document().then((doc) => {
26+
var iframe = doc.getElementById('id_captcha').querySelector('iframe');
27+
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
28+
innerDoc.querySelector('.recaptcha-checkbox').click();
29+
cy.wait(500);
30+
cy.get('[type=submit]').click();
31+
32+
cy.location().should((loc) => {
33+
expect(loc.pathname).to.eq('/advisor-access-request');
34+
});
35+
36+
cy.get('[type=submit]').click();
37+
cy.url().should('include', '/advisor-access-request');
38+
39+
cy.get('[name="comment"]').type("Tester c'est douter");
40+
cy.get('[type=submit]').click();
41+
42+
cy.get('[data-test-id="pending-advisor-request-confirmation"]').should(
43+
'be.visible'
44+
);
45+
});
46+
});
47+
});

recoco/apps/home/forms.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ class AdvisorAccessRequestForm(forms.Form):
135135
label="Commentaire",
136136
help_text="Expliquez brièvement pourquoi vous demandez l’accès à ces dossiers et en quoi cela est pertinent pour votre rôle, afin de nous aider à examiner votre demande.",
137137
widget=forms.Textarea(attrs={"rows": 3}),
138-
required=False,
138+
required=True,
139139
)
140140

141141

recoco/apps/home/templates/home/regional_actors.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ <h1 class="fr-h1">
3434
{% if is_switchtender %}
3535
<a href="{% url 'projects-project-list' %}" class="fr-btn fr-text--xl">Accéder à la liste des dossiers</a>
3636
{% else %}
37-
<a href="{% url 'advisor-access-request' %}" class="fr-btn fr-text--xl">Demander un accès</a>
37+
<a href="{% url 'advisor-access-request' %}"
38+
class="fr-btn fr-text--xl"
39+
data-test-id="button-advisor-access-request">Demander un accès</a>
3840
{% endif %}
3941
</li>
4042
</ul>

recoco/apps/home/tests/test_views_advisor_access.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def test_post_request(self, client, current_site):
7272

7373
response = client.post(
7474
reverse("advisor-access-request"),
75-
data={"departments": ["64", "33"]},
75+
data={"departments": ["64", "33"], "comment": "Merci pour votre aide !"},
7676
)
7777
assert response.status_code == 200
7878

@@ -85,6 +85,7 @@ def test_post_request(self, client, current_site):
8585
assert advisor_access_request.user == user
8686
assert advisor_access_request.status == "PENDING"
8787
assert advisor_access_request.departments.count() == 2
88+
assert advisor_access_request.comment == "Merci pour votre aide !"
8889

8990
response = client.post(
9091
reverse("advisor-access-request"),
@@ -181,7 +182,10 @@ def test_post_request(self, client, current_site):
181182
assert response.status_code == 200
182183
assert response.context["form"].errors is not None
183184

184-
response = client.post(url, data={"departments": ["64", "33"]})
185+
response = client.post(
186+
url,
187+
data={"departments": ["64", "33"], "comment": "Merci pour votre aide !"},
188+
)
185189
assert response.status_code == 302
186190
assert response.url == reverse("projects-moderation-list")
187191

recoco/apps/projects/serializers.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ def to_representation(self, data):
214214
and self.current_user.has_perm("projects.use_private_notes", data)
215215
else None
216216
),
217+
"owner": format_owner(data),
217218
}
218219

219220

@@ -259,6 +260,28 @@ def to_representation(self, data):
259260
}
260261

261262

263+
def format_owner(project):
264+
owner = project.owner
265+
if not owner:
266+
return None
267+
return {
268+
"id": owner.id,
269+
"first_name": owner.first_name,
270+
"last_name": owner.last_name,
271+
"username": owner.username,
272+
"email": owner.email,
273+
"profile": {
274+
"organization": {
275+
"name": (
276+
owner.profile.organization.name
277+
if owner.profile.organization
278+
else ""
279+
),
280+
}
281+
},
282+
}
283+
284+
262285
def format_commune(commune):
263286
if not commune:
264287
return None

recoco/apps/projects/templates/projects/project/list-kanban.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,9 +147,9 @@ <h5 x-text="board.title" class="font-medium text-gray-800 fr-mb-0"></h5>
147147
<div class="kanban-card__project-container fr-mb-2v">
148148
<span class="kanban-card__project-name project-link"
149149
x-text="truncate(t.name)"></span>
150-
<template x-if="t.org_name">
150+
<template x-if="t.owner.profile.organization">
151151
<span class="kanban-card__project-organization"
152-
x-text="t.org_name"></span>
152+
x-text="t.owner.profile.organization.name"></span>
153153
</template>
154154
</div>
155155
<template x-if="t.origin">

recoco/apps/projects/tests/test_rest.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,11 +142,12 @@ def test_project_list_includes_only_projects_in_switchtender_departments(
142142
"name",
143143
"notifications",
144144
"org_name",
145-
"status",
145+
"owner",
146146
"switchtenders",
147147
"updated_on",
148148
"description",
149149
"project_sites",
150+
"status",
150151
"tags",
151152
"advisors_note",
152153
]

recoco/templates/default_site/account/fragments/departements_select_form.html

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,20 @@ <h4 class="fr-mb-3w d-block">Sélectionnez vos départements d'action</h4>
1616
</template>
1717
</div>
1818
<div class="fr-input-group fr-mt-4v">
19-
<label for="comment" class="fr-label">{{ form.comment.label }} (facultatif)</label>
20-
<helptext>{{ form.comment.help_text }}</helptext>
21-
<textarea name="comment" class="fr-input" id="comment" rows="3"></textarea>
19+
<label for="comment" class="fr-label">
20+
{{ form.fields.comment.label }}
21+
{% if form.fields.comment.required %}
22+
<span class="fr-text--bold">(obligatoire)</span>
23+
{% else %}
24+
<span>(facultatif)</span>
25+
{% endif %}
26+
</label>
27+
<helptext>{{ form.fields.comment.help_text }}</helptext>
28+
<textarea name="comment"
29+
class="fr-input"
30+
id="comment"
31+
rows="3"
32+
{% if form.fields.comment.required %}required{% endif %}></textarea>
2233
</div>
2334
<button class="fr-btn custom-login-button w-100" type="submit">S'inscrire</button>
2435
</div>

recoco/templates/default_site/account/fragments/pending_advisor_request_redirect.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
{% extends "account/layout/layout.html" %}
22
{% load static %}
33
{% block layout_content %}
4-
<fieldset class="fr-fieldset">
4+
<fieldset class="fr-fieldset"
5+
data-test-id="pending-advisor-request-confirmation">
56
<div class="fr-fieldset__content">
67
{% comment %} TODO: add when the feature will be implemented {% endcomment %}
78
{% comment %} <p class="text-red-light fw-semibold fr-mb-1w">

0 commit comments

Comments
 (0)