diff --git a/.gitignore b/.gitignore index 71f2b417a..2a284a355 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,8 @@ __pycache__/ *.mo ### Project-specific ### -media/ +media/* +!media/test_pdf.pdf certs/ fetc/ldap_settings.py fetc/saml_settings.py diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index 82ce150a7..9283064f6 100644 --- a/locale/en/LC_MESSAGES/django.po +++ b/locale/en/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-30 11:19+0200\n" +"POT-Creation-Date: 2024-10-01 10:14+0200\n" "PO-Revision-Date: 2024-04-03 12:32+0200\n" "Last-Translator: Anna Asbury \n" "Language-Team: \n" @@ -17,7 +17,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 2.4.1\n" -#: faqs/menus.py:7 main/templates/main/index.html:137 +#: faqs/menus.py:7 main/templates/main/index.html:132 msgid "FETC-GW website" msgstr "FEtC-H website" @@ -34,10 +34,10 @@ msgstr "Regulations FEtC-H" msgid "https://fetc-gw.wp.hum.uu.nl/reglement-fetc-gw/" msgstr "https://fetc-gw.wp.hum.uu.nl/en/regulations-fetc-h/" -#: faqs/menus.py:17 main/templates/main/index.html:145 +#: faqs/menus.py:17 main/templates/main/index.html:140 #: proposals/templates/proposals/study_consent.html:8 #: proposals/templates/proposals/translated_consent_forms.html:7 -#: proposals/utils/pdf_diff_logic.py:862 +#: proposals/utils/pdf_diff_logic.py:884 msgid "Informed consent formulieren" msgstr "Informed consent forms" @@ -71,35 +71,46 @@ msgstr "Dutch" msgid "Engels" msgstr "English" +#: interventions/forms.py:17 main/models.py:50 observations/forms.py:20 +#: studies/templates/studies/intervention_table.html:17 +#: studies/templates/studies/observation_table.html:17 +#: tasks/templates/tasks/session_end.html:21 +msgid "Setting" +msgstr "Setting" + +#: interventions/forms.py:20 +msgid "Beschrijving van de interventie" +msgstr "Description of the intervention" + +#: interventions/forms.py:24 +msgid "Extra taak" +msgstr "Extra task" + #: interventions/models.py:17 msgid "Wat is de periode waarbinnen de interventie plaatsvindt?" msgstr "What is the period in which the intervention will take place?" -#: interventions/models.py:18 -msgid "De interventie vindt plaats binnen het schooljaar 2018-2019" -msgstr "The intervention will take place in the academic year 2018-2019" - -#: interventions/models.py:23 +#: interventions/models.py:22 msgid "Zal de interventie vaker dan één keer plaatsvinden?" msgstr "Will there be more than one intervention session?" -#: interventions/models.py:28 +#: interventions/models.py:27 msgid "Wat is de frequentie van de interventie?" msgstr "What is the frequency of the intervention?" -#: interventions/models.py:33 +#: interventions/models.py:32 msgid "Wat is de duur van de interventie per sessie in minuten?" msgstr "What is the duration of the intervention session in minutes?" -#: interventions/models.py:39 +#: interventions/models.py:38 msgid "Wie voert de interventie uit?" msgstr "Who will conduct the intervention?" -#: interventions/models.py:44 +#: interventions/models.py:43 msgid "Geef een beschrijving van de experimentele interventie" msgstr "Give a description of the experimental intervention" -#: interventions/models.py:50 +#: interventions/models.py:49 msgid "" "Is er sprake van een controlegroep? (Let op: als de controlegroep ook een " "ander soort taken krijgt, moet je hier een apart traject voor aanmaken)" @@ -107,15 +118,15 @@ msgstr "" "Is there a control group? (If the control receives significantly different " "tasks, it should have its own trajectory)" -#: interventions/models.py:58 +#: interventions/models.py:57 msgid "Geef een beschrijving van de controleinterventie" msgstr "Give a description of the control intervention" -#: interventions/models.py:63 +#: interventions/models.py:62 msgid "Hoe wordt het effect van de interventie gemeten?" msgstr "How will the effect of the intervention be measured?" -#: interventions/models.py:65 +#: interventions/models.py:64 msgid "" "Wanneer je de deelnemer extra taken laat uitvoeren, dus een taak die niet " "behoort tot het reguliere onderwijspakket, dan moet je op de vorige pagina " @@ -125,12 +136,12 @@ msgstr "" "part of the regular educational package, you should also check \"task-based " "research\" on the previous page." -#: interventions/models.py:73 +#: interventions/models.py:72 msgid "Voert de leerling nog een taak uit die niet onder het leerplan valt?" msgstr "" "Does the pupil have to perform a task that is not part of the curriculum?" -#: interventions/models.py:75 +#: interventions/models.py:74 msgid "" "Moet het nog een taak doen, zoals het invullen van een " "(onderzoeks)vragenlijst, die niet binnen de interventie zelf valt?" @@ -138,34 +149,17 @@ msgstr "" "For example, does the pupil have to fill out a (research) questionnaire that " "is not part of intervention?" -#: interventions/models.py:82 +#: interventions/models.py:81 msgid "Hoe vaak per week vindt de interventiesessie plaats?" msgstr "How many times a week will the intervention session take place?" #: interventions/templates/interventions/intervention_form.html:7 -#: interventions/templates/interventions/intervention_form.html:48 +#: interventions/templates/interventions/intervention_form.html:42 #: proposals/utils/pdf_diff_logic.py:594 msgid "Het interventieonderzoek" msgstr "Intervention study" -#: interventions/templates/interventions/intervention_form.html:17 -#: main/models.py:50 -#: observations/templates/observations/observation_form.html:26 -#: studies/templates/studies/study_end.html:67 -#: studies/templates/studies/study_end.html:100 -#: tasks/templates/tasks/session_end.html:26 -msgid "Setting" -msgstr "Setting" - -#: interventions/templates/interventions/intervention_form.html:18 -msgid "Beschrijving van de interventie" -msgstr "Description of the intervention" - -#: interventions/templates/interventions/intervention_form.html:19 -msgid "Extra taak" -msgstr "Extra task" - -#: interventions/templates/interventions/intervention_form.html:60 +#: interventions/templates/interventions/intervention_form.html:49 msgid "" "Als je dit nog niet gedaan hebt, zul je op de vorige pagina naast " "\"interventie\" ook \"takenonderzoek\" moeten aanvinken, om je aanvraag " @@ -175,28 +169,28 @@ msgstr "" "research\" on the previous page to answer the required task questions " "related to tasks." -#: interventions/utils.py:11 studies/models.py:270 -#: studies/templates/studies/study_end.html:57 +#: interventions/utils.py:11 studies/forms.py:201 studies/models.py:270 +#: studies/templates/studies/intervention_table.html:8 msgid "Interventieonderzoek" msgstr "Interventional research" -#: interventions/views.py:20 +#: interventions/views.py:22 msgid "Interventie opgeslagen" msgstr "Intervention saved" #: main/forms/conditional_form.py:12 main/forms/conditional_form.py:21 #: main/forms/conditional_form.py:32 main/forms/conditional_form.py:43 #: main/forms/conditional_form.py:59 main/forms/mixins.py:84 -#: proposals/forms.py:629 proposals/forms.py:714 proposals/forms.py:735 -#: studies/forms.py:137 +#: proposals/forms.py:733 proposals/forms.py:819 proposals/forms.py:840 +#: studies/forms.py:188 msgid "Dit veld is verplicht." msgstr "This field is required." -#: main/models.py:8 main/utils.py:16 proposals/utils/pdf_diff_logic.py:245 +#: main/models.py:8 main/utils.py:17 proposals/utils/pdf_diff_logic.py:245 msgid "ja" msgstr "yes" -#: main/models.py:9 main/utils.py:16 proposals/utils/pdf_diff_logic.py:245 +#: main/models.py:9 main/utils.py:17 proposals/utils/pdf_diff_logic.py:245 msgid "nee" msgstr "no" @@ -312,8 +306,8 @@ msgid "Afhandeling" msgstr "Conclusion" #: main/templates/auth/user_detail.html:44 -#: tasks/templates/tasks/session_end.html:28 -#: tasks/templates/tasks/task_list.html:14 +#: tasks/templates/tasks/session_end.html:23 +#: tasks/templates/tasks/task_list.html:15 msgid "Acties" msgstr "Actions" @@ -356,15 +350,15 @@ msgstr "Website export text" #: main/templates/auth/user_detail.html:94 #: proposals/templates/proposals/proposal_confirmation.html:7 -#: proposals/templates/proposals/proposal_confirmation.html:25 +#: proposals/templates/proposals/proposal_confirmation.html:13 #: reviews/templates/reviews/vue_templates/decision_list.html:95 #: reviews/templates/reviews/vue_templates/review_list.html:88 -#: reviews/utils/review_actions.py:230 +#: reviews/utils/review_actions.py:229 msgid "Bevestigingsbrief versturen" msgstr "Send confirmation letter" #: main/templates/auth/user_detail.html:97 -#: proposals/templates/proposals/proposal_confirmation.html:39 +#: proposals/templates/proposals/proposal_confirmation.html:25 #: reviews/templates/reviews/vue_templates/decision_list.html:90 #: reviews/templates/reviews/vue_templates/review_list.html:83 msgid "Bevestigingsbrief verstuurd" @@ -378,15 +372,23 @@ msgstr "FEtC-H" msgid "FETC-GW Portal" msgstr "FEtC-H Portal" -#: main/templates/base/fetc_base.html:34 +#: main/templates/base/fetc_base.html:34 main/templates/base/fetc_base.html:53 msgid "Log uit" msgstr "Log out" -#: main/templates/base/form_buttons.html:8 +#: main/templates/base/fetc_base.html:47 main/templates/base/fetc_base.html:48 +msgid "cdh.core:uu" +msgstr "cdh.core.uu" + +#: main/templates/base/fetc_base.html:56 +msgid "Log in" +msgstr "Log in" + +#: main/templates/base/form_buttons.html:7 msgid "<< Opslaan en vorige stap" msgstr "<< Save and go back to previous step" -#: main/templates/base/form_buttons.html:11 +#: main/templates/base/form_buttons.html:10 msgid "Opslaan en volgende stap >>" msgstr "Save and go to next step >>" @@ -575,13 +577,13 @@ msgstr "" #: main/templates/main/index.html:64 msgid "" -"Het reglement van de Algemene Kamer (AK) of dat van de Linguïstiek Kamer (LK)." +"Het reglement van de FETC-GW ." msgstr "" +"The regulations of the FEtC-H." -#: main/templates/main/index.html:77 +#: main/templates/main/index.html:72 msgid "" "Gebruik de juiste (meest recente) model documents for informed consent. (Latest " "version: December 2021)" -#: main/templates/main/index.html:90 +#: main/templates/main/index.html:85 msgid "Bekijk mijn aanvragen" msgstr "View my applications" -#: main/templates/main/index.html:91 proposals/menus.py:9 +#: main/templates/main/index.html:86 proposals/menus.py:9 msgid "Nieuwe aanvraag starten" msgstr "Start a new application" -#: main/templates/main/index.html:93 +#: main/templates/main/index.html:88 msgid "Nieuwe revisie starten" msgstr "Create new revision" -#: main/templates/main/index.html:95 +#: main/templates/main/index.html:90 msgid "Nieuw amendement starten" msgstr "Create new amendment" -#: main/templates/main/index.html:97 proposals/menus.py:112 -#: proposals/views/proposal_views.py:185 +#: main/templates/main/index.html:92 proposals/menus.py:112 +#: proposals/views/proposal_views.py:190 msgid "Archief" msgstr "Archive" -#: main/templates/main/index.html:102 +#: main/templates/main/index.html:97 msgid "Ondersteuning" msgstr "Support" -#: main/templates/main/index.html:104 +#: main/templates/main/index.html:99 msgid "" "FETC-GW secretaris
Desiree Capel (fetc.gw@uu.nl)" msgstr "FEtC-H secretary
Desiree Capel (fetc.gw@uu.nl)" -#: main/templates/main/index.html:111 +#: main/templates/main/index.html:106 msgid "Data Management advies
datamanagement.gw@uu.nl" msgstr "Data Management advice
datamanagement.gw@uu.nl" -#: main/templates/main/index.html:118 +#: main/templates/main/index.html:113 msgid "Privacy kwesties/vragen
privacy.gw@uu.nl" msgstr "Privacy issues/questions
privacy.gw@uu.nl" -#: main/templates/main/index.html:125 +#: main/templates/main/index.html:120 msgid "Technical support
portalsupport.gw@uu.nl" msgstr "Technical support
portalsupport.gw@uu.nl" -#: main/templates/main/index.html:133 +#: main/templates/main/index.html:128 msgid "Resources" msgstr "Resources" -#: main/templates/main/index.html:141 +#: main/templates/main/index.html:136 msgid "Reglement van de FETC-GW" msgstr "Regulations of the FEtC-H" -#: main/templates/main/index.html:148 +#: main/templates/main/index.html:143 msgid "Veelgestelde vragen m.b.t. dit portal" msgstr "Frequently asked questions relating to this portal" -#: main/templates/main/index.html:153 +#: main/templates/main/index.html:148 msgid "Feedback" msgstr "Feedback" -#: main/templates/main/index.html:155 +#: main/templates/main/index.html:150 msgid "" "Heb je een vraag over de werking van de portal, ontdek je een foutje, " "missende functionaliteit, of verkeerde vertaling? Neem dan contact op met wie er wordt geobserveerd." msgstr "Describe who will be observed." @@ -875,8 +893,9 @@ msgid "" msgstr "As might happen on forums where the researcher also has an account." #: observations/models.py:69 observations/models.py:79 -#: observations/models.py:94 proposals/models.py:793 studies/models.py:170 -#: studies/models.py:232 studies/models.py:376 +#: observations/models.py:94 proposals/models.py:515 proposals/models.py:534 +#: proposals/models.py:829 studies/models.py:170 studies/models.py:232 +#: studies/models.py:313 studies/models.py:343 msgid "Licht toe" msgstr "Explain" @@ -958,42 +977,26 @@ msgid "Hoeveel uur wordt er gemiddeld per dag geobserveerd?" msgstr "How many hours of observation will take place on average per day?" #: observations/templates/observations/observation_form.html:7 -#: observations/templates/observations/observation_form.html:42 +#: observations/templates/observations/observation_form.html:32 #: proposals/utils/pdf_diff_logic.py:650 msgid "Het observatieonderzoek" msgstr "Observational study" -#: observations/templates/observations/observation_form.html:27 -msgid "Details observatie" -msgstr "Details of observation" - -#: observations/templates/observations/observation_form.html:28 -msgid "Anonimiteit" -msgstr "Anonymity" - -#: observations/templates/observations/observation_form.html:29 -msgid "Toestemming" -msgstr "Permission" - -#: observations/templates/observations/observation_form.html:30 -msgid "Registratie gedrag" -msgstr "Recording behaviour" - #: observations/templates/observations/observation_update_attachments.html:7 #: observations/templates/observations/observation_update_attachments.html:26 #: observations/templates/observations/observation_update_attachments.html:41 -#: proposals/templates/proposals/proposal_update_attachments.html:7 -#: proposals/templates/proposals/proposal_update_attachments.html:13 -#: proposals/templates/proposals/proposal_update_attachments.html:28 #: proposals/templates/proposals/proposal_update_date_start.html:7 +#: proposals/templates/proposals/proposal_update_dmp.html:7 +#: proposals/templates/proposals/proposal_update_dmp.html:13 +#: proposals/templates/proposals/proposal_update_dmp.html:26 #: studies/templates/studies/study_update_attachments.html:7 -#: studies/templates/studies/study_update_attachments.html:13 -#: studies/templates/studies/study_update_attachments.html:28 +#: studies/templates/studies/study_update_attachments.html:11 +#: studies/templates/studies/study_update_attachments.html:24 msgid "Formulieren aanpassen" msgstr "Change forms" #: observations/templates/observations/observation_update_attachments.html:28 -#: studies/templates/studies/study_update_attachments.html:15 +#: studies/templates/studies/study_update_attachments.html:13 #, python-format msgid "" "Op deze pagina kan je de formulieren aanpassen behorende bij de aanvraag " @@ -1003,25 +1006,25 @@ msgstr "" "%(title)s(reference number %(ref_number)s), trajectory %(order)s." #: observations/templates/observations/observation_update_attachments.html:42 -#: proposals/templates/proposals/proposal_confirmation.html:36 +#: proposals/templates/proposals/proposal_confirmation.html:22 #: proposals/templates/proposals/proposal_diff.html:55 -#: proposals/templates/proposals/proposal_update_attachments.html:29 -#: proposals/templates/proposals/proposal_update_date_start.html:32 +#: proposals/templates/proposals/proposal_update_date_start.html:26 +#: proposals/templates/proposals/proposal_update_dmp.html:23 #: reviews/templates/reviews/change_chamber_form.html:20 -#: reviews/templates/reviews/decision_form.html:99 -#: reviews/templates/reviews/review_assign_form.html:46 +#: reviews/templates/reviews/decision_form.html:98 +#: reviews/templates/reviews/review_assign_form.html:42 #: reviews/templates/reviews/review_close_form.html:40 -#: reviews/templates/reviews/review_discontinue_form.html:70 -#: studies/templates/studies/study_update_attachments.html:29 +#: reviews/templates/reviews/review_discontinue_form.html:65 +#: studies/templates/studies/study_update_attachments.html:21 msgid "Terug naar de vorige pagina" msgstr "Back to the previous page" -#: observations/utils.py:8 studies/models.py:271 -#: studies/templates/studies/study_end.html:90 +#: observations/utils.py:8 studies/forms.py:202 studies/models.py:271 +#: studies/templates/studies/observation_table.html:8 msgid "Observatieonderzoek" msgstr "Observational research" -#: observations/views.py:21 +#: observations/views.py:22 msgid "Observatie opgeslagen" msgstr "Observation saved" @@ -1034,28 +1037,19 @@ msgstr "Date reviewed" msgid "Datum ingediend bij eindverantwoordelijke" msgstr "Date sent to supervisor" -#: proposals/forms.py:67 -msgid "" -"Zijn er nog andere onderzoekers bij deze aanvraag betrokken die " -"niet geaffilieerd zijn aan een van de onderzoeksinstituten " -"van de Faculteit Geestwetenschappen van de UU? " -msgstr "" -"Are there any other researchers involved outside the above-" -"mentioned institutes? " - -#: proposals/forms.py:89 proposals/validators.py:22 +#: proposals/forms.py:51 proposals/forms.py:269 proposals/validators.py:22 msgid "Er bestaat al een aanvraag met deze titel." msgstr "There is an existing application with this title." -#: proposals/forms.py:158 +#: proposals/forms.py:114 msgid "Selecteer..." msgstr "Select..." -#: proposals/forms.py:167 +#: proposals/forms.py:121 msgid "Docent" msgstr "Professor" -#: proposals/forms.py:169 +#: proposals/forms.py:123 msgid "" "Vul hier de docent van de cursus in waarbinnen je deze portal moet " "doorlopen. De docent kan na afloop de aanvraag inkijken in de portal. De " @@ -1066,23 +1060,32 @@ msgstr "" "This application will not be published in the semipublic archive of the FEtC-" "H." -#: proposals/forms.py:221 +#: proposals/forms.py:148 msgid "Je dient een promotor/begeleider op te geven." msgstr "You are required to specify a promotor/supervisor." -#: proposals/forms.py:227 +#: proposals/forms.py:158 msgid "Je kunt niet jezelf als promotor/begeleider opgeven." msgstr "You cannot submit yourself as the promotor/supervisor." -#: proposals/forms.py:241 +#: proposals/forms.py:191 +msgid "" +"Zijn er nog andere onderzoekers bij deze aanvraag betrokken die " +"niet geaffilieerd zijn aan een van de onderzoeksinstituten " +"van de Faculteit Geestwetenschappen van de UU? " +msgstr "" +"Are there any other researchers involved outside the above-" +"mentioned institutes? " + +#: proposals/forms.py:244 msgid "Je hebt jezelf niet als onderzoekers geselecteerd." msgstr "You have not selected yourself." -#: proposals/forms.py:246 +#: proposals/forms.py:249 msgid "Je hebt geen andere onderzoekers geselecteerd." msgstr "You have not selected any other researchers." -#: proposals/forms.py:257 +#: proposals/forms.py:338 msgid "" "Dit veld is verplicht, maar je kunt later terugkomen om " "hem verder in te vullen." @@ -1090,7 +1093,7 @@ msgstr "" "This field is required, but you may choose to come back to this page later " "to fill it in." -#: proposals/forms.py:268 +#: proposals/forms.py:393 msgid "" "Indien je geen toestemming hebt van een andere ethische commissie, dien je " "het normale formulier in te vullen. Ga terug naar de startpagina, en " @@ -1103,23 +1106,23 @@ msgstr "" "page, and select \"Submit a new application that is completely new in this " "portal\" or \"from a copy of an old application.\"" -#: proposals/forms.py:300 +#: proposals/forms.py:408 msgid "Ik maak een oefenaanvraag aan" msgstr "I am creating a practice application" -#: proposals/forms.py:317 proposals/models.py:586 +#: proposals/forms.py:425 proposals/models.py:622 msgid "Te kopiëren aanvraag" msgstr "Application to be copied" -#: proposals/forms.py:319 proposals/models.py:588 +#: proposals/forms.py:427 proposals/models.py:624 msgid "Dit veld toont enkel aanvragen waar je zelf een medeuitvoerende bent." msgstr "This field shows only applications in which you are involved." -#: proposals/forms.py:361 +#: proposals/forms.py:469 msgid "Te reviseren aanvraag" msgstr "Application to be revised" -#: proposals/forms.py:363 +#: proposals/forms.py:471 msgid "" "Dit veld toont enkel ingediende, (nog) niet goedgekeurde aanvragen waar jij " "een medeuitvoerende bent." @@ -1127,70 +1130,76 @@ msgstr "" "This field only shows submitted applications that have not been approved " "(yet) in which you are involved." -#: proposals/forms.py:394 +#: proposals/forms.py:502 msgid "Te amenderen aanvraag" msgstr "Application to be amended" -#: proposals/forms.py:396 +#: proposals/forms.py:504 msgid "" "Dit veld toont enkel goedgekeurde aanvragen waar je zelf een medeuitvoerende " "bent." msgstr "This field shows only approved applications in which you are involved." -#: proposals/forms.py:454 proposals/forms.py:613 proposals/forms.py:645 -#: proposals/forms.py:767 +#: proposals/forms.py:563 proposals/forms.py:717 proposals/forms.py:749 +#: proposals/forms.py:926 msgid "Dit veld is verplicht om verder te gaan." msgstr "This field is required to continue." -#: proposals/forms.py:464 +#: proposals/forms.py:573 msgid "Je dient een instelling op te geven." msgstr "You are required to specify an institution." -#: proposals/forms.py:530 +#: proposals/forms.py:618 msgid "In dit geval is een beslissing van een METC vereist" msgstr "In this case, a decision by a METC is required" -#: proposals/forms.py:539 +#: proposals/forms.py:627 msgid "Naam traject 1" msgstr "Title of trajectory 1" -#: proposals/forms.py:542 +#: proposals/forms.py:631 +msgid "" +"Geef elk traject hieronder een behulpzame naam van maximaal 15 karakters." +msgstr "" +"Give each trajectory below a descriptive title of a maximum of 15 characters." + +#: proposals/forms.py:635 msgid "Naam traject 2" msgstr "Title of trajectory 2" -#: proposals/forms.py:545 +#: proposals/forms.py:638 msgid "Naam traject 3" msgstr "Title of trajectory 3" -#: proposals/forms.py:548 +#: proposals/forms.py:641 msgid "Naam traject 4" msgstr "Title of trajectory 4" -#: proposals/forms.py:551 +#: proposals/forms.py:644 msgid "Naam traject 5" msgstr "Title of trajectory 5" -#: proposals/forms.py:554 +#: proposals/forms.py:647 msgid "Naam traject 6" msgstr "Title of trajectory 6" -#: proposals/forms.py:557 +#: proposals/forms.py:650 msgid "Naam traject 7" msgstr "Title of trajectory 7" -#: proposals/forms.py:560 +#: proposals/forms.py:653 msgid "Naam traject 8" msgstr "Title of trajectory 8" -#: proposals/forms.py:563 +#: proposals/forms.py:656 msgid "Naam traject 9" msgstr "Title of trajectory 9" -#: proposals/forms.py:566 +#: proposals/forms.py:659 msgid "Naam traject 10" msgstr "Title of trajectory 10" -#: proposals/forms.py:621 +#: proposals/forms.py:725 msgid "" "Als niet dezelfde trajecten worden doorlopen, moeten er minstens twee " "verschillende trajecten zijn." @@ -1198,19 +1207,19 @@ msgstr "" "If different trajectories are used, at least two different trajectories " "should be filled in." -#: proposals/forms.py:656 +#: proposals/forms.py:760 msgid "Nieuwe beoogde startdatum" msgstr "New intended start date" -#: proposals/forms.py:723 +#: proposals/forms.py:828 msgid "Toestemmingsverklaring voor traject {} nog niet toegevoegd." msgstr "Declaration of consent for trajectory {} not yet added." -#: proposals/forms.py:730 +#: proposals/forms.py:835 msgid "Informatiebrief voor traject {} nog niet toegevoegd." msgstr "Information letter for trajectory {} not yet added." -#: proposals/forms.py:744 +#: proposals/forms.py:849 msgid "" "De embargo-periode kan maximaal 2 jaar zijn. Kies een datum binnen 2 jaar " "van vandaag." @@ -1218,7 +1227,7 @@ msgstr "" "The embargo-period can last a maximum of 2 years. Pick a date within 2 years " "from today." -#: proposals/forms.py:776 +#: proposals/forms.py:935 msgid "Vul in in welke talen de formulieren worden vertaald." msgstr "Please fill in the languages" @@ -1258,23 +1267,23 @@ msgstr "New application" msgid "Al mijn aanvragen" msgstr "All my applications" -#: proposals/menus.py:58 proposals/views/proposal_views.py:98 +#: proposals/menus.py:58 proposals/views/proposal_views.py:103 msgid "Mijn conceptaanvragen" msgstr "My draft applications" -#: proposals/menus.py:62 proposals/views/proposal_views.py:157 +#: proposals/menus.py:62 proposals/views/proposal_views.py:162 msgid "Mijn oefenaanvragen" msgstr "My practice applications" -#: proposals/menus.py:66 proposals/views/proposal_views.py:112 +#: proposals/menus.py:66 proposals/views/proposal_views.py:117 msgid "Mijn ingediende aanvragen" msgstr "My submitted applications" -#: proposals/menus.py:70 proposals/views/proposal_views.py:126 +#: proposals/menus.py:70 proposals/views/proposal_views.py:131 msgid "Mijn afgehandelde aanvragen" msgstr "My processed applications" -#: proposals/menus.py:74 proposals/views/proposal_views.py:140 +#: proposals/menus.py:74 proposals/views/proposal_views.py:145 msgid "Mijn aanvragen als eindverantwoordelijke" msgstr "My supervised applications" @@ -1294,11 +1303,6 @@ msgstr "View all approved applications of the Linguistics Chamber" msgid "Site-export" msgstr "Site-export" -#: proposals/mixins.py:21 -#, python-format -msgid "Aanvraag %(title)s bewerkt" -msgstr "Application %(title)s edited" - #: proposals/models.py:152 msgid "Concept" msgstr "Draft" @@ -1568,7 +1572,7 @@ msgstr "" "include it here. Supplying a DMP can expedite ethical assessment of " "proposals." -#: proposals/models.py:462 proposals/utils/pdf_diff_logic.py:983 +#: proposals/models.py:462 proposals/utils/pdf_diff_logic.py:1005 #: reviews/models.py:163 msgid "Ruimte voor eventuele opmerkingen" msgstr "Space for possible comments" @@ -1577,7 +1581,7 @@ msgstr "Space for possible comments" msgid "Datum bevestigingsbrief verstuurd" msgstr "Date confirmation sent" -#: proposals/models.py:479 reviews/forms.py:123 +#: proposals/models.py:479 reviews/forms.py:130 msgid "Is er een revisie geweest na het indienen van deze aanvraag?" msgstr "Has this proposal been amended after it was submitted?" @@ -1594,23 +1598,55 @@ msgstr "" "please describe briefly how you will address them. Use a maximum of a 1000 " "words." -#: proposals/models.py:505 +#: proposals/models.py:501 +msgid "Zijn er kwesties rondom kennisveiligheid?" +msgstr "Are there concerns about knowledge security?" + +#: proposals/models.py:504 +msgid "" +"Kennisveiligheid gaat over het tijdig signaleren en mitigeren van " +"veiligheidsrisico's bij wetenschappelijk onderzoek. Klik hier voor meer informatie." +msgstr "" +"Knowledge security is about the prompt detection and mitigation of security " +"risks in academic research. For more information, click here. " + +#: proposals/models.py:519 +msgid "" +"Zijn er kwesties rondom de veiligheid van of risico's voor de onderzoeker(s)?" +msgstr "Are there concerns about the safety of, or risks to researcher(s)?" + +#: proposals/models.py:522 +msgid "" +"Houd hierbij niet alleen rekening met mogelijke psychische of fysieke " +"schade, maar ook met andere mogelijke schade, zoals bijv. hiërarchische " +"machtsverhoudingen in veldwerk, mogelijke negatieve gevolgen voor de " +"zichtbaarheid/vindbaarheid van de onderzoeker in in het publieke domein, " +"juridische vervolging of aansprakelijkheid, e.d." +msgstr "" +"Consider not only potential psychological or physical harm, but also other " +"forms of harm, such as stigmatisation, (re)traumatisation, negative effect " +"on self-image, loss of privacy, coincidental findings, and legal prosecution " +"or liability." + +#: proposals/models.py:541 msgid "In welke hoedanigheid ben je betrokken bij dit onderzoek?" msgstr "In what capacity are you involved in this application?" -#: proposals/models.py:514 +#: proposals/models.py:550 msgid "Wat is je studierichting?" msgstr "What is your course of study?" -#: proposals/models.py:521 +#: proposals/models.py:557 msgid "In welke context doe je dit onderzoek?" msgstr "In what capacity are you involved in this application?" -#: proposals/models.py:528 +#: proposals/models.py:564 msgid "Namelijk:" msgstr "Please specify:" -#: proposals/models.py:536 +#: proposals/models.py:572 msgid "" "Studenten (die mensgebonden onderzoek uitvoeren binnen hun studieprogramma) " "hoeven in principe geen aanvraag in te dienen bij de FETC-GW. Bespreek met " @@ -1624,7 +1660,7 @@ msgstr "" "do not not, you can terminate your proposal now. If you do, please explain " "what the reason is:" -#: proposals/models.py:555 +#: proposals/models.py:591 msgid "" "Uitvoerenden, inclusief uzelf. Let op! De andere onderzoekers moeten " "ten minste één keer zijn ingelogd op dit portaal om ze te kunnen selecteren." @@ -1633,13 +1669,13 @@ msgstr "" "researchers need to have logged into this portal at least once, in order to " "be selectable here." -#: proposals/models.py:563 +#: proposals/models.py:599 #: proposals/templates/proposals/vue_templates/proposal_archive_list.html:115 #: proposals/templates/proposals/vue_templates/proposal_list.html:174 msgid "Promotor/Begeleider" msgstr "Promotor/Supervisor" -#: proposals/models.py:567 +#: proposals/models.py:603 msgid "" "Je aanvraag moet, als je alles hebt ingevuld, via de portal \n" " naar je promotor of begeleider gestuurd worden. Deze " @@ -1669,53 +1705,53 @@ msgstr "" "you wait for them to do this, but remember to come back and fill in this " "field before submitting." -#: proposals/models.py:594 +#: proposals/models.py:630 msgid "" "Is deze aanvraag een revisie van of amendement op een ingediende aanvraag?" msgstr "" "Is this application a revision or an amendment of a previously submitted " "application?" -#: proposals/models.py:677 +#: proposals/models.py:713 msgid "Amendement" msgstr "Amendment" -#: proposals/models.py:677 reviews/api/views.py:41 reviews/api/views.py:332 +#: proposals/models.py:713 reviews/api/views.py:41 reviews/api/views.py:332 #: reviews/templates/reviews/committee_members_workload.html:35 -#: reviews/templates/reviews/committee_members_workload.html:74 +#: reviews/templates/reviews/committee_members_workload.html:76 #: reviews/templates/reviews/review_detail_sidebar.html:108 msgid "Revisie" msgstr "Revision" -#: proposals/models.py:683 +#: proposals/models.py:719 msgid "Normaal" msgstr "Normal" -#: proposals/models.py:688 +#: proposals/models.py:724 msgid "Voortoetsing" msgstr "Preliminary assessment" -#: proposals/models.py:690 +#: proposals/models.py:726 msgid "Oefening" msgstr "Practice" -#: proposals/models.py:692 +#: proposals/models.py:728 msgid "Extern getoetst" msgstr "External approval" -#: proposals/models.py:777 +#: proposals/models.py:813 msgid "Geen beoordeling door METC noodzakelijk" msgstr "Assessment by METC not required" -#: proposals/models.py:778 +#: proposals/models.py:814 msgid "In afwachting beslissing METC" msgstr "Pending decision by METC" -#: proposals/models.py:779 +#: proposals/models.py:815 msgid "Beslissing METC geüpload" msgstr "METC decision uploaded" -#: proposals/models.py:783 +#: proposals/models.py:819 msgid "" "Vindt de dataverzameling plaats binnen het UMC Utrecht of andere instelling " "waar toetsing door een METC verplicht is gesteld?" @@ -1723,11 +1759,11 @@ msgstr "" "Will the data collection take place at the UMC Utrecht or another " "institution for which an assessment by a METC is required?" -#: proposals/models.py:798 +#: proposals/models.py:834 msgid "Welke instelling?" msgstr "Which institution?" -#: proposals/models.py:805 +#: proposals/models.py:841 msgid "" "Is de onderzoeksvraag medisch-wetenschappelijk van aard (zoals gedefinieerd " "door de WMO)?" @@ -1735,7 +1771,7 @@ msgstr "" "Is the nature of the research question medical (as defined by the Medical " "Research Involving Human Subjects Act (WMO))?" -#: proposals/models.py:809 +#: proposals/models.py:845 msgid "" "De definitie van medisch-wetenschappelijk onderzoek is: Medisch-" "wetenschappelijk onderzoek is onderzoek dat als doel heeft het beantwoorden " @@ -1756,7 +1792,7 @@ msgstr "" "Committee on Research Involving Human Subjects, Definition of medical " "research, 2005, ccmo.nl)" -#: proposals/models.py:826 +#: proposals/models.py:862 msgid "" "Je onderzoek moet beoordeeld worden door een METC, maar dient nog wel bij de " "FETC-GW te worden geregistreerd. Is dit onderzoek al aangemeld bij een METC?" @@ -1765,15 +1801,15 @@ msgstr "" "registered with the FEtC-H. Has an application for this project already been " "submitted to an METC?" -#: proposals/models.py:834 +#: proposals/models.py:870 msgid "Is de METC al tot een beslissing gekomen?" msgstr "Has the METC already come to a decision?" -#: proposals/models.py:840 +#: proposals/models.py:876 msgid "Upload hier de beslissing van het METC (in .pdf of .doc(x)-formaat)" msgstr "Please upload the decision of METC (in .pdf or .doc(x)-format) here" -#: proposals/models.py:886 +#: proposals/models.py:922 #, python-brace-format msgid "WMO {title}, status {status}" msgstr "WMO {title}, status {status}" @@ -1825,6 +1861,50 @@ msgstr "Old" msgid "Nieuw" msgstr "New" +#: proposals/templates/proposals/funding_form.html:7 +#: proposals/templates/proposals/funding_form.html:21 +#: proposals/utils/proposal_utils.py:68 +msgid "Informatie over financiering" +msgstr "Funding information" + +#: proposals/templates/proposals/knowledge_security_form.html:7 +#: proposals/templates/proposals/knowledge_security_form.html:21 +msgid "Afronding trajecten" +msgstr "Trajectories conclusion" + +#: proposals/templates/proposals/other_researchers_form.html:7 +#: proposals/templates/proposals/other_researchers_form.html:21 +#: proposals/utils/proposal_utils.py:60 +msgid "Informatie over betrokken onderzoekers" +msgstr "Information about other researchers" + +#: proposals/templates/proposals/practice_or_supervisor_warning.html:7 +msgid "" +"Je past nu een aanvraag aan van een student/PhD kandidaat onder jouw " +"supervisie. Let er op dat je het formulier invult alsof jij die student/PhD " +"kandidaat bent." +msgstr "" +"You are editing a application from a student/PhD candidate under your " +"supervision. Please note that this form should be filled in as if you were " +"that student/PhD candidate. " + +#: proposals/templates/proposals/practice_or_supervisor_warning.html:17 +msgid "" +"Je bewerkt op het moment een oefenaanvraag. Deze kan niet ter beoordeling " +"door de FETC-GW worden ingediend." +msgstr "" +"You are currently editing a practice application. These can not be submitted " +"to the FETC-H for review." + +#: proposals/templates/proposals/pre_approved_form.html:7 +#: proposals/utils/proposal_utils.py:98 +msgid "Informatie over eerdere toetsing" +msgstr "Information about prior approval" + +#: proposals/templates/proposals/pre_approved_form.html:11 +msgid "Informatie over eerdere toesting" +msgstr "Information about prior approval" + #: proposals/templates/proposals/proposal_confirm_delete.html:6 #: proposals/templates/proposals/proposal_confirm_delete.html:12 msgid "Aanvraag verwijderen" @@ -1849,7 +1929,7 @@ msgstr "Delete" msgid "Annuleren" msgstr "Cancel" -#: proposals/templates/proposals/proposal_confirmation.html:27 +#: proposals/templates/proposals/proposal_confirmation.html:15 #, python-format msgid "" "Geef hieronder aan wanneer de bevestigingsbrief voor de aanvraag " @@ -1965,15 +2045,15 @@ msgid "Kopiëren" msgstr "Copy" #: proposals/templates/proposals/proposal_data_management.html:7 -#: proposals/utils/proposal_utils.py:118 +#: proposals/utils/proposal_utils.py:136 proposals/utils/stepper.py:201 msgid "Datamanagement" msgstr "Data management" -#: proposals/templates/proposals/proposal_data_management.html:16 +#: proposals/templates/proposals/proposal_data_management.html:11 msgid "Datamanagement en Privacy" msgstr "Data Management and Privacy" -#: proposals/templates/proposals/proposal_data_management.html:18 +#: proposals/templates/proposals/proposal_data_management.html:13 msgid "" "De Universiteit Utrecht streeft naar integriteit, duurzaamheid, en " "transparantie in de omgang met onderzoeksdata, waaronder persoonsgegevens. " @@ -1985,13 +2065,13 @@ msgstr "" "introduction of the GDPR there are clear rules which researchers should " "follow with regard to data." -#: proposals/templates/proposals/proposal_data_management.html:22 -#: proposals/utils/pdf_diff_logic.py:958 +#: proposals/templates/proposals/proposal_data_management.html:17 +#: proposals/utils/pdf_diff_logic.py:980 #: reviews/templatetags/documents_list.py:224 msgid "Data Management Plan" msgstr "Data Management Plan" -#: proposals/templates/proposals/proposal_data_management.html:25 +#: proposals/templates/proposals/proposal_data_management.html:20 msgid "" "Een data management plan is sinds 2020 required by the Faculty of Humanities from 2020 " "onwards as well as by NWO or ERC if you are financed by these organizations. " -#: proposals/templates/proposals/proposal_data_management.html:32 +#: proposals/templates/proposals/proposal_data_management.html:27 msgid "" "De faculteit biedt uitgebreide informatie op het gebied van data management, " "waaronder ook Research Data Management Support or the faculty data manager. " -#: proposals/templates/proposals/proposal_data_management.html:41 +#: proposals/templates/proposals/proposal_data_management.html:36 msgid "" "Op de website DMP-" "online vind je na het inloggen met je Solis-ID templates voor een DMP. " @@ -2036,17 +2116,17 @@ msgstr "" "Solis-ID. This is where you can find DMP templates mandated by NWO or ERC " "funding, provided by Utrecht University." -#: proposals/templates/proposals/proposal_data_management.html:46 +#: proposals/templates/proposals/proposal_data_management.html:41 msgid "Nuttige workshops:" msgstr "Recommended workshops" -#: proposals/templates/proposals/proposal_data_management.html:48 +#: proposals/templates/proposals/proposal_data_management.html:43 msgid "" "Als je dit nog niet gedaan hebt, wordt er sterk aangeraden om de volgende " "workshop te volgen:" msgstr "If you have not already done so, it is highly recommended you attend: " -#: proposals/templates/proposals/proposal_data_management.html:53 +#: proposals/templates/proposals/proposal_data_management.html:48 msgid "" "
  • de workshop Quick start to Research Data Management
  • " @@ -2054,7 +2134,7 @@ msgstr "" "
  • the workshop Quick start to Research Data Management
  • " -#: proposals/templates/proposals/proposal_data_management.html:61 +#: proposals/templates/proposals/proposal_data_management.html:56 msgid "" "Voor advies op het gebied van data management planning kun je contact " "opnemen met de datamanager GW, Frans de Liagre Böhl via datamanagement.gw@uu.nl, who is the data manager of " "the Faculty of Humanities." -#: proposals/templates/proposals/proposal_data_management.html:65 +#: proposals/templates/proposals/proposal_data_management.html:60 msgid "Privacy: AVG en GDPR" msgstr "Privacy: AVG and GDPR" -#: proposals/templates/proposals/proposal_data_management.html:67 +#: proposals/templates/proposals/proposal_data_management.html:62 msgid "" "Wanneer je persoonsgebonden data verzamelt, zorg je er voor dat je je houdt " "aan de Algemene Verordening Gegevensbescherming, of AVG. Deze wet is de " @@ -2082,7 +2162,7 @@ msgstr "" "regulation is in line with European GDPR privacy legislation." -#: proposals/templates/proposals/proposal_data_management.html:73 +#: proposals/templates/proposals/proposal_data_management.html:68 msgid "" "De autoriteit persoonsgegevens heeft Data Privacy Handbook." -#: proposals/templates/proposals/proposal_data_management.html:87 +#: proposals/templates/proposals/proposal_data_management.html:82 msgid "" "Voor advies op het gebied van privacy en de AVG kun je contact opnemen met " "de privacy officer van GW via privacy." @@ -2137,24 +2217,14 @@ msgstr "" "to the original application." #: proposals/templates/proposals/proposal_form.html:7 -#: proposals/templates/proposals/proposal_form.html:94 +#: proposals/templates/proposals/proposal_form.html:65 #: proposals/templates/proposals/proposal_form_pre_approved.html:7 #: proposals/templates/proposals/proposal_form_pre_approved.html:83 -#: proposals/utils/pdf_diff_logic.py:417 proposals/utils/proposal_utils.py:47 -#: proposals/utils/proposal_utils.py:68 proposals/utils/validate_proposal.py:41 -#: proposals/utils/validate_proposal.py:51 -#: proposals/utils/validate_proposal.py:58 -#: proposals/utils/validate_proposal.py:65 +#: proposals/utils/pdf_diff_logic.py:417 proposals/utils/proposal_utils.py:46 msgid "Algemene informatie over de aanvraag" msgstr "General information about the application" -#: proposals/templates/proposals/proposal_form.html:29 -#: proposals/templates/proposals/proposal_form_pre_approved.html:74 -#: proposals/templates/proposals/proposal_submit.html:35 -msgid "Aantal woorden:" -msgstr "Number of words:" - -#: proposals/templates/proposals/proposal_form.html:41 +#: proposals/templates/proposals/proposal_form.html:28 msgid "" "Als de beoogde startdatum binnen twee weken van het indienen van de aanvraag " "ligt, kan de FETC geen officiële goedkeuring meer geven." @@ -2162,24 +2232,11 @@ msgstr "" "If the intended start date lies within two weeks of submission, the FETC-H " "will not be able to provide official approval for this proposal." -#: proposals/templates/proposals/proposal_form.html:80 -msgid "" -"Je past nu een aanvraag aan van een student/PhD kandidaat onder jouw " -"supervisie. Let er op dat je het formulier invult alsof jij die student/PhD " -"kandidaat bent." -msgstr "" -"You are editing a application from a student/PhD candidate under your " -"supervision. Please note that this form should be filled in as if you were " -"that student/PhD candidate. " - -#: proposals/templates/proposals/proposal_form.html:88 -#: proposals/templates/proposals/proposal_submit.html:163 -msgid "" -"Je bewerkt op het moment een oefenaanvraag. Deze kan niet ter beoordeling " -"door de FETC-GW worden ingediend." -msgstr "" -"You are currently editing a practice application. These can not be submitted " -"to the FETC-H for review." +#: proposals/templates/proposals/proposal_form_pre_approved.html:74 +#: proposals/templates/proposals/proposal_submit.html:36 +#: proposals/templates/proposals/research_goal_form.html:18 +msgid "Aantal woorden:" +msgstr "Number of words:" #: proposals/templates/proposals/proposal_form_pre_approved.html:85 msgid "" @@ -2393,7 +2450,7 @@ msgstr "" #: proposals/templates/proposals/proposal_start.html:43 #: proposals/templates/proposals/proposal_start_practice.html:43 -#: proposals/templates/proposals/study_start.html:65 +#: proposals/templates/proposals/study_start.html:61 msgid "" "Een voorstel is opgebouwd uit (van groot naar klein) (i) trajecten, (ii) " "sessies, (iii) taken." @@ -2403,7 +2460,7 @@ msgstr "" #: proposals/templates/proposals/proposal_start.html:49 #: proposals/templates/proposals/proposal_start_practice.html:49 -#: proposals/templates/proposals/study_start.html:71 +#: proposals/templates/proposals/study_start.html:67 #: proposals/utils/pdf_diff_logic.py:326 #: reviews/templates/reviews/committee_members_workload.html:23 msgid "Traject" @@ -2411,7 +2468,7 @@ msgstr "Trajectory" #: proposals/templates/proposals/proposal_start.html:50 #: proposals/templates/proposals/proposal_start_practice.html:50 -#: proposals/templates/proposals/study_start.html:72 +#: proposals/templates/proposals/study_start.html:68 msgid "" "Als je met verschillende deelnemersgroepen werkt die een verschillend " "onderzoekstraject doorlopen waarvoor verschillende informed consent " @@ -2423,7 +2480,7 @@ msgstr "" #: proposals/templates/proposals/proposal_start.html:54 #: proposals/templates/proposals/proposal_start_practice.html:54 -#: proposals/templates/proposals/study_start.html:76 +#: proposals/templates/proposals/study_start.html:72 msgid "" "Bijvoorbeeld: ouders van leerlingen 15 jaar en jonger, docenten, een " "controlegroep en een experimentele groep die verschillende taken krijgen." @@ -2433,28 +2490,28 @@ msgstr "" #: proposals/templates/proposals/proposal_start.html:60 #: proposals/templates/proposals/proposal_start_practice.html:60 -#: proposals/templates/proposals/study_start.html:82 +#: proposals/templates/proposals/study_start.html:78 msgid "Sessie" msgstr "Session" #: proposals/templates/proposals/proposal_start.html:61 #: proposals/templates/proposals/proposal_start_practice.html:61 -#: proposals/templates/proposals/study_start.html:83 +#: proposals/templates/proposals/study_start.html:79 msgid "Alle taken/onderdelen die iemand op één dag uitvoert." msgstr "" "All tasks or procedures that a participant completes in a day combined. " #: proposals/templates/proposals/proposal_start.html:66 #: proposals/templates/proposals/proposal_start_practice.html:66 -#: proposals/templates/proposals/study_start.html:88 -#: tasks/templates/tasks/task_list.html:8 -#: tasks/templates/tasks/task_list.html:23 +#: proposals/templates/proposals/study_start.html:84 +#: tasks/templates/tasks/task_list.html:9 +#: tasks/templates/tasks/task_list.html:24 msgid "Taak" msgstr "Task" #: proposals/templates/proposals/proposal_start.html:67 #: proposals/templates/proposals/proposal_start_practice.html:67 -#: proposals/templates/proposals/study_start.html:89 +#: proposals/templates/proposals/study_start.html:85 msgid "" "Een taak of onderdeel van je onderzoek.

    Bijvoorbeeld: het " "invullen van een vragenlijst, een interview, of een taaltest.

    " @@ -2465,10 +2522,8 @@ msgstr "" #: proposals/templates/proposals/proposal_start.html:76 #: proposals/templates/proposals/proposal_start_pre_approved.html:37 #: proposals/templates/proposals/proposal_start_pre_assessment.html:43 -#, fuzzy -#| msgid "Naar volgende stap" msgid "Volgende stap >>" -msgstr "To next step" +msgstr "Next step >>" #: proposals/templates/proposals/proposal_start_practice.html:7 #: proposals/templates/proposals/proposal_start_practice.html:13 @@ -2568,27 +2623,27 @@ msgstr "" "process." #: proposals/templates/proposals/proposal_submit.html:8 -#: proposals/templates/proposals/proposal_submit.html:49 -#: proposals/utils/proposal_utils.py:59 proposals/utils/proposal_utils.py:73 +#: proposals/templates/proposals/proposal_submit.html:45 +#: proposals/utils/proposal_utils.py:89 proposals/utils/proposal_utils.py:103 msgid "Aanvraag voor voortoetsing klaar voor versturen" msgstr "Application for preliminary assessment ready to submit" #: proposals/templates/proposals/proposal_submit.html:10 -#: proposals/templates/proposals/proposal_submit.html:51 +#: proposals/templates/proposals/proposal_submit.html:47 msgid "Concept-aanmelding klaar voor versturen" msgstr "Draft application ready to submit" #: proposals/templates/proposals/proposal_submit.html:12 -#: proposals/templates/proposals/proposal_submit.html:53 +#: proposals/templates/proposals/proposal_submit.html:49 msgid "Aanmelding klaar voor versturen" msgstr "Application ready to submit" -#: proposals/templates/proposals/proposal_submit.html:58 +#: proposals/templates/proposals/proposal_submit.html:54 msgid "Je aanvraag voor voortoetsing is compleet." msgstr "Your application for preliminary assessment is complete." -#: proposals/templates/proposals/proposal_submit.html:61 -#: proposals/templates/proposals/proposal_submit.html:76 +#: proposals/templates/proposals/proposal_submit.html:57 +#: proposals/templates/proposals/proposal_submit.html:72 msgid "" "Als je er zeker van bent dat je aanvraag op adequate wijze is gespecifieerd " "kan je de aanmelding nu ter beoordeling naar de FETC-GW versturen." @@ -2596,21 +2651,21 @@ msgstr "" "If you are sure your application is adequately described, you can now submit " "the application to the FEtC-H for assessment." -#: proposals/templates/proposals/proposal_submit.html:66 +#: proposals/templates/proposals/proposal_submit.html:62 msgid "Je concept-aanmelding is compleet." msgstr "Your draft application is complete." -#: proposals/templates/proposals/proposal_submit.html:69 +#: proposals/templates/proposals/proposal_submit.html:65 msgid "" "Je kan nu je concept-aanmelding ter beoordeling naar je supervisor versturen." msgstr "" "You can now send your draft application to your supervisor for assessment." -#: proposals/templates/proposals/proposal_submit.html:73 +#: proposals/templates/proposals/proposal_submit.html:69 msgid "Je aanmelding is compleet." msgstr "Your application is complete." -#: proposals/templates/proposals/proposal_submit.html:83 +#: proposals/templates/proposals/proposal_submit.html:79 msgid "" "Als je de aanmelding eerst nog even wilt nakijken kan dat door via \"Terug " "naar begin van de aanvraag\" alle pagina's nog even door te lopen, of " @@ -2620,7 +2675,7 @@ msgstr "" "the beginning of the study\" to go through all pages again, or use the " "navigation menu at the top of the page." -#: proposals/templates/proposals/proposal_submit.html:90 +#: proposals/templates/proposals/proposal_submit.html:86 msgid "" "Als je de aanmelding nu nog niet wilt versturen kan je gewoon teruggaan naar " "de startpagina; de concept-aanvraag wordt dan bewaard voor eventuele latere " @@ -2630,7 +2685,7 @@ msgstr "" "start page; the draft application can be saved for any later changes and " "submission." -#: proposals/templates/proposals/proposal_submit.html:100 +#: proposals/templates/proposals/proposal_submit.html:96 #, python-format msgid "" "Je hebt nog geen toestemmingsverklaring of informatiebrief toegevoegd voor " @@ -2645,7 +2700,7 @@ msgstr "" "you can return later; your application has already been saved and can be " "found under \"My drafts\"." -#: proposals/templates/proposals/proposal_submit.html:112 +#: proposals/templates/proposals/proposal_submit.html:108 #, python-format msgid "" "Je hebt aangeven dat je interventie een extra taak heeft, maar nog geen " @@ -2656,11 +2711,11 @@ msgstr "" "the task-based research form is missing for trajectory %(study_order)s.You " "can add it on
    this page." -#: proposals/templates/proposals/proposal_submit.html:125 +#: proposals/templates/proposals/proposal_submit.html:120 msgid "Er zijn nog errors gevonden op de volgende pagina's:" msgstr "Errors were found on the following pages:" -#: proposals/templates/proposals/proposal_submit.html:136 +#: proposals/templates/proposals/proposal_submit.html:131 msgid "" "Dit komt waarschijnlijk doordat je nog niet alle verplichte velden heeft " "ingevuld. Je kan je aanmelding pas versturen wanneer deze fouten " @@ -2669,11 +2724,11 @@ msgstr "" "This is probably because you have not yet filled in all required fields. You " "can submit your application when these errors have been corrected." -#: proposals/templates/proposals/proposal_submit.html:144 +#: proposals/templates/proposals/proposal_submit.html:139 msgid "Controleer uw beoogde startdatum" msgstr "Check your intended start date" -#: proposals/templates/proposals/proposal_submit.html:146 +#: proposals/templates/proposals/proposal_submit.html:141 msgid "" "Omdat de beoogde startdatum binnen twee weken van vandaag ligt, kan de FETC " "helaas geen officiële goedkeuring meer geven voor deze aanvraag. Controleer " @@ -2683,7 +2738,7 @@ msgstr "" "of today, the FETC-H will not be able to provide official approval for this " "application. Please make sure the entered date is still correct." -#: proposals/templates/proposals/proposal_submit.html:150 +#: proposals/templates/proposals/proposal_submit.html:145 #, python-format msgid "" "De beoogde startdatum vindt u op deze paginathis " "page." -#: proposals/templates/proposals/proposal_submit.html:170 +#: proposals/templates/proposals/proposal_submit.html:159 msgid "Aanvraag voor voortoetsing versturen" msgstr "Submit application for preliminary assessment" -#: proposals/templates/proposals/proposal_submit.html:172 +#: proposals/templates/proposals/proposal_submit.html:161 msgid "Terug naar beoordeling >>" msgstr "Back to review >>" -#: proposals/templates/proposals/proposal_submit.html:174 +#: proposals/templates/proposals/proposal_submit.html:163 msgid "Concept-aanmelding versturen" msgstr "Submit draft application" -#: proposals/templates/proposals/proposal_submit.html:176 -#: proposals/utils/pdf_diff_logic.py:966 +#: proposals/templates/proposals/proposal_submit.html:165 +#: proposals/utils/pdf_diff_logic.py:988 msgid "Aanmelding versturen" msgstr "Submit application" @@ -2749,17 +2804,8 @@ msgstr "" "Click here to see your submitted " "applications." -#: proposals/templates/proposals/proposal_update_attachments.html:15 -#, python-format -msgid "" -"Op deze pagina kan je de formulieren aanpassen behorende bij de aanvraag " -"%(title)s (referentienummer %(ref_number)s)." -msgstr "" -"On this page you can edit the forms related to the proposal " -"%(title)s(reference number %(ref_number)s)" - #: proposals/templates/proposals/proposal_update_date_start.html:13 -#: proposals/templates/proposals/proposal_update_date_start.html:31 +#: proposals/templates/proposals/proposal_update_date_start.html:29 msgid "Startdatum aanpassen" msgstr "Edit start date" @@ -2778,6 +2824,27 @@ msgstr "" "If you would like the PDF to be generated with the new start date, please " "reach out to " +#: proposals/templates/proposals/proposal_update_dmp.html:15 +#, python-format +msgid "" +"Op deze pagina kan je de formulieren aanpassen behorende bij de aanvraag " +"%(title)s (referentienummer %(ref_number)s)." +msgstr "" +"On this page you can edit the forms related to the proposal " +"%(title)s(reference number %(ref_number)s)" + +#: proposals/templates/proposals/research_goal_form.html:7 +#: proposals/templates/proposals/research_goal_form.html:26 +#: proposals/utils/proposal_utils.py:75 +msgid "Informatie over het onderzoeksdoel" +msgstr "Information about the reseach goal" + +#: proposals/templates/proposals/researcher_form.html:7 +#: proposals/templates/proposals/researcher_form.html:24 +#: proposals/utils/proposal_utils.py:53 +msgid "Informatie over de onderzoeker" +msgstr "Information about the researcher" + #: proposals/templates/proposals/study_consent.html:27 msgid "Toestemmingsverklaring van de schoolleider/hoofd van het departement" msgstr "Informed consent school director/ head of the institution" @@ -2851,26 +2918,19 @@ msgid "Extra formulieren" msgstr "Additional forms" #: proposals/templates/proposals/study_start.html:7 -#: proposals/templates/proposals/study_start.html:63 +#: proposals/templates/proposals/study_start.html:59 #: proposals/utils/pdf_diff_logic.py:519 -#: proposals/utils/validate_proposal.py:95 msgid "Eén of meerdere trajecten?" msgstr "One or more trajectories?" -#: proposals/templates/proposals/study_start.html:13 -msgid "" -"Geef elk traject hieronder een behulpzame naam van maximaal 15 karakters." -msgstr "" -"Give each trajectory below a descriptive title of a maximum of 15 characters." - -#: proposals/templates/proposals/study_start.html:56 +#: proposals/templates/proposals/study_start.html:12 msgid "" "Je kan de aard van de aanvraag nu in detail op de volgende pagina's " "specificeren." msgstr "" "You can now describe the details of the application on the following pages." -#: proposals/templates/proposals/study_start.html:57 +#: proposals/templates/proposals/study_start.html:13 msgid "" "Je kan de aard van de aanvraag nu per traject in detail op de " "volgende pagina's specificeren." @@ -2886,12 +2946,11 @@ msgstr "Previous application" msgid "Huidige aanvraag" msgstr "Current application" -#: proposals/templates/proposals/translated_consent_forms.html:24 -#: proposals/utils/validate_proposal.py:231 +#: proposals/templates/proposals/translated_consent_forms.html:20 msgid "Vertaling informed consent formulieren" msgstr "Translation of informed consent forms" -#: proposals/templates/proposals/translated_consent_forms.html:26 +#: proposals/templates/proposals/translated_consent_forms.html:22 msgid "" "Documenten moet in het Nederlands of in het Engels worden ingediend. Echter, " "om je deelnemers op een adequate manier te informeren kan het noodzakelijk " @@ -3007,6 +3066,90 @@ msgid "" msgstr "" "Ethical assessment by a Medical Ethical Testing Committee (METC) required?" +#: proposals/utils/checkers.py:49 proposals/utils/stepper.py:197 +#: proposals/utils/stepper.py:206 proposals/utils/stepper.py:211 +msgid "Basisgegevens" +msgstr "Basic details" + +#: proposals/utils/checkers.py:83 +msgid "Onderzoeker" +msgstr "Researcher" + +#: proposals/utils/checkers.py:100 +msgid "Andere onderzoekers" +msgstr "Other researchers" + +#: proposals/utils/checkers.py:129 +msgid "Financiering" +msgstr "Funding" + +#: proposals/utils/checkers.py:151 +msgid "Onderzoeksdoel" +msgstr "Research goal" + +#: proposals/utils/checkers.py:176 +msgid "Eerdere toetsing" +msgstr "Prior approval" + +#: proposals/utils/checkers.py:275 +msgid "WMO applicatie" +msgstr "WMO application" + +#: proposals/utils/checkers.py:304 proposals/utils/proposal_utils.py:116 +#: proposals/utils/stepper.py:199 +msgid "Trajecten" +msgstr "Trajectories" + +#: proposals/utils/checkers.py:358 +msgid "Traject afronding" +msgstr "Conclusion trajectory" + +#: proposals/utils/checkers.py:362 +msgid "Trajecten afronding" +msgstr "Conclusion trajectories" + +#: proposals/utils/checkers.py:449 studies/utils.py:67 +msgid "Deelnemers" +msgstr "Participants" + +#: proposals/utils/checkers.py:488 +msgid "Ontwerp" +msgstr "Design" + +#: proposals/utils/checkers.py:519 +msgid "Traject overzicht" +msgstr "Trajectory overview" + +#: proposals/utils/checkers.py:554 +msgid "Interventie" +msgstr "Intervention" + +#: proposals/utils/checkers.py:612 +msgid "Observatie" +msgstr "Observation" + +#: proposals/utils/checkers.py:670 +msgid "Sessies" +msgstr "Sessions" + +#: proposals/utils/checkers.py:815 proposals/utils/stepper.py:200 +#: reviews/templates/reviews/review_detail_sidebar.html:124 +msgid "Documenten" +msgstr "Documents" + +#: proposals/utils/checkers.py:826 +msgid "Vertalingen" +msgstr "Translations" + +#: proposals/utils/checkers.py:849 +msgid "Data management" +msgstr "Data management" + +#: proposals/utils/checkers.py:875 proposals/utils/stepper.py:202 +#: proposals/utils/stepper.py:207 proposals/utils/stepper.py:213 +msgid "Indienen" +msgstr "Submit" + #: proposals/utils/pdf_diff_logic.py:94 msgid "" "Dit onderdeel is nieuw in de revisie en bestond niet in de originele " @@ -3058,7 +3201,7 @@ msgstr ", task " #: proposals/utils/pdf_diff_logic.py:537 #: studies/templates/studies/study_form.html:7 -#: studies/templates/studies/study_form.html:80 +#: studies/templates/studies/study_form.html:67 msgid "De deelnemers" msgstr "Participants" @@ -3071,123 +3214,96 @@ msgstr "Task-based research and interviews" msgid "Overzicht en eigen beoordeling van het gehele onderzoek" msgstr "Overview and self-assessment of the entire study" -#: proposals/utils/pdf_diff_logic.py:934 +#: proposals/utils/pdf_diff_logic.py:860 +msgid "Kennisveiligheid en risico onderzoekers" +msgstr "Knowledge security and researcher risk" + +#: proposals/utils/pdf_diff_logic.py:956 msgid "Extra formulieren " msgstr "Additional forms " -#: proposals/utils/proposal_utils.py:51 proposals/utils/validate_proposal.py:77 -#: proposals/utils/validate_proposal.py:84 +#: proposals/utils/proposal_utils.py:81 msgid "Ethische toetsing nodig door een METC?" msgstr "Ethical assessment by a METC necessary?" -#: proposals/utils/proposal_utils.py:87 -msgid "Algemeen" -msgstr "General" - -#: proposals/utils/proposal_utils.py:91 +#: proposals/utils/proposal_utils.py:109 msgid "METC" msgstr "METC" -#: proposals/utils/proposal_utils.py:98 -msgid "Trajecten" -msgstr "Trajectories" - -#: proposals/utils/proposal_utils.py:108 +#: proposals/utils/proposal_utils.py:126 msgid "Uploaden" msgstr "Upload" -#: proposals/utils/proposal_utils.py:111 +#: proposals/utils/proposal_utils.py:129 msgid "Vertaling" msgstr "Translation" -#: proposals/utils/proposal_utils.py:115 +#: proposals/utils/proposal_utils.py:133 msgid "Formulieren" msgstr "Forms" -#: proposals/utils/proposal_utils.py:119 +#: proposals/utils/proposal_utils.py:137 msgid "Versturen" msgstr "Submit" -#: proposals/utils/proposal_utils.py:417 +#: proposals/utils/proposal_utils.py:435 msgid "FETC-GW: gereviseerde aanvraag gebruikt labfaciliteiten" msgstr "FEtC-H: A revised application uses lab facilities" -#: proposals/utils/proposal_utils.py:419 +#: proposals/utils/proposal_utils.py:437 msgid "FETC-GW: nieuwe aanvraag gebruikt labfaciliteiten" msgstr "FEtC-H: New application uses lab facilities" -#: proposals/utils/validate_proposal.py:106 -msgid "De deelnemers (traject {})" -msgstr "Participants (trajectory {})" - -#: proposals/utils/validate_proposal.py:114 -msgid "De onderzoekstype(n) (traject {})" -msgstr "Type(s) of research (trajectory {})" - -#: proposals/utils/validate_proposal.py:124 -#: proposals/utils/validate_proposal.py:133 -msgid "Het interventieonderzoek (traject {})" -msgstr "Intervention study (trajectory {})" - -#: proposals/utils/validate_proposal.py:145 -#: proposals/utils/validate_proposal.py:154 -msgid "Het observatieonderzoek (traject {})" -msgstr "Observational study (trajectory {})" +#: proposals/utils/stepper.py:198 proposals/utils/stepper.py:212 +msgid "WMO" +msgstr "WMO" -#: proposals/utils/validate_proposal.py:172 -msgid "Overzicht van het takenonderzoek (traject {})" -msgstr "Overview of task-based research (trajectory {})" - -#: proposals/utils/validate_proposal.py:187 -msgid "Het takenonderzoek: sessie {} (traject {})" -msgstr "Task-based research: session {} trajectory {}" - -#: proposals/utils/validate_proposal.py:204 -msgid "Het takenonderzoek: sessie {} taak {} (traject {})" -msgstr "Task-based research: session {} task {} (trajectory {})" +#: proposals/utils/validate_sessions_tasks.py:27 tasks/models.py:69 +msgid "Sessie {}" +msgstr "Session {}" -#: proposals/utils/validate_proposal.py:221 -msgid "Overzicht van takenonderzoek: sessie {} (traject {})" -msgstr "Overview of task-based research: session {} (trajectory {})" +#: proposals/utils/validate_sessions_tasks.py:37 +msgid "Sessie {}, taak {}" +msgstr "Session {}, task {}" -#: proposals/utils/validate_proposal.py:238 -msgid "AVG en Data Management" -msgstr "AVG and Data Management" +#: proposals/utils/validate_sessions_tasks.py:48 +msgid "Sessie {} overzicht" +msgstr "Session {} overview" -#: proposals/views/proposal_views.py:63 +#: proposals/views/proposal_views.py:68 msgid "Publiek archief" msgstr "Public archive" -#: proposals/views/proposal_views.py:64 +#: proposals/views/proposal_views.py:69 msgid "Dit overzicht toont alle goedgekeurde aanvragen." msgstr "This overview shows all approved applications." -#: proposals/views/proposal_views.py:83 +#: proposals/views/proposal_views.py:88 msgid "Mijn aanvraag" msgstr "My application" -#: proposals/views/proposal_views.py:84 +#: proposals/views/proposal_views.py:89 msgid "Dit overzicht toont al je aanvragen." msgstr "This overview shows all your applications." -#: proposals/views/proposal_views.py:99 +#: proposals/views/proposal_views.py:104 msgid "Dit overzicht toont al je nog niet ingediende aanvragen." msgstr "This overview shows all the applications you have not yet submitted." -#: proposals/views/proposal_views.py:113 +#: proposals/views/proposal_views.py:118 msgid "Dit overzicht toont al je ingediende aanvragen." msgstr "This overview shows all the applications you have submitted." -#: proposals/views/proposal_views.py:127 +#: proposals/views/proposal_views.py:132 msgid "Dit overzicht toont al je beoordeelde aanvragen." msgstr "This overview shows all your applications that have been assessed." -#: proposals/views/proposal_views.py:142 +#: proposals/views/proposal_views.py:147 msgid "" "Dit overzicht toont alle aanvragen waarvan je eindverantwoordelijke bent." msgstr "This overview shows all your supervised applications." -#: proposals/views/proposal_views.py:159 +#: proposals/views/proposal_views.py:164 msgid "" "Dit overzicht toont alle oefenaanvragen waar je als student, onderzoeker of " "eindverantwoordelijke bij betrokken bent." @@ -3195,42 +3311,47 @@ msgstr "" "This overview shows all practice applications in which you are involved as a " "student, researcher or accountable researcher." -#: proposals/views/proposal_views.py:279 +#: proposals/views/proposal_views.py:244 +#, python-format +msgid "Aanvraag %(title)s aangemaakt" +msgstr "Application %(title)s created" + +#: proposals/views/proposal_views.py:302 msgid "Aanvraag verwijderd" msgstr "Application deleted" -#: proposals/views/proposal_views.py:452 +#: proposals/views/proposal_views.py:587 msgid "Wijzigingen opgeslagen" msgstr "Changes saved" -#: proposals/views/proposal_views.py:556 +#: proposals/views/proposal_views.py:690 msgid "Aanvraag gekopieerd" msgstr "Application copied" -#: proposals/views/study_views.py:62 +#: proposals/views/study_views.py:67 msgid "Consent opgeslagen" msgstr "Consent saved" -#: proposals/views/wmo_views.py:56 +#: proposals/views/wmo_views.py:61 msgid "WMO-gegevens opgeslagen" msgstr "WMO information saved" -#: proposals/views/wmo_views.py:69 +#: proposals/views/wmo_views.py:78 msgid "WMO-gegevens bewerkt" msgstr "WMO information edited" -#: proposals/views/wmo_views.py:156 +#: proposals/views/wmo_views.py:170 msgid "Je onderzoek hoeft niet te worden beoordeeld door de METC." msgstr "Your application does not require assessment by an METC." -#: proposals/views/wmo_views.py:164 +#: proposals/views/wmo_views.py:178 #, python-brace-format msgid "" "Neem contact op met {secretary} om de twijfels weg te " "nemen." msgstr "Contact {secretary} to make sure." -#: proposals/views/wmo_views.py:171 +#: proposals/views/wmo_views.py:185 msgid "Je onderzoek zal moeten worden beoordeeld door de METC." msgstr "Your application will require assessment by an METC." @@ -3252,51 +3373,47 @@ msgstr "Route" msgid "Start datum" msgstr "Start date review" -#: reviews/forms.py:16 +#: reviews/forms.py:23 msgid "korte route of revisie (2-weken)" msgstr "short route or revision (2-weeks)" -#: reviews/forms.py:17 +#: reviews/forms.py:24 msgid "lange route (4-weken)" msgstr "long route (4-weeks)" -#: reviews/forms.py:18 +#: reviews/forms.py:25 msgid "Direct terug naar aanvrager (Nog niet in behandeling)" msgstr "Return directly to applicant (not yet under review)" -#: reviews/forms.py:34 reviews/menus.py:67 reviews/mixins.py:174 +#: reviews/forms.py:41 reviews/menus.py:67 reviews/mixins.py:174 msgid "Algemene Kamer" msgstr "General Chamber" -#: reviews/forms.py:35 reviews/menus.py:77 reviews/mixins.py:177 +#: reviews/forms.py:42 reviews/menus.py:77 reviews/mixins.py:177 msgid "Linguïstiek Kamer" msgstr "Linguistics Chamber" -#: reviews/forms.py:68 -msgid "Selecteer de commissieleden" -msgstr "Select committee members" - -#: reviews/forms.py:78 +#: reviews/forms.py:85 msgid "Er moet tenminste één beoordelaar geselecteerd worden." msgstr "You must select at least one reviewer." -#: reviews/forms.py:119 +#: reviews/forms.py:126 msgid "Voeg deze aanvraag toe aan het archief" msgstr "Add this application to the archive" -#: reviews/forms.py:127 +#: reviews/forms.py:134 msgid "Opmerkingen over revisie" msgstr "Comments about this revision" -#: reviews/forms.py:133 +#: reviews/forms.py:140 msgid "Bevestig beëindiging" msgstr "Confirm termination of this review" -#: reviews/forms.py:167 +#: reviews/forms.py:169 msgid "Start datum periode:" msgstr "Start date period:" -#: reviews/forms.py:168 +#: reviews/forms.py:170 msgid "Eind datum periode:" msgstr "End date period:" @@ -3511,8 +3628,6 @@ msgid "Beoordelende kamer wijzigen" msgstr "Change reviewing chamber" #: reviews/templates/reviews/change_chamber_form.html:19 -#: reviews/templates/reviews/review_assign_form.html:47 -#: reviews/templates/reviews/review_discontinue_form.html:71 msgid "OK" msgstr "OK" @@ -3526,14 +3641,14 @@ msgid "Lopende reviews" msgstr "Ongoing reviews" #: reviews/templates/reviews/committee_members_workload.html:22 -#: reviews/templates/reviews/committee_members_workload.html:70 +#: reviews/templates/reviews/committee_members_workload.html:72 #: reviews/templates/reviews/review_table.html:8 #: reviews/templates/reviews/vue_templates/decision_list_reviewer.html:68 msgid "Reviewer" msgstr "Reviewer" #: reviews/templates/reviews/committee_members_workload.html:37 -#: reviews/templates/reviews/committee_members_workload.html:72 +#: reviews/templates/reviews/committee_members_workload.html:74 msgid "Korte route" msgstr "Short route" @@ -3550,24 +3665,24 @@ msgid "" "Vul hieronder een start- en einddatum in voor de periode van dit overzicht." msgstr "Select a start- and enddate for the period of the overview below." -#: reviews/templates/reviews/committee_members_workload.html:64 +#: reviews/templates/reviews/committee_members_workload.html:67 msgid "Periode toepassen" msgstr "Apply period" -#: reviews/templates/reviews/committee_members_workload.html:71 +#: reviews/templates/reviews/committee_members_workload.html:73 msgid "Totaal" msgstr "Total" -#: reviews/templates/reviews/committee_members_workload.html:73 +#: reviews/templates/reviews/committee_members_workload.html:75 msgid "Lange Route" msgstr "Long route" #: reviews/templates/reviews/decision_form.html:7 -#: reviews/templates/reviews/decision_form.html:16 +#: reviews/templates/reviews/decision_form.html:17 msgid "Aanvraag beoordelen" msgstr "Assess the application" -#: reviews/templates/reviews/decision_form.html:21 +#: reviews/templates/reviews/decision_form.html:22 #, python-format msgid "" "Je kunt nu een go of no-go geven voor de aanvraag %(title)s, " @@ -3578,7 +3693,7 @@ msgstr "" "%(refnum)s in %(chamber)s. You can see the details of this application here (downloads as PDF)." -#: reviews/templates/reviews/decision_form.html:29 +#: reviews/templates/reviews/decision_form.html:30 msgid "" "Attentie: jij bent de laatste beoordelaar van deze " "aanvraag. Daarom kun je na het versturen je oordeel en commentaar niet meer " @@ -3588,12 +3703,12 @@ msgstr "" "this proposal, you won't be able to edit your response after submission. " "Double-check your answers." -#: reviews/templates/reviews/decision_form.html:36 +#: reviews/templates/reviews/decision_form.html:37 #, python-format msgid "Je kunt nu de aanvraag %(title)s bekijken.
    " msgstr "You can now (re)view this application here: %(title)s.
    " -#: reviews/templates/reviews/decision_form.html:42 +#: reviews/templates/reviews/decision_form.html:43 msgid "" "Als de aanvraag (incl. geïnformeerde toestemmingsformulieren) in orde is, " "klik dan op ‘goedgekeurd’ en ‘Beslissing opslaan’ hieronder; dan wordt de " @@ -3603,7 +3718,7 @@ msgstr "" "'endorsed' and 'Save decision' below; the application will then be submitted " "to the FEtC-H. " -#: reviews/templates/reviews/decision_form.html:49 +#: reviews/templates/reviews/decision_form.html:50 msgid "" "Als de aanvraag nog niet in orde is, dan zijn er twee mogelijkheden om de " "aanvraag aan te passen:" @@ -3611,7 +3726,7 @@ msgstr "" "If the application is not yet in order, there are two methods to amend the " "study: " -#: reviews/templates/reviews/decision_form.html:56 +#: reviews/templates/reviews/decision_form.html:57 #, python-format msgid "" "door de supervisor (jijzelf)
    Als supervisor kan je deze aanvraag Indien je wilt dat de " "indiener de aanvraag zelf aanpast voordat je de studie kunt goedkeuren en " @@ -3639,7 +3754,7 @@ msgstr "" "any comments, and click 'Save decision'. Once you have done this, the " "submitter can make changes again.
    " -#: reviews/templates/reviews/decision_form.html:77 +#: reviews/templates/reviews/decision_form.html:78 msgid "" "Als de indiener de gevraagde wijzigingen heeft doorgevoerd en opnieuw heeft " "verstuurd, zal je de aangepaste aanvraag opnieuw moeten beoordelen." @@ -3647,7 +3762,7 @@ msgstr "" "Once the submitter has made the requested changes and resubmitted the " "application, you will have to re-evaluate the application. " -#: reviews/templates/reviews/decision_form.html:87 +#: reviews/templates/reviews/decision_form.html:88 #, python-format msgid "" "Dit is een revisie van of amendement op een vorige aanvraag. De verschillen " @@ -3657,7 +3772,7 @@ msgstr "" "differences compared to the previous application
    here." -#: reviews/templates/reviews/decision_form.html:102 +#: reviews/templates/reviews/decision_form.html:101 msgid "Beslissing opslaan" msgstr "Save decision" @@ -3672,11 +3787,11 @@ msgid "Documenten wijzigen" msgstr "Edit documents" #: reviews/templates/reviews/review_assign_form.html:7 -#: reviews/templates/reviews/review_assign_form.html:29 +#: reviews/templates/reviews/review_assign_form.html:28 msgid "Commissieleden aanstellen" msgstr "Appoint committee members" -#: reviews/templates/reviews/review_assign_form.html:31 +#: reviews/templates/reviews/review_assign_form.html:30 #, python-format msgid "" "

    Kies hier de geschikte route en commissieleden voor de aanvraag " @@ -3687,13 +3802,18 @@ msgstr "" "%(title)s here. Click here to see " "an overview of the workload for each committee member.

    " +#: reviews/templates/reviews/review_assign_form.html:45 +#: reviews/templates/reviews/review_discontinue_form.html:68 +msgid "Bevestigen" +msgstr "Confirm" + #: reviews/templates/reviews/review_close_form.html:7 -#: reviews/templates/reviews/review_close_form.html:24 -#: reviews/templates/reviews/review_close_form.html:41 +#: reviews/templates/reviews/review_close_form.html:27 +#: reviews/templates/reviews/review_close_form.html:43 msgid "Review afsluiten" msgstr "Conclude review" -#: reviews/templates/reviews/review_close_form.html:26 +#: reviews/templates/reviews/review_close_form.html:29 #, python-format msgid "" "Sluit hier de beoordeling van de aanvraag %(title)s af. Hieronder " @@ -3702,11 +3822,11 @@ msgstr "" "Conclude the review of application %(title)s here. The individual " "decisions follow below." -#: reviews/templates/reviews/review_close_form.html:31 +#: reviews/templates/reviews/review_close_form.html:34 msgid "Individuele beslissingen" msgstr "Individual decisions" -#: reviews/templates/reviews/review_close_form.html:33 +#: reviews/templates/reviews/review_close_form.html:36 msgid "Uiteindelijk besluit" msgstr "Final decision" @@ -3734,15 +3854,15 @@ msgstr "" "Do you want to change your decision? Please contact the secretary of the FEtC-H." -#: reviews/templates/reviews/review_detail.html:25 +#: reviews/templates/reviews/review_detail.html:23 msgid "Reviewers" msgstr "Reviewers" -#: reviews/templates/reviews/review_detail.html:27 +#: reviews/templates/reviews/review_detail.html:25 msgid "Handelingen" msgstr "Actions" -#: reviews/templates/reviews/review_detail.html:32 +#: reviews/templates/reviews/review_detail.html:30 msgid "Geen handelingen beschikbaar" msgstr "No actions available" @@ -3765,7 +3885,7 @@ msgstr "Applicant" #: reviews/templates/reviews/review_detail_sidebar.html:43 msgid "Supervisor" -msgstr "" +msgstr "Supervisor" #: reviews/templates/reviews/review_detail_sidebar.html:46 #, python-format @@ -3809,10 +3929,6 @@ msgstr "" msgid "Er zijn de volgende opmerkingen bijgevoegd:
    " msgstr "The following comments have been provided:
    " -#: reviews/templates/reviews/review_detail_sidebar.html:124 -msgid "Documenten" -msgstr "Documents" - #: reviews/templates/reviews/review_discontinue_form.html:7 msgid "Beoordeling beëindigen" msgstr "Terminate review" @@ -3885,7 +4001,7 @@ msgid "Verplaats naar andere kamer" msgstr "Move study to different reviewing chamber" #: reviews/templates/reviews/vue_templates/review_list.html:95 -#: reviews/utils/review_actions.py:266 +#: reviews/utils/review_actions.py:265 msgid "Verberg aanvraag uit het archief" msgstr "Remove this application from the archive" @@ -3969,19 +4085,19 @@ msgstr "Conclude this version" msgid "Beëindig definitief de afhandeling van deze aanvraag" msgstr "Discontinue assessment of this application" -#: reviews/utils/review_actions.py:199 +#: reviews/utils/review_actions.py:198 msgid "Verander aangestelde commissieleden" msgstr "Change appointment of committee members" -#: reviews/utils/review_actions.py:231 +#: reviews/utils/review_actions.py:230 msgid "Datum van bevestigingsbrief aanpassen" msgstr "Change date of confirmation letter" -#: reviews/utils/review_actions.py:268 +#: reviews/utils/review_actions.py:267 msgid "Plaats aanvraag in het archief." msgstr "Add this application to the archive" -#: reviews/utils/review_actions.py:285 +#: reviews/utils/review_actions.py:284 msgid "Startdatum wijzigen" msgstr "Edit start date" @@ -4049,25 +4165,23 @@ msgstr "" #: reviews/utils/review_utils.py:488 msgid "" -"De onderzoeker geeft aan dat (of twijfelt erover of) het onderzoek op " -"onderdelen of als geheel zodanig belastend is dat deze ondanks de verkregen " -"informed consent vragen zou kunnen oproepen." +"De onderzoeker geeft aan dat sommige vragen binnen het onderzoek mogelijk " +"dermate belastend kunnen zijn dat ze negatieve reacties bij de deelnemers en/" +"of onderzoekers kunnen veroorzaken." msgstr "" -"The researcher states (or considers it possible) that participation in the " -"study, in part or in its entirety, is so burdensome that despite acquiring " -"informed consent it might raise questions." +"The applicant notes that some questions within the study are possibly taxing " +"to the extent that they could result in negative responses from participants " +"and/or other researchers." -#: reviews/utils/review_utils.py:496 +#: reviews/utils/review_utils.py:497 msgid "" -"De onderzoeker geeft aan dat (of twijfelt erover of) de risico's op " -"psychische of fysieke schade bij deelname aan het onderzoek meer dan " -"minimaal zijn." +"De onderzoeker geeft aan dat er mogelijk kwesties zijn rondom de veiligheid " +"van de deelnemers tijdens of na het onderzoek." msgstr "" -"The researcher states (or considers it possible) that the risks of " -"psychological or physical harm in participating in the study are more than " -"minimal." +"The applicant notes that there are possible concerns about the safety of " +"participants during or after the study." -#: reviews/utils/review_utils.py:507 +#: reviews/utils/review_utils.py:508 #, python-brace-format msgid "" "De totale duur van de taken in sessie {s}, exclusief pauzes en andere niet-" @@ -4078,14 +4192,30 @@ msgstr "" "non-task elements ({d} minutes) is greater than the task duration limit " "({max_d} minutes) for the age group {ag}." -#: reviews/utils/review_utils.py:533 +#: reviews/utils/review_utils.py:521 +msgid "" +"De onderzoeker geeft aan dat er mogelijk kwesties zijn rondom " +"kennisveiligheid." +msgstr "" +"The applicant notes that there are possible concerns about knowledge " +"security." + +#: reviews/utils/review_utils.py:529 +msgid "" +"De onderzoeker geeft aan dat er mogelijk kwesties zijn rondom de veiligheid " +"van de betrokken onderzoekers." +msgstr "" +"The applicant notes that there are possible concerns about knowledge " +"security." + +#: reviews/utils/review_utils.py:549 #, python-brace-format msgid "Het onderzoek observeert deelnemers in de volgende setting: {s}" msgstr "" "The application contains sessions with participants in the following " "setting: {s}" -#: reviews/utils/review_utils.py:541 +#: reviews/utils/review_utils.py:557 msgid "" "Het onderzoek observeert deelnemers in een niet-publieke ruimte en werkt met " "informed consent achteraf." @@ -4093,7 +4223,7 @@ msgstr "" "The study observes participants in a non-public space and works with " "retrospective informed consent." -#: reviews/utils/review_utils.py:547 +#: reviews/utils/review_utils.py:563 msgid "" "De onderzoeker begeeft zich \"under cover\" in een beheerde niet-publieke " "ruimte (bijv. een digitale gespreksgroep), en neemt actief aan de discussie " @@ -4103,11 +4233,11 @@ msgstr "" "(e.g. a digital discussion group), and takes part actively in the discussion " "and/or collects data which can be traced back to individuals." -#: reviews/utils/review_utils.py:554 +#: reviews/utils/review_utils.py:570 msgid "De aanvraag bevat het gebruik van {}" msgstr "The application makes use of {}" -#: reviews/utils/review_utils.py:580 +#: reviews/utils/review_utils.py:596 msgid "" "De aanvraag bevat psychofysiologische metingen bij kinderen onder de {} jaar." msgstr "" @@ -4126,7 +4256,7 @@ msgstr "Pending decisions committee members" msgid "Openstaande besluiten eindverantwoordelijken" msgstr "Pending decisions supervisors" -#: reviews/views.py:605 +#: reviews/views.py:594 msgid "" "Deze aanvraag is al beoordeeld, dus je kan je beoordeling niet meer " "toevoegen/aanpassen" @@ -4134,29 +4264,88 @@ msgstr "" "This application has already been assessed, so you cannot add/change your " "assessment" -#: studies/forms.py:50 +#: studies/forms.py:32 +msgid "De leeftijdsgroep van je deelnemers" +msgstr "The age group of your participants" + +#: studies/forms.py:36 +msgid "Wilsonbekwaamheid" +msgstr "Inability to provide informed consent" + +#: studies/forms.py:40 +msgid "Bijzondere persoonsgegevens" +msgstr "Special personal details" + +#: studies/forms.py:44 +msgid "Noodzakelijkheid" +msgstr "Necessity" + +#: studies/forms.py:48 studies/models.py:131 +msgid "Werving" +msgstr "Recruitment" + +#: studies/forms.py:52 +msgid "Compensatie" +msgstr "Compensation" + +#: studies/forms.py:56 +msgid "Hiërarchie" +msgstr "Hierarchy" + +#: studies/forms.py:100 msgid "" "Maakt jouw onderzoek gebruik van wilsonbekwame (volwassen) deelnemers?" msgstr "" "Does your research make use of (adult) participants incapable of " "informed consent?" -#: studies/forms.py:98 +#: studies/forms.py:149 msgid "Je dient minimaal een bijzonder kenmerk te selecteren." msgstr "You are required to select at least one special characteristic." -#: studies/forms.py:105 +#: studies/forms.py:156 msgid "Je dient minimaal één type gegevens te selecteren." msgstr "You are required to select at least one characteristic." -#: studies/forms.py:121 +#: studies/forms.py:172 msgid "Leg uit wat de hiërarchische relatie is." msgstr "Explain the nature of this hierarchal relationship." -#: studies/forms.py:158 -msgid "Je dient minstens één van de opties te selecteren" +#: studies/forms.py:197 +msgid "" +"Om welk type onderzoek gaat het hier? Je kan meerdere opties aankruisen." +msgstr "" +"What type of research will be used here? You can select multiple options." + +#: studies/forms.py:203 studies/models.py:272 +msgid "Taakonderzoek en interviews" +msgstr "Task-based research and interviews" + +#: studies/forms.py:206 +msgid "" +"Dit is bijvoorbeeld het geval wanneer je een observatiedeel combineert met " +"een taakonderzoeksdeel, of met een interventiedeel (in dezelfde sessie, of " +"verspreid over dagen). Wanneer je in interventieonderzoek extra " +"taken inzet om de effecten van de interventie te bemeten (bijvoorbeeld een " +"speciale voor- en nameting met een vragenlijst die anders niet zou worden " +"afgenomen) dien je die apart als taakonderzoek te specificeren.)" +msgstr "" +"This is the case for example if you are combining an observational phase " +"with a task-based phase, or an intervention phase (in the same session or " +"spread over several days). If you set extra tasks in interventional " +"research to test the effects of the intervention (e.g. a special " +"questionnaire for measurements before and after the intervention, which " +"otherwise would not be carried out) you should specify this separately as " +"task-based research." + +#: studies/forms.py:244 +msgid "Je dient minstens een van de opties te selecteren." msgstr "You must select at least one of the options" +#: studies/forms.py:251 +msgid "Er is nog geen onderzoekstype geselecteerd." +msgstr "You have not selected any other researchers." + #: studies/models.py:53 msgid "{}-{} jaar" msgstr "{}-{} years old" @@ -4165,10 +4354,6 @@ msgstr "{}-{} years old" msgid "{} jaar en ouder" msgstr "{} years old and above" -#: studies/models.py:131 studies/templates/studies/study_form.html:26 -msgid "Werving" -msgstr "Recruitment" - #: studies/models.py:144 msgid "Naam traject" msgstr "Trajectory title" @@ -4316,10 +4501,6 @@ msgstr "" msgid "Zo ja, wat is de relatie (bijv. docent-student)?" msgstr "If so, what is the nature of the relationship (e.g. teacher-student)?" -#: studies/models.py:272 -msgid "Taakonderzoek en interviews" -msgstr "Task-based research and interviews" - #: studies/models.py:277 msgid "" "Is er binnen bovenstaand onderzoekstraject sprake van misleiding van de " @@ -4333,10 +4514,10 @@ msgid "" "Misleiding is het doelbewust verschaffen van inaccurate informatie over het " "doel en/of belangrijke aspecten van de gang van zaken tijdens het onderzoek. " "Denk aan zaken als een bewust misleidende \"cover story\" voor het " -"experiment; het ten onrechte suggereren dat er met andere deelnemers wordt " -"samengewerkt; het onaangekondigd aanbieden van een cruciale geheugentaak of " -"het geven van gefingeerde feedback. Wellicht ten overvloede: het gaat " -"hierbij niet om fillers." +"experiment; het ten onrechte suggereren dat er door de deelnemer met andere " +"deelnemers wordt samengewerkt; het onaangekondigd aanbieden van een cruciale " +"geheugentaak of het geven van gefingeerde feedback. Wellicht ten overvloede: " +"het gaat hierbij niet om fillers in bijv. taalwetenschappelijk onderzoek." msgstr "" "Misrepresentation is intentional provision of inaccurate information as to " "the aim and/or important aspects of proceedings during the study. Examples " @@ -4356,112 +4537,58 @@ msgstr "" #: studies/models.py:302 msgid "" "Bevat bovenstaand onderzoekstraject elementen die tijdens de " -"deelname niet-triviale negatieve emoties kunnen opwekken? Denk hierbij " -"bijvoorbeeld aan emotioneel indringende vragen, kwetsende uitspraken, " -"negatieve feedback, frustrerende, zware, (heel) lange en/of (heel) saaie " -"taken." +"deelname zodanig belastend zijn dat deze vragen, weerstand, of zelfs " +"verontwaardiging zouden kunnen oproepen, bijvoorbeeld bij collega-" +"onderzoekers, bij de deelnemers zelf, of bij ouders of andere " +"vertegenwoordigers?" msgstr "" "Does the above research trajectory include elements which could arouse non-" "trivially negative emotions during participation? For example, " "consider emotionally probing questions, insulting utterances, negative " "feedback, and frustrating, difficult, (very) long and/or (very) boring tasks." -#: studies/models.py:312 -msgid "Licht je antwoord toe." -msgstr "Explain your answer." - #: studies/models.py:315 msgid "" -"Bevat bovenstaand onderzoekstraject elementen die tijdens de deelname " -"zodanig belastend zijn dat deze ondanks de verkregen informed consent vragen zou kunnen oproepen (of zelfs verontwaardiging), bijvoorbeeld bij " -"collega-onderzoekers, bij de deelnemers zelf, of bij ouders of andere " -"vertegenwoordigers?" -msgstr "" -"Does the research trajectory above contain elements which are so burdensome " -"that, despite having obtained informed consent, they could raise " -"questions (or even cause outrage), for example from colleagues, the " -"participants themselves, or parents or other representatives?" - -#: studies/models.py:323 -msgid "" -"Dit zou bijvoorbeeld het geval kunnen zijn bij een 'onmenselijk' lange en " -"uitputtende taak, een zeer confronterende vragenlijst, of voortdurend " -"vernietigende feedback, maar ook bij een ervaren inbreuk op de privacy, of " -"een ander ervaren gebrek aan respect. Let op, het gaat bij deze vraag om de " -"door de deelnemer ervaren belasting tijdens het onderzoek, niet om de " -"opgelopen psychische of fysieke schade door het onderzoek." +"Geef concrete voorbeelden van de relevante aspecten van jouw onderzoek " +"(bijv. voorbeelden van mogelijk zeer kwetsende woorden of uitspraken in de " +"taak; zeer confronterende vragen in een vragenlijst; negatieve feedback), " +"zodat de commissie zich een goed beeld kan vormen." msgstr "" -"This could be the case with an inhumanely long or exhausting task, an " -"extremely provocative questionnaire, or excessive destructive feedback on " -"participant performance. Also consider a significant breach of privacy or " -"lack of respect towards the participant as examples for this question. " -"Please note that this question refers to distress during experimental " -"sessions, not distress at a later date which was caused by the research " -"project." +"Give concrete examples of such elements (e.g. examples of potentially " +"extremely offensive words or statements in a task; extremely confronting " +"questions in a questionnaire; negative feedback), so that the commission has " +"a clear idea of what is involved." -#: studies/models.py:338 +#: studies/models.py:326 msgid "" -"Licht je antwoord toe. Geef concrete voorbeelden van de relevante aspecten " -"van jouw onderzoek (bijv. representatieve voorbeelden van mogelijk zeer " -"kwetsende woorden of uitspraken in de taak, of van zeer confronterende " -"vragen in een vragenlijst), zodat de commissie zich een goed beeld kan " -"vormen." +"Zijn er kwesties rondom de veiligheid van, of risico's voor de deelnemers " +"tijdens of na deelname aan het onderzoek?" msgstr "" -"Explain your answer. Give concrete examples of the relevant aspects of your " -"study (e.g. representative examples of potentially very offensive words or " -"utterances in the task, or of very confrontational questions in a " -"questionnaire), so that the committee can form a proper picture." +"Are there concerns relating to the safety of, or risks to, participants " +"during or after participation in the research?" -#: studies/models.py:348 +#: studies/models.py:331 msgid "" -"Zijn de risico's op psychische, fysieke, of andere (bijv. economische, " -"juridische) schade door deelname aan bovenstaand onderzoekstraject meer " -"dan minimaal? D.w.z. ligt de kans op en/of omvang van mogelijke schade " -"bij de deelnemers duidelijk boven het \"achtergrondrisico\"?" +"Houd hierbij niet alleen rekening met mogelijke psychische of fysieke " +"schadelijke gevolgen, maar ook met andere mogelijke schade, zoals bijv. " +"stigmatisering, (re-)traumatisering, aantasting van zelfbeeld, verlies van " +"privacy, toevalsbevindingen, juridische vervolging of aansprakelijkheid, e.d." msgstr "" "Are the risks of psychological, physical or other (e.g. economic, legal) " "damage due to participation in the research trajectory above more than minimal? I.e. is the chance of and/or magnitude of potential damage to " "participants clearly above that of the \"background risk\"?" -#: studies/models.py:356 -msgid "" -"Achtergrondrisico is datgene dat gezonde, gemiddelde burgers in de relevante " -"leeftijdscategorie normaalgesproken in het dagelijks leven ten deel valt. " -"Denk bij schade ook aan de gevolgen die het voor de deelnemer of anderen " -"beschikbaar komen van bepaalde informatie kan hebben, bijv. op het vlak van " -"zelfbeeld, stigmatisering door anderen, economische schade door data-" -"koppeling, et cetera. Het achtergrondrisico voor psychische en fysieke " -"schade omvat bijvoorbeeld ook de risico's van \"routine\"-tests, -" -"onderzoeken of -procedures die in alledaagse didactische, psychologische of " -"medische contexten plaatsvinden (zoals een eindexamen, een rijexamen, een " -"stressbestendigheids-assessment, een intelligentie- of " -"persoonlijkheidstest, of een hartslagmeting na fysieke inspanning; dit " -"alles, waar relevant, onder begeleiding van adequaat geschoolde " -"specialisten)." -msgstr "" -"Background risk is the risk experienced by average, healthy people in the " -"relevant age group during daily life. Damage to be considered includes, but " -"is not limited to: physical or psychological harm, damage by means of " -"gathered information which might affect self-image or cause stigmatisation " -"by others, economic damage through linked data, and so forth. To determine " -"potential physical and psychological harm in relation to the background " -"risk, you may compare your study to \"routine\" tests which take place " -"during daily life, such as a driving test, job interview or performance " -"evaluation, intelligence test, or heart rate measurement after physical " -"exercise, all of which performed under professional supervision." - -#: studies/models.py:470 +#: studies/models.py:437 #, python-format msgid "Study details for proposal %s" msgstr "Study details for proposal %s" -#: studies/models.py:475 +#: studies/models.py:442 msgid "Maak je gebruik van passieve informed consent?" msgstr "Will you use passive informed consent?" -#: studies/models.py:478 +#: studies/models.py:445 msgid "" "Wanneer je kinderen via een instelling (dus ook school) werft en je de " "ouders niet laat ondertekenen, maar in plaats daarvan de leiding van die " @@ -4477,7 +4604,7 @@ msgstr "" "a>." # studies/models.py:229 -#: studies/models.py:491 +#: studies/models.py:458 msgid "" "Licht je antwoord toe. Wij willen je wijzen op het reglement, sectie 3.1 'd' " "en 'e'. Passive consent is slechts in enkele gevallen toegestaan en draagt " @@ -4487,16 +4614,16 @@ msgstr "" "'d' and 'e'. Passive consent is allowed under certain situations but is not " "preferred by the committee." -#: studies/models.py:508 +#: studies/models.py:475 msgid "Upload hier de toestemmingsverklaring (in .pdf of .doc(x)-formaat)" msgstr "" "Please upload the declaration of consent here (in .pdf or .doc(x)-format)" -#: studies/models.py:516 +#: studies/models.py:483 msgid "Upload hier de informatiebrief (in .pdf of .doc(x)-formaat)" msgstr "Please upload the information letter here (in .pdf or .doc(x)-format)" -#: studies/models.py:525 +#: studies/models.py:492 msgid "" "Upload hier de toestemmingsverklaring voor de leiding of het management van " "de instelling (in .pdf of .doc(x)-format)" @@ -4504,7 +4631,7 @@ msgstr "" "Please upload the declaration of consent for the management of the school or " "institution (in .pdf or .doc(x)-format)" -#: studies/models.py:530 +#: studies/models.py:497 msgid "" "Upload indien mogelijk een ondertekende versie van het document. Upload als " "deze nog niet bestaat een blanco versie, en stuur de ondertekende versie " @@ -4515,7 +4642,7 @@ msgstr "" "and follow up by sending a signed copy to the secretary of the FEtC-H once " "available." -#: studies/models.py:538 +#: studies/models.py:505 msgid "" "Upload hier de informatiebrief voor de leiding of het management van de " "instelling (in .pdf of .doc(x)-formaat)" @@ -4523,7 +4650,7 @@ msgstr "" "Please upload the the information letter for the management of the school or " "institution (in .pdf or .doc(x)-format)" -#: studies/models.py:548 +#: studies/models.py:515 msgid "" "Upload hier de informatiebrief voor de ouders of verzorgers (in .pdf of ." "doc(x)-formaat)" @@ -4531,12 +4658,73 @@ msgstr "" "Please upload the the information letter for parents or guardians here (in ." "pdf or .doc(x)-format)" +#: studies/templates/studies/intervention_table.html:11 +msgid "Interventie bewerken" +msgstr "Edit intervention" + +#: studies/templates/studies/intervention_table.html:18 +msgid "Aantal sessies (per week)" +msgstr "Number of session (per week)" + +#: studies/templates/studies/intervention_table.html:19 +msgid "Duur per sessie (in minuten)" +msgstr "Session duration (in minutes)" + +#: studies/templates/studies/intervention_table.html:20 +msgid "Controlegroep?" +msgstr "Control group?" + +#: studies/templates/studies/intervention_table.html:28 +#: studies/templates/studies/observation_table.html:35 +#: studies/templates/studies/observation_table.html:36 +#: studies/templates/studies/observation_table.html:37 +#: studies/templates/studies/observation_table.html:38 +msgid "ja, nee" +msgstr "yes, no" + +#: studies/templates/studies/observation_table.html:11 +msgid "Observatie bewerken" +msgstr "Edit observation" + +#: studies/templates/studies/observation_table.html:18 +msgid "Aantal dagen" +msgstr "Number of days" + +#: studies/templates/studies/observation_table.html:19 +msgid "Duur per sessie (in uren)" +msgstr "Duration per session (in hours)" + +#: studies/templates/studies/observation_table.html:20 +msgid "Anoniem?" +msgstr "Anonymous?" + +#: studies/templates/studies/observation_table.html:21 +msgid "Doelgroep?" +msgstr "Target group?" + +#: studies/templates/studies/observation_table.html:22 +msgid "Niet openbaar?" +msgstr "Non-public?" + +#: studies/templates/studies/observation_table.html:23 +msgid "Toestemming nodig?" +msgstr "Permission necessary?" + +#: studies/templates/studies/observation_table.html:25 +msgid "Instantie" +msgstr "Institution" + +#: studies/templates/studies/observation_table.html:27 +#: tasks/templates/tasks/task_list.html:11 +msgid "Registratie via" +msgstr "Recording via" + #: studies/templates/studies/study_design.html:7 -#: studies/templates/studies/study_design.html:16 +#: studies/templates/studies/study_design.html:11 msgid "De onderzoekstype(n)" msgstr "Type(s) of research" -#: studies/templates/studies/study_design.html:19 +#: studies/templates/studies/study_design.html:14 msgid "" "De FETC-GW onderscheidt 3 typen onderzoek (die evt. ook samen in één " "aanvraag voor kunnen komen):" @@ -4544,7 +4732,7 @@ msgstr "" "The FEtC-H distinguishes 3 types of research (which may all be used within " "one application):" -#: studies/templates/studies/study_design.html:26 +#: studies/templates/studies/study_design.html:21 msgid "" "Interventieonderzoek:
    De onderzoeker manipuleert d.m." "v. een interventie de context waarin de deelnemers in hun normale " @@ -4556,7 +4744,7 @@ msgstr "" "what they would otherwise also do in their daily lives.
    Effects may be " "measured immediately or after the fact." -#: studies/templates/studies/study_design.html:37 +#: studies/templates/studies/study_design.html:32 msgid "" "Observatieonderzoek:
    De onderzoeker observeert " "deelnemers in hun normale leven, maar grijpt hier niet op in." @@ -4564,7 +4752,7 @@ msgstr "" "Observational research:
    The researcher observes " "participants in their daily lives, but does not interfere." -#: studies/templates/studies/study_design.html:46 +#: studies/templates/studies/study_design.html:41 msgid "" "Taakonderzoek en Interviews:
    De onderzoeker -
  • - {% blocktrans trimmed %} - Gebruik de juiste (meest recente) - voorbeelddocumenten - voor de informed consent. (de laatstse versie is van december 2021) -
  • - {% endblocktrans %} - - - - - -
    -
    -
    -

    {% trans 'Ondersteuning' %}

    -

    - {% blocktrans trimmed %} - FETC-GW secretaris -
    - Desiree Capel (fetc.gw@uu.nl) - {% endblocktrans %} -

    -

    - {% blocktrans trimmed %} - Data Management advies -
    - datamanagement.gw@uu.nl - {% endblocktrans %} -

    -

    - {% blocktrans trimmed %} - Privacy kwesties/vragen -
    - privacy.gw@uu.nl - {% endblocktrans %} -

    -

    - {% blocktrans trimmed %} - Technical support -
    - portalsupport.gw@uu.nl - {% endblocktrans %} -

    -
    -
    -

    {% trans 'Resources' %}

    - {# What should this be in dutch tho? #} - -
    -
    -

    {% trans 'Feedback' %}

    -

    +

  • {% blocktrans trimmed %} - Heb je een vraag over de werking van de portal, ontdek je een foutje, missende functionaliteit, - of verkeerde vertaling? Neem dan contact op met - portaldev.gw@uu.nl. - {% endblocktrans %} -

    -
  • + Gebruik de juiste (meest recente) + voorbeelddocumenten + voor de informed consent. (de laatstse versie is van december 2021) + + {% endblocktrans %} + + +
    +
    + +
    +
    +
    +

    {% trans 'Ondersteuning' %}

    +

    + {% blocktrans trimmed %} + FETC-GW secretaris +
    + Desiree Capel (fetc.gw@uu.nl) + {% endblocktrans %} +

    +

    + {% blocktrans trimmed %} + Data Management advies +
    + datamanagement.gw@uu.nl + {% endblocktrans %} +

    +

    + {% blocktrans trimmed %} + Privacy kwesties/vragen +
    + privacy.gw@uu.nl + {% endblocktrans %} +

    +

    + {% blocktrans trimmed %} + Technical support +
    + portalsupport.gw@uu.nl + {% endblocktrans %} +

    +
    + +
    +

    {% trans 'Feedback' %}

    +

    + {% blocktrans trimmed %} + Heb je een vraag over de werking van de portal, ontdek je een foutje, missende functionaliteit, + of verkeerde vertaling? Neem dan contact op met + portaldev.gw@uu.nl. + {% endblocktrans %} +

    - {% endblock %} +
    +{% endblock %} diff --git a/media/test_pdf.pdf b/media/test_pdf.pdf new file mode 100644 index 000000000..f4008501c Binary files /dev/null and b/media/test_pdf.pdf differ diff --git a/proposals/fixtures/testing/test_proposals.json b/proposals/fixtures/testing/test_proposals.json index 874f6c230..e49b7a3f3 100644 --- a/proposals/fixtures/testing/test_proposals.json +++ b/proposals/fixtures/testing/test_proposals.json @@ -85,7 +85,7 @@ "embargo_end_date": "2024-11-01", "in_archive": false, "is_pre_assessment": true, - "pre_assessment_pdf": "FETC-AK-23-004-01-Preassessment.pdf", + "pre_assessment_pdf": "test_pdf.pdf", "is_pre_approved": null, "pre_approval_institute": null, "pre_approval_pdf": "", @@ -149,7 +149,7 @@ "pre_assessment_pdf": "", "is_pre_approved": true, "pre_approval_institute": "asdf", - "pre_approval_pdf": "FETC-AK-23-005-01-Pre_Approval.pdf", + "pre_approval_pdf": "test_pdf.pdf", "in_course": false, "is_exploration": false, "pdf": "FETC-AK-23-005-01-Proposal.pdf", diff --git a/proposals/forms.py b/proposals/forms.py index e02e07a6f..c1753819b 100644 --- a/proposals/forms.py +++ b/proposals/forms.py @@ -851,7 +851,64 @@ def clean(self): ) -class TranslatedConsentForms(SoftValidationMixin, ConditionalModelForm): +class KnowledgeSecurityForm(SoftValidationMixin, ConditionalModelForm): + + class Meta: + model = Proposal + fields = [ + "knowledge_security", + "knowledge_security_details", + "researcher_risk", + "researcher_risk_details", + ] + widgets = { + "knowledge_security": BootstrapRadioSelect(), + "researcher_risk": BootstrapRadioSelect(), + } + + _soft_validation_fields = [ + "knowledge_security", + "knowledge_security_details", + "researcher_risk", + "researcher_risk_details", + ] + + def __init__(self, *args, **kwargs): + """ + - Set the Study for later reference + - Remove empty label from fields and reset the choices + """ + super(KnowledgeSecurityForm, self).__init__(*args, **kwargs) + + self.base_fields = ( + "knowledge_security", + "researcher_risk", + ) + for field in self.base_fields: + self.fields[field].empty_label = None + self.fields[field].choices = YesNoDoubt.choices + + def clean(self): + """ + Check for conditional requirements: + - If deception is set to yes, make sure deception_details has been filled out + - If negativity is set to yes, make sure negativity_details has been filled out + - If risk is set to yes, make sure risk_details has been filled out + """ + cleaned_data = super(KnowledgeSecurityForm, self).clean() + + self.mark_soft_required(cleaned_data, "knowledge_security", "researcher_risk") + + for field in self.base_fields: + self.check_dependency_list( + cleaned_data, + f"{field}", + f"{field}_details", + f1_value_list=[YesNoDoubt.YES, YesNoDoubt.DOUBT], + ) + + +class TranslatedConsentForm(SoftValidationMixin, ConditionalModelForm): class Meta: model = Proposal fields = ["translated_forms", "translated_forms_languages"] @@ -862,7 +919,7 @@ class Meta: _soft_validation_fields = ["translated_forms", "translated_forms_languages"] def clean(self): - cleaned_data = super(TranslatedConsentForms, self).clean() + cleaned_data = super(TranslatedConsentForm, self).clean() if cleaned_data["translated_forms"] is None: self.add_error( diff --git a/proposals/migrations/0054_proposal_knowledge_security_and_more.py b/proposals/migrations/0054_proposal_knowledge_security_and_more.py new file mode 100644 index 000000000..0ccea66e6 --- /dev/null +++ b/proposals/migrations/0054_proposal_knowledge_security_and_more.py @@ -0,0 +1,49 @@ +# Generated by Django 4.2.11 on 2024-09-24 14:18 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("proposals", "0053_auto_20240201_1557"), + ] + + operations = [ + migrations.AddField( + model_name="proposal", + name="knowledge_security", + field=models.CharField( + blank=True, + choices=[("Y", "ja"), ("N", "nee"), ("?", "twijfel")], + help_text="Kennisveiligheid gaat over het tijdig signaleren en mitigeren van veiligheidsrisico's bij wetenschappelijk onderzoek. Klik hier voor meer informatie.", + max_length=1, + verbose_name="Zijn er kwesties rondom kennisveiligheid?", + ), + ), + migrations.AddField( + model_name="proposal", + name="knowledge_security_details", + field=models.TextField( + blank=True, max_length=200, verbose_name="Licht toe" + ), + ), + migrations.AddField( + model_name="proposal", + name="researcher_risk", + field=models.CharField( + blank=True, + choices=[("Y", "ja"), ("N", "nee"), ("?", "twijfel")], + help_text="Houd hierbij niet alleen rekening met mogelijke psychische of fysieke schade, maar ook met andere mogelijke schade, zoals bijv. hiërarchische machtsverhoudingen in veldwerk, mogelijke negatieve gevolgen voor de zichtbaarheid/vindbaarheid van de onderzoeker in in het publieke domein, juridische vervolging of aansprakelijkheid, e.d.", + max_length=1, + verbose_name="Zijn er kwesties rondom de veiligheid van of risico's voor de onderzoeker(s)?", + ), + ), + migrations.AddField( + model_name="proposal", + name="researcher_risk_details", + field=models.TextField( + blank=True, max_length=200, verbose_name="Licht toe" + ), + ), + ] diff --git a/proposals/models.py b/proposals/models.py index 81ff7709b..b0a688c54 100644 --- a/proposals/models.py +++ b/proposals/models.py @@ -497,6 +497,42 @@ class PracticeReasons(models.IntegerChoices): MaxWordsValidator(SELF_ASSESSMENT_MAX_WORDS), ], ) + knowledge_security = models.CharField( + _("Zijn er kwesties rondom kennisveiligheid?"), + help_text=mark_safe_lazy( + _( + "Kennisveiligheid gaat over het tijdig signaleren en mitigeren " + "van veiligheidsrisico's bij wetenschappelijk onderzoek. Klik " + "hier " + "voor meer informatie." + ) + ), + max_length=1, + choices=YesNoDoubt.choices, + blank=True, + ) + knowledge_security_details = models.TextField( + _("Licht toe"), max_length=200, blank=True + ) + researcher_risk = models.CharField( + _( + "Zijn er kwesties rondom de veiligheid van of risico's voor de onderzoeker(s)?" + ), + help_text=_( + "Houd hierbij niet alleen rekening met mogelijke psychische of " + "fysieke schade, maar ook met andere mogelijke schade, zoals bijv. " + "hiërarchische machtsverhoudingen in veldwerk, mogelijke negatieve " + "gevolgen voor de zichtbaarheid/vindbaarheid van de onderzoeker in " + "in het publieke domein, juridische vervolging of " + "aansprakelijkheid, e.d." + ), + max_length=1, + choices=YesNoDoubt.choices, + blank=True, + ) + researcher_risk_details = models.TextField( + _("Licht toe"), max_length=200, blank=True + ) # References to other models relation = models.ForeignKey( diff --git a/proposals/templates/proposals/knowledge_security_form.html b/proposals/templates/proposals/knowledge_security_form.html new file mode 100644 index 000000000..9ab4eda93 --- /dev/null +++ b/proposals/templates/proposals/knowledge_security_form.html @@ -0,0 +1,22 @@ +{% extends "base/fetc_form_base.html" %} + +{% load static %} +{% load i18n %} + +{% block header_title %} + {% trans "Afronding trajecten" %} - {{ block.super }} +{% endblock %} + +{% block html_head %} + {{ block.super }} + +{% endblock %} + +{% block pre-form-text %} +

    {% trans "Afronding trajecten" %}

    +{% endblock %} diff --git a/proposals/urls.py b/proposals/urls.py index 4572c2cb6..afd19c599 100644 --- a/proposals/urls.py +++ b/proposals/urls.py @@ -42,8 +42,9 @@ ProposalCopyAmendment, ProposalsPublicArchiveView, ProposalUpdateDataManagement, - TranslatedConsentFormsView, + TranslatedConsentView, ProposalUpdateDateStart, + ProposalKnowledgeSecurity, ) from .views.study_views import StudyStart, StudyConsent @@ -213,10 +214,13 @@ ), path("confirm//", ProposalConfirmation.as_view(), name="confirmation"), path("study_start//", StudyStart.as_view(), name="study_start"), - path("consent//", StudyConsent.as_view(), name="consent"), path( - "translated//", TranslatedConsentFormsView.as_view(), name="translated" + "knowledge_security//", + ProposalKnowledgeSecurity.as_view(), + name="knowledge_security", ), + path("consent//", StudyConsent.as_view(), name="consent"), + path("translated//", TranslatedConsentView.as_view(), name="translated"), path( "copy/", include( diff --git a/proposals/utils/checkers.py b/proposals/utils/checkers.py index ecc15ae8e..f84dee2af 100644 --- a/proposals/utils/checkers.py +++ b/proposals/utils/checkers.py @@ -323,6 +323,7 @@ def remaining_checkers( self, ): return [ + KnowledgeSecurityChecker(self.stepper, parent=self.item), DocumentsChecker, DataManagementChecker, SubmitChecker, @@ -350,6 +351,24 @@ def get_form_kwargs(self): return kwargs +class KnowledgeSecurityChecker( + ModelFormChecker, +): + form_class = proposal_forms.KnowledgeSecurityForm + title = _("Traject afronding") + + def check(self): + if self.stepper.has_multiple_studies(): + self.title = _("Trajecten afronding") + self.stepper.items.append(self.make_stepper_item()) + return [] + + def get_url( + self, + ): + return reverse("proposals:knowledge_security", args=[self.proposal.pk]) + + class StudyChecker( Checker, ): @@ -497,7 +516,7 @@ def get_url( class StudyEndChecker( ModelFormChecker, ): - title = _("Afronding") + title = _("Traject overzicht") form_class = study_forms.StudyEndForm def __init__( @@ -803,7 +822,7 @@ def make_stepper_item(self): class TranslationChecker( ModelFormChecker, ): - form_class = proposal_forms.TranslatedConsentForms + form_class = proposal_forms.TranslatedConsentForm title = _("Vertalingen") location = "data_management" diff --git a/proposals/utils/pdf_diff_logic.py b/proposals/utils/pdf_diff_logic.py index 289e20e9a..bd0051703 100644 --- a/proposals/utils/pdf_diff_logic.py +++ b/proposals/utils/pdf_diff_logic.py @@ -827,8 +827,6 @@ class StudyOverviewSection(BaseSection): "deception_details", "negativity", "negativity_details", - "stressful", - "stressful_details", "risk", "risk_details", ] @@ -842,7 +840,7 @@ def get_row_fields(self): obj = self.obj rows_to_remove = [] - for x in range(0, 7, 2): + for x in range(0, len(self.row_fields), 2): if getattr(obj, rows[x]) == "N": rows_to_remove.append(rows[x + 1]) rows = [row for row in rows if row not in rows_to_remove] @@ -856,6 +854,30 @@ def get_row_fields(self): return rows +class KnowledgeSecuritySection(BaseSection): + """This class receives a Proposal object.""" + + section_title = _("Kennisveiligheid en risico onderzoekers") + row_fields = [ + "knowledge_security", + "knowledge_security_details", + "researcher_risk", + "researcher_risk_details", + ] + + def get_row_fields(self): + rows = copy(self.row_fields) + obj = self.obj + + rows_to_remove = [] + for x in range(0, len(self.row_fields), 2): + if getattr(obj, rows[x]) == "N": + rows_to_remove.append(rows[x + 1]) + rows = [row for row in rows if row not in rows_to_remove] + + return rows + + class InformedConsentFormsSection(BaseSection): """This class receives a Documents object""" @@ -997,24 +1019,24 @@ def get_extra_documents(obj): return extra_documents -def create_context_pdf(context, model): +def create_context_pdf(context, proposal): """A function to create the context for the PDF, which gets called in the ProposalAsPdf view.""" sections = [] - sections.append(GeneralSection(model)) + sections.append(GeneralSection(proposal)) - if hasattr(model, "wmo"): - sections.append(WMOSection(model.wmo)) + if hasattr(proposal, "wmo"): + sections.append(WMOSection(proposal.wmo)) - if not model.is_pre_assessment: - if model.wmo.status != model.wmo.WMOStatuses.NO_WMO: - sections.append(METCSection(model.wmo)) + if not proposal.is_pre_assessment: + if proposal.wmo.status != proposal.wmo.WMOStatuses.NO_WMO: + sections.append(METCSection(proposal.wmo)) - sections.append(TrajectoriesSection(model)) + sections.append(TrajectoriesSection(proposal)) - if model.wmo.status == model.wmo.WMOStatuses.NO_WMO: - for study in model.study_set.all(): + if proposal.wmo.status == proposal.wmo.WMOStatuses.NO_WMO: + for study in proposal.study_set.all(): sections.append(StudySection(study)) if study.has_intervention: sections.append(InterventionSection(study.intervention)) @@ -1025,19 +1047,21 @@ def create_context_pdf(context, model): sections.append(SessionSection(session)) for task in session.task_set.all(): sections.append(TaskSection(task)) - sections.append(TasksOverviewSection(session)) + sections.append(TasksOverviewSection(session)) sections.append(StudyOverviewSection(study)) sections.append(InformedConsentFormsSection(study.documents)) - extra_documents = get_extra_documents(model) + sections.append(KnowledgeSecuritySection(proposal)) + + extra_documents = get_extra_documents(proposal) for num, document in enumerate(extra_documents): sections.append(ExtraDocumentsSection(document, num)) - sections.append(DMPFileSection(model)) + sections.append(DMPFileSection(proposal)) - sections.append(EmbargoSection(model)) - sections.append(CommentsSection(model)) + sections.append(EmbargoSection(proposal)) + sections.append(CommentsSection(proposal)) context["sections"] = sections @@ -1175,11 +1199,11 @@ def create_context_diff(context, old_proposal, new_proposal): ) ) - sections.append( - DiffSection( - *multi_sections(TasksOverviewSection, both_sessions) + sections.append( + DiffSection( + *multi_sections(TasksOverviewSection, both_sessions) + ) ) - ) sections.append( DiffSection(*multi_sections(StudyOverviewSection, both_studies)) @@ -1193,6 +1217,13 @@ def create_context_diff(context, old_proposal, new_proposal): ) ) + sections.append( + DiffSection( + KnowledgeSecuritySection(old_proposal), + KnowledgeSecuritySection(new_proposal), + ) + ) + old_extra_docs = get_extra_documents(old_proposal) new_extra_docs = get_extra_documents(new_proposal) @@ -1210,7 +1241,7 @@ def create_context_diff(context, old_proposal, new_proposal): sections.append( DiffSection( - *multi_sections(DMPFileSection, [old_proposal, new_proposal]) + DMPFileSection(old_proposal), DMPFileSection(new_proposal) ) ) diff --git a/proposals/views/proposal_views.py b/proposals/views/proposal_views.py index 652b722e9..d8b4a5000 100644 --- a/proposals/views/proposal_views.py +++ b/proposals/views/proposal_views.py @@ -45,8 +45,9 @@ FundingForm, ResearchGoalForm, PreApprovedForm, - TranslatedConsentForms, + TranslatedConsentForm, ProposalForm, + KnowledgeSecurityForm, ) from ..models import Proposal, Wmo from ..utils import generate_pdf, generate_ref_number @@ -483,9 +484,23 @@ def get_back_url(self): return reverse("proposals:research_goal", args=(self.object.pk,)) -class TranslatedConsentFormsView(ProposalContextMixin, UpdateView): +class ProposalKnowledgeSecurity( + ProposalContextMixin, AllowErrorsOnBackbuttonMixin, UpdateView +): + model = Proposal + form_class = KnowledgeSecurityForm + template_name = "proposals/knowledge_security_form.html" + + def get_next_url(self): + return reverse("proposals:consent", args=(self.object.pk,)) + + def get_back_url(self): + return reverse("studies:design_end", args=(self.object.last_study().pk,)) + + +class TranslatedConsentView(ProposalContextMixin, UpdateView): model = Proposal - form_class = TranslatedConsentForms + form_class = TranslatedConsentForm template_name = "proposals/translated_consent_forms.html" def get_next_url(self): diff --git a/proposals/views/study_views.py b/proposals/views/study_views.py index 1c8843c69..09cb6d044 100644 --- a/proposals/views/study_views.py +++ b/proposals/views/study_views.py @@ -119,4 +119,4 @@ def get_next_url(self): def get_back_url(self): """Return to the Study design view""" proposal = Proposal.objects.get(pk=self.kwargs.get("pk")) - return reverse("studies:design_end", args=(proposal.last_study().pk,)) + return reverse("proposals:knowledge_security", args=(proposal.pk,)) diff --git a/reviews/tests.py b/reviews/tests.py index 6f30888f2..7cf8bb1e8 100644 --- a/reviews/tests.py +++ b/reviews/tests.py @@ -258,18 +258,24 @@ def test_auto_review(self): reasons = auto_review(self.proposal) self.assertEqual(len(reasons), 5) - self.study.stressful = YesNoDoubt.YES + self.study.risk = YesNoDoubt.YES self.study.save() reasons = auto_review(self.proposal) self.assertEqual(len(reasons), 6) - self.study.risk = YesNoDoubt.YES - self.study.save() + self.study.proposal.researcher_risk = YesNoDoubt.YES + self.study.proposal.save() reasons = auto_review(self.proposal) self.assertEqual(len(reasons), 7) + self.study.negativity = YesNoDoubt.YES + self.study.save() + + reasons = auto_review(self.proposal) + self.assertEqual(len(reasons), 8) + def test_auto_review_age_groups(self): self.study.has_sessions = True self.study.age_groups.set(AgeGroup.objects.filter(pk=2)) # toddlers diff --git a/reviews/utils/review_utils.py b/reviews/utils/review_utils.py index 8eb6bf9ce..0d90ec3d3 100644 --- a/reviews/utils/review_utils.py +++ b/reviews/utils/review_utils.py @@ -482,19 +482,20 @@ def auto_review(proposal: Proposal): for task in Task.objects.filter(session__study=study): reasons.extend(auto_review_task(study, task)) - if study.stressful in [YesNoDoubt.YES, YesNoDoubt.DOUBT]: + if study.negativity in [YesNoDoubt.YES, YesNoDoubt.DOUBT]: reasons.append( _( - "De onderzoeker geeft aan dat (of twijfelt erover of) het onderzoek op onderdelen of \ -als geheel zodanig belastend is dat deze ondanks de verkregen informed consent vragen zou kunnen oproepen." + "De onderzoeker geeft aan dat sommige vragen binnen het onderzoek mogelijk " + "dermate belastend kunnen zijn dat ze negatieve reacties bij de deelnemers " + "en/of onderzoekers kunnen veroorzaken." ) ) if study.risk in [YesNoDoubt.YES, YesNoDoubt.DOUBT]: reasons.append( _( - "De onderzoeker geeft aan dat (of twijfelt erover of) de risico's op psychische of \ -fysieke schade bij deelname aan het onderzoek meer dan minimaal zijn." + "De onderzoeker geeft aan dat er mogelijk kwesties zijn rondom de veiligheid " + "van de deelnemers tijdens of na het onderzoek." ) ) @@ -514,6 +515,21 @@ def auto_review(proposal: Proposal): max_d=age_group.max_net_duration, ) ) + if proposal.knowledge_security in [YesNoDoubt.YES, YesNoDoubt.DOUBT]: + reasons.append( + _( + "De onderzoeker geeft aan dat er mogelijk kwesties zijn rondom " + "kennisveiligheid." + ) + ) + + if proposal.researcher_risk in [YesNoDoubt.YES, YesNoDoubt.DOUBT]: + reasons.append( + _( + "De onderzoeker geeft aan dat er mogelijk kwesties zijn " + "rondom de veiligheid van de betrokken onderzoekers." + ) + ) return reasons diff --git a/studies/forms.py b/studies/forms.py index 721ab8df1..6d80cf3fa 100644 --- a/studies/forms.py +++ b/studies/forms.py @@ -29,7 +29,7 @@ class StudyForm(SoftValidationMixin, ConditionalModelForm): age_groups_header = TemplatedFormTextField( - header=_("De leeftijdsgroup van je deelnemers"), header_element="h4" + header=_("De leeftijdsgroep van je deelnemers"), header_element="h4" ) legally_incapable_header = TemplatedFormTextField( @@ -277,15 +277,12 @@ class Meta: "deception_details", "negativity", "negativity_details", - "stressful", - "stressful_details", "risk", "risk_details", ] widgets = { "deception": BootstrapRadioSelect(), "negativity": BootstrapRadioSelect(), - "stressful": BootstrapRadioSelect(), "risk": BootstrapRadioSelect(), } @@ -294,8 +291,6 @@ class Meta: "deception_details", "negativity", "negativity_details", - "stressful", - "stressful_details", "risk", "risk_detail", ] @@ -303,23 +298,22 @@ class Meta: def __init__(self, *args, **kwargs): """ - Set the Study for later reference - - Remove empty label from deception/negativity/stressful/risk field and reset the choices - - mark_safe the labels of negativity/stressful/risk + - Remove empty label from deception/negativity/risk field and reset the choices + - mark_safe the labels of negativity/risk """ + self.choice_fields = ( + "deception", + "negativity", + "risk", + ) + super(StudyEndForm, self).__init__(*args, **kwargs) - self.fields["deception"].empty_label = None - self.fields["deception"].choices = YesNoDoubt.choices - self.fields["negativity"].empty_label = None - self.fields["negativity"].choices = YesNoDoubt.choices - self.fields["stressful"].empty_label = None - self.fields["stressful"].choices = YesNoDoubt.choices - self.fields["risk"].empty_label = None - self.fields["risk"].choices = YesNoDoubt.choices + for field in self.choice_fields: + self.fields[field].choices = YesNoDoubt.choices self.fields["negativity"].label = mark_safe(self.fields["negativity"].label) - self.fields["stressful"].label = mark_safe(self.fields["stressful"].label) self.fields["risk"].label = mark_safe(self.fields["risk"].label) if not self.instance.has_sessions: @@ -337,35 +331,18 @@ def clean(self): cleaned_data = super(StudyEndForm, self).clean() # TODO: find a way to hide this on the first view - self.mark_soft_required(cleaned_data, "negativity", "stressful", "risk") + self.mark_soft_required(cleaned_data, "negativity", "risk") if "deception" in self.fields: self.mark_soft_required(cleaned_data, "deception") - self.check_dependency_list( - cleaned_data, - "deception", - "deception_details", - f1_value_list=[YesNoDoubt.YES, YesNoDoubt.DOUBT], - ) - self.check_dependency_list( - cleaned_data, - "negativity", - "negativity_details", - f1_value_list=[YesNoDoubt.YES, YesNoDoubt.DOUBT], - ) - self.check_dependency_list( - cleaned_data, - "stressful", - "stressful_details", - f1_value_list=[YesNoDoubt.YES, YesNoDoubt.DOUBT], - ) - self.check_dependency_list( - cleaned_data, - "risk", - "risk_details", - f1_value_list=[YesNoDoubt.YES, YesNoDoubt.DOUBT], - ) + for field in self.choice_fields: + self.check_dependency_list( + cleaned_data, + f"{field}", + f"{field}_details", + f1_value_list=[YesNoDoubt.YES, YesNoDoubt.DOUBT], + ) class StudyUpdateAttachmentsForm(TemplatedModelForm): diff --git a/studies/migrations/0029_remove_study_stressful_and_more.py b/studies/migrations/0029_remove_study_stressful_and_more.py new file mode 100644 index 000000000..d60bdff50 --- /dev/null +++ b/studies/migrations/0029_remove_study_stressful_and_more.py @@ -0,0 +1,62 @@ +# Generated by Django 4.2.11 on 2024-09-25 14:10 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("studies", "0028_remove_study_sessions_number"), + ] + + operations = [ + migrations.RemoveField( + model_name="study", + name="stressful", + ), + migrations.RemoveField( + model_name="study", + name="stressful_details", + ), + migrations.AlterField( + model_name="study", + name="deception", + field=models.CharField( + blank=True, + choices=[("Y", "ja"), ("N", "nee"), ("?", "twijfel")], + help_text='Misleiding is het doelbewust verschaffen van inaccurate informatie over het doel en/of belangrijke aspecten van de gang van zaken tijdens het onderzoek. Denk aan zaken als een bewust misleidende "cover story" voor het experiment; het ten onrechte suggereren dat er door de deelnemer met andere deelnemers wordt samengewerkt; het onaangekondigd aanbieden van een cruciale geheugentaak of het geven van gefingeerde feedback. Wellicht ten overvloede: het gaat hierbij niet om fillers in bijv. taalwetenschappelijk onderzoek.', + max_length=1, + verbose_name="Is er binnen bovenstaand onderzoekstraject sprake van misleiding van de deelnemer?", + ), + ), + migrations.AlterField( + model_name="study", + name="negativity", + field=models.CharField( + blank=True, + choices=[("Y", "ja"), ("N", "nee"), ("?", "twijfel")], + max_length=1, + verbose_name="Bevat bovenstaand onderzoekstraject elementen die tijdens de deelname zodanig belastend zijn dat deze vragen, weerstand, of zelfs verontwaardiging zouden kunnen oproepen, bijvoorbeeld bij collega-onderzoekers, bij de deelnemers zelf, of bij ouders of andere vertegenwoordigers?", + ), + ), + migrations.AlterField( + model_name="study", + name="negativity_details", + field=models.TextField( + blank=True, + help_text="Geef concrete voorbeelden van de relevante aspecten van jouw onderzoek (bijv. voorbeelden van mogelijk zeer kwetsende woorden of uitspraken in de taak; zeer confronterende vragen in een vragenlijst; negatieve feedback), zodat de commissie zich een goed beeld kan vormen.", + verbose_name="Licht toe", + ), + ), + migrations.AlterField( + model_name="study", + name="risk", + field=models.CharField( + blank=True, + choices=[("Y", "ja"), ("N", "nee"), ("?", "twijfel")], + help_text="Houd hierbij niet alleen rekening met mogelijke psychische of fysieke schadelijke gevolgen, maar ook met andere mogelijke schade, zoals bijv. stigmatisering, (re-)traumatisering, aantasting van zelfbeeld, verlies van privacy, toevalsbevindingen, juridische vervolging of aansprakelijkheid, e.d.", + max_length=1, + verbose_name="Zijn er kwesties rondom de veiligheid van, of risico's voor de deelnemers tijdens of na deelname aan het onderzoek?", + ), + ), + ] diff --git a/studies/models.py b/studies/models.py index fe6e96a37..9a4b2f949 100644 --- a/studies/models.py +++ b/studies/models.py @@ -274,17 +274,17 @@ class Study(models.Model): # Fields with respect to Sessions deception = models.CharField( _( - "Is er binnen bovenstaand onderzoekstraject sprake van \ -misleiding van de deelnemer?" + "Is er binnen bovenstaand onderzoekstraject sprake van " + "misleiding van de deelnemer?" ), help_text=_( - 'Misleiding is het doelbewust verschaffen van inaccurate \ -informatie over het doel en/of belangrijke aspecten van de gang van zaken \ -tijdens het onderzoek. Denk aan zaken als een bewust misleidende "cover story" \ -voor het experiment; het ten onrechte suggereren dat er met andere \ -deelnemers wordt samengewerkt; het onaangekondigd aanbieden van een cruciale \ -geheugentaak of het geven van gefingeerde feedback. Wellicht ten overvloede: \ -het gaat hierbij niet om fillers.' + "Misleiding is het doelbewust verschaffen van inaccurate " + "informatie over het doel en/of belangrijke aspecten van de gang van zaken " + 'tijdens het onderzoek. Denk aan zaken als een bewust misleidende "cover story" ' + "voor het experiment; het ten onrechte suggereren dat er door de deelnemer met andere " + "deelnemers wordt samengewerkt; het onaangekondigd aanbieden van een cruciale " + "geheugentaak of het geven van gefingeerde feedback. Wellicht ten overvloede: " + "het gaat hierbij niet om fillers in bijv. taalwetenschappelijk onderzoek." ), max_length=1, choices=YesNoDoubt.choices, @@ -292,81 +292,48 @@ class Study(models.Model): ) deception_details = models.TextField( _( - "Geef een toelichting en beschrijf hoe en wanneer de deelnemer \ -zal worden gedebrieft." + "Geef een toelichting en beschrijf hoe en wanneer de deelnemer " + "zal worden gedebrieft." ), blank=True, ) negativity = models.CharField( _( - "Bevat bovenstaand onderzoekstraject elementen die \ -tijdens de deelname niet-triviale negatieve emoties kunnen opwekken? \ -Denk hierbij bijvoorbeeld aan emotioneel indringende vragen, kwetsende \ -uitspraken, negatieve feedback, frustrerende, zware, (heel) lange en/of \ -(heel) saaie taken." + "Bevat bovenstaand onderzoekstraject elementen die tijdens" + " de deelname zodanig belastend zijn dat deze vragen, " + "weerstand, of zelfs verontwaardiging zouden kunnen oproepen, " + "bijvoorbeeld bij collega-onderzoekers, bij de deelnemers zelf, " + "of bij ouders of andere vertegenwoordigers?" ), max_length=1, choices=YesNoDoubt.choices, blank=True, ) - negativity_details = models.TextField(_("Licht je antwoord toe."), blank=True) - stressful = models.CharField( - _( - "Bevat bovenstaand onderzoekstraject elementen die tijdens de \ -deelname zodanig belastend zijn dat deze ondanks de verkregen \ -informed consent vragen zou kunnen oproepen (of zelfs \ -verontwaardiging), bijvoorbeeld bij collega-onderzoekers, bij de deelnemers \ -zelf, of bij ouders of andere vertegenwoordigers?" - ), - help_text=mark_safe_lazy( - _( - "Dit zou bijvoorbeeld het geval kunnen zijn \ -bij een 'onmenselijk' lange en uitputtende taak, een zeer confronterende \ -vragenlijst, of voortdurend vernietigende feedback, maar ook bij een ervaren \ -inbreuk op de privacy, of een ander ervaren gebrek aan respect. \ -Let op, het gaat bij deze vraag om de door de deelnemer ervaren belasting \ -tijdens het onderzoek, niet om de opgelopen psychische of fysieke schade \ -door het onderzoek." - ) - ), - max_length=1, - choices=YesNoDoubt.choices, - blank=True, - ) - stressful_details = models.TextField( - _( - "Licht je antwoord toe. Geef concrete voorbeelden van de relevante \ -aspecten van jouw onderzoek (bijv. representatieve voorbeelden van mogelijk zeer \ -kwetsende woorden of uitspraken in de taak, of van zeer confronterende \ -vragen in een vragenlijst), zodat de commissie zich een goed beeld kan \ -vormen." + negativity_details = models.TextField( + _("Licht toe"), + help_text=_( + "Geef concrete voorbeelden van de relevante aspecten van jouw " + "onderzoek (bijv. voorbeelden van mogelijk zeer kwetsende woorden " + "of uitspraken in de taak; zeer confronterende vragen in een " + "vragenlijst; negatieve feedback), zodat de commissie zich een " + "goed beeld kan vormen." ), blank=True, ) + risk = models.CharField( _( - 'Zijn de risico\'s op psychische, fysieke, of andere (bijv. \ -economische, juridische) schade door deelname aan bovenstaand \ -onderzoekstraject meer dan minimaal? \ -D.w.z. ligt de kans op en/of omvang van mogelijke schade \ -bij de deelnemers duidelijk boven het "achtergrondrisico"?' + "Zijn er kwesties rondom de veiligheid van, of risico's voor de " + "deelnemers tijdens of na deelname aan het onderzoek?" ), help_text=mark_safe_lazy( _( - 'Achtergrondrisico is datgene dat gezonde, \ -gemiddelde burgers in de relevante leeftijdscategorie normaalgesproken \ -in het dagelijks leven ten deel valt. \ -Denk bij schade ook aan de gevolgen die het voor de deelnemer of \ -anderen beschikbaar komen van bepaalde informatie kan hebben, bijv. \ -op het vlak van zelfbeeld, stigmatisering door anderen, economische \ -schade door data-koppeling, et cetera. Het achtergrondrisico voor \ -psychische en fysieke schade omvat bijvoorbeeld ook de risico\'s van \ -"routine"-tests, -onderzoeken of -procedures die in alledaagse didactische, \ -psychologische of medische contexten plaatsvinden (zoals een eindexamen, \ -een rijexamen, een stressbestendigheids-assessment, een \ -intelligentie- of persoonlijkheidstest, of een hartslagmeting na fysieke \ -inspanning; dit alles, waar relevant, onder begeleiding van adequaat \ -geschoolde specialisten).' + "Houd hierbij niet alleen rekening met mogelijke psychische " + "of fysieke schadelijke gevolgen, maar ook met andere " + "mogelijke schade, zoals bijv. stigmatisering, " + "(re-)traumatisering, aantasting van zelfbeeld, verlies van " + "privacy, toevalsbevindingen, juridische vervolging of " + "aansprakelijkheid, e.d." ) ), max_length=1, diff --git a/studies/views/study_views.py b/studies/views/study_views.py index 3b54454e4..66062c06f 100644 --- a/studies/views/study_views.py +++ b/studies/views/study_views.py @@ -172,7 +172,7 @@ def get_next_url(self): next_study = Study.objects.get(proposal=proposal, order=next_order) return reverse("studies:update", args=(next_study.pk,)) else: - return reverse("proposals:consent", args=(proposal.pk,)) + return reverse("proposals:knowledge_security", args=(proposal.pk,)) def get_back_url(self): study = self.object