Skip to content

Commit

Permalink
Merge pull request #603 from maykinmedia/fix/590-record-manager-can-c…
Browse files Browse the repository at this point in the history
…hange-reviewer

[#590] Record manager can change reviewer if they are the reviewer
  • Loading branch information
SilviaAmAm authored Jan 9, 2025
2 parents b46e3da + a99e5f3 commit 422d34b
Show file tree
Hide file tree
Showing 3 changed files with 96 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -80,4 +80,56 @@ en filters gebruiken om je selectie te verfijnen. De volgende stap is om de lijs

.. |naam_bewerken| image:: ../_assets/naam-bewerken.png
:alt: Naam bewerken knop
:height: 22px
:height: 22px

=====================
Beoordelaar bijwerken
=====================

Deze handleiding beschrijft hoe een **record manager** de beoordelaar van een vernietigingslijst kan bijwerken in de applicatie.

Voorwaarden
------------
- De record manager moet beschikken over een actieve gebruikersaccount met de juiste toegangsrechten.
- De vernietigingslijst moet een status van **Klaar voor beoordeling** of **Nieuw** hebben.
- Er moet een nieuwe beoordelaar beschikbaar zijn om toegewezen te worden.

Stappen
-------

1. **Inloggen als record manager**
- Open de applicatie en log in met je gebruikersnaam en wachtwoord of via je organisatie login.
- Na succesvol inloggen word je automatisch doorgestuurd naar het overzicht van vernietigingslijsten.

2. **Open de vernietigingslijst**
- Zoek in het overzicht naar de lijst waarvoor je de beoordelaar wilt bijwerken.
- Klik op de naam van de lijst, bijvoorbeeld **"Vernietigingslijst om beoordelaar bij te werken"**.
- Je wordt doorgestuurd naar de details van de lijst.

3. **Start het proces om de beoordelaar bij te werken**
- Klik op de knop **"Beoordelaar bewerken"**. |beoordelaar_bewerken|
- Een formulier wordt geopend om de nieuwe beoordelaar of toe te wijzen.

4. **Selecteer een nieuwe beoordelaar**
- Vul het veld **"Beoordelaar"** in door een naam te selecteren uit de lijst, bijvoorbeeld **"John Doe (reviewer)"**.
- Vul het veld **"Reden"** in met een korte toelichting, bijvoorbeeld **"Originele beoordelaar is op vakantie."**.

5. **Bevestig de wijziging**
- Klik op de knop **"Toewijzen"** om de nieuwe beoordelaar toe te wijzen aan de lijst.

6. **Controleer de wijzigingen**
- Controleer dat de vernietigingslijst nu de nieuwe beoordelaar weergeeft.
- Zorg ervoor dat de juiste informatie zichtbaar is in de lijstdetails.

Let op
------
- Controleer altijd dat de juiste beoordelaar is toegewezen voordat je verdergaat.
- Redenen voor wijzigingen worden vastgelegd en kunnen later geraadpleegd worden.
- De status van de lijst blijft **Klaar voor beoordeling** totdat deze wordt beoordeeld door de nieuwe beoordelaar.
- Als een gebruiker lid is van zowel de record manager- als beoordelaar-groep en is toegewezen als beoordelaar van een lijst, kan deze wel de beoordelaar wijzigen.

Met deze stappen kun je de beoordelaar voor een vernietigingslijst bijwerken en de lijst klaarzetten voor beoordeling door de nieuwe beoordelaar.

.. |beoordelaar_bewerken| image:: ../_assets/naam-bewerken.png
:alt: Beoordelaar bewerken knop
:height: 22px
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# fmt: off
from django.test import tag

from openarchiefbeheer.utils.tests.e2e import browser_page
from openarchiefbeheer.utils.tests.gherkin import GherkinLikeTestCase

from ....constants import ListRole, ListStatus


@tag("e2e")
@tag("gh-590")
class Issue590UpdateReviewer(GherkinLikeTestCase):
async def test_scenario_record_manager_updates_reviewer(self):
async with browser_page() as page:
record_manger = await self.given.record_manager_exists()
record_manger_reviewer = await self.given.record_manager_exists(post__can_review_destruction=True)
reviewer = await self.given.reviewer_exists(username="reviewer", first_name="John", last_name="Doe")

await self.given.assignee_exists(user=record_manger_reviewer)
assignee_reviewer = await self.given.assignee_exists(user=record_manger_reviewer, role=ListRole.main_reviewer)

destruction_list = await self.given.list_exists(
name="Destruction list to update reviewer",
assignees=[assignee_reviewer],
assignee=record_manger_reviewer,
author=record_manger,
status=ListStatus.ready_to_review
)

await self.when.user_logs_in(page, record_manger_reviewer)
await self.then.path_should_be(page, "/destruction-lists")
await self.then.list_should_have_assignee(page, destruction_list, record_manger_reviewer)

await self.when.user_clicks_button(page, "Destruction list to update reviewer")
await self.when.user_clicks_button(page, "Beoordelaar bewerken")
await self.when.user_fills_form_field(page, "Beoordelaar", "John Doe (reviewer)")
await self.when.user_fills_form_field(page, "Reden", "gh-590")
await self.when.user_clicks_button(page, "Toewijzen")

await self.then.page_should_contain_text(page, "Destruction list to update reviewer")
await self.then.list_should_have_assignee(page, destruction_list, reviewer)
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import {
} from "../../lib/api/destructionLists";
import {
canReassignDestructionList,
canReviewDestructionList,
canStartDestructionList,
} from "../../lib/auth/permissions";
import { collectErrors } from "../../lib/format/error";
import { formatUser } from "../../lib/format/user";
Expand Down Expand Up @@ -219,7 +219,7 @@ export function DestructionListReviewer({
};
});

if (!user || canReviewDestructionList(user, destructionList)) {
if (!user || !canStartDestructionList(user)) {
return [...coReviewerFields, commentField];
}
return [reviewerField, ...coReviewerFields, commentField];
Expand Down

0 comments on commit 422d34b

Please sign in to comment.