From 2989b7a548ef1f6064bb70fcffd46f22c3dc6f16 Mon Sep 17 00:00:00 2001 From: Michael Villeneuve Date: Thu, 21 Mar 2024 12:02:48 +0100 Subject: [PATCH 1/3] Hotfix/to conclude review api view qs bug (#629) (#630) * fix: add is_committee_review check to ToConcludeReviewApiView qs * fix: add is_committee_review check to other API views * formatting --------- Co-authored-by: Edo Storm <111129464+EdoStorm96@users.noreply.github.com> Co-authored-by: Ty Mees --- reviews/api/views.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/reviews/api/views.py b/reviews/api/views.py index 420f9a212..7a3b48d00 100644 --- a/reviews/api/views.py +++ b/reviews/api/views.py @@ -98,6 +98,7 @@ def get_queryset_for_committee(self): reviewer=self.request.user, review__proposal__reviewing_committee=self.committee, review__continuation__lt=Review.Continuations.DISCONTINUED, + review__is_committee_review=True, ) for obj in objects: @@ -121,6 +122,7 @@ def get_queryset_for_secretary(self): reviewer__groups__name=settings.GROUP_SECRETARY, review__proposal__reviewing_committee=self.committee, review__continuation__lt=Review.Continuations.DISCONTINUED, + review__is_committee_review=True, ) for obj in objects: @@ -171,6 +173,7 @@ def get_queryset_for_committee(self): go="", review__proposal__reviewing_committee=self.committee, review__continuation__lt=Review.Continuations.DISCONTINUED, + review__is_committee_review=True, ) for obj in objects: @@ -195,6 +198,7 @@ def get_queryset_for_secretary(self): go="", review__proposal__reviewing_committee=self.committee, review__continuation__lt=Review.Continuations.DISCONTINUED, + review__is_committee_review=True, ) for obj in objects: @@ -238,7 +242,8 @@ def get_queryset(self): go="", review__proposal__reviewing_committee=self.committee, review__continuation__lt=Review.Continuations.DISCONTINUED, - ).exclude(review__stage=Review.Stages.SUPERVISOR) + review__is_committee_review=True, + ) for obj in objects: proposal = obj.review.proposal @@ -288,7 +293,7 @@ class OpenSupervisorDecisionApiView(BaseDecisionApiView): default_sort = ("proposal.date_submitted_supervisor", "desc") def get_queryset(self): - """Returns all proposals that still need to be reviewed by the secretary""" + """Returns all proposals that still need to be reviewed by the supervisor""" objects = Decision.objects.filter( go="", review__stage=Review.Stages.SUPERVISOR, @@ -379,6 +384,7 @@ def get_queryset(self): objects = ( Review.objects.filter( stage__gte=Review.Stages.CLOSING, + is_committee_review=True, proposal__status__gte=Proposal.Statuses.SUBMITTED, proposal__date_confirmed=None, proposal__reviewing_committee=self.committee, @@ -440,6 +446,7 @@ def get_queryset(self): proposal__reviewing_committee=self.committee, stage=Review.Stages.CLOSED, continuation=Review.Continuations.REVISION, + is_committee_review=True, ) # 3. Finally, exclude candidates whose proposal # has a child with a revision review @@ -537,6 +544,7 @@ def get_queryset(self): stage__gte=Review.Stages.ASSIGNMENT, proposal__status__gte=Proposal.Statuses.SUBMITTED, proposal__reviewing_committee=self.committee, + is_committee_review=True, ) .select_related( "proposal", From 00602f5e71b888bb3dee93ca1a150e3414552f02 Mon Sep 17 00:00:00 2001 From: Michael Villeneuve Date: Wed, 27 Mar 2024 12:48:41 +0100 Subject: [PATCH 2/3] Update master from acceptation (#640) * Hotfix/to conclude review api view qs bug (#629) * fix: add is_committee_review check to ToConcludeReviewApiView qs * fix: add is_committee_review check to other API views * formatting --------- Co-authored-by: Ty Mees * fix: apply is_committee_review to filter in get_committee_decisions() * formatting * fix: Save reviews after closure in update_go * fix: hacky changes to working of end_date in qs * formatting * fix: remove explicit protocol prefix from file links (#637) * fix: remove explicit protocol prefix from file links Also adding quotations around the URL * feat: Add protocol prefix to BASE_URL for consistency --------- Co-authored-by: Edo Storm <111129464+EdoStorm96@users.noreply.github.com> Co-authored-by: Ty Mees Co-authored-by: Edo Storm --- fetc/settings.py | 2 +- proposals/utils/pdf_diff_logic.py | 2 +- reviews/models.py | 1 + reviews/views.py | 11 ++++++++--- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/fetc/settings.py b/fetc/settings.py index 6b753f47e..b76c91907 100644 --- a/fetc/settings.py +++ b/fetc/settings.py @@ -158,7 +158,7 @@ MENU_HIDE_EMPTY = False # Base URL -BASE_URL = "127.0.0.1:8000" +BASE_URL = "https://127.0.0.1:8000" # CSRF Setting CSRF_FAILURE_VIEW = "main.error_views.csrf_failure" diff --git a/proposals/utils/pdf_diff_logic.py b/proposals/utils/pdf_diff_logic.py index 032ba5076..64ff04b47 100644 --- a/proposals/utils/pdf_diff_logic.py +++ b/proposals/utils/pdf_diff_logic.py @@ -286,7 +286,7 @@ def create_unordered_html_list(self, lst): def handle_field_file(self, field_file): if field_file: output = format_html( - "{}", + '{}', f"{settings.BASE_URL}{field_file.url}", _("Download"), ) diff --git a/reviews/models.py b/reviews/models.py index 24f5d8334..78ede667e 100644 --- a/reviews/models.py +++ b/reviews/models.py @@ -80,6 +80,7 @@ def update_go(self, last_decision=None): start_assignment_phase(self.proposal) self.stage = self.Stages.CLOSED + self.save() # On NO-GO, reset the Proposal status else: # See comment above diff --git a/reviews/views.py b/reviews/views.py index bbe716f2e..3b9c4e9a8 100644 --- a/reviews/views.py +++ b/reviews/views.py @@ -132,7 +132,8 @@ def get_context_data(self, **kwargs): def get_committee_decisions(self): decisions = Decision.objects.filter( - review__proposal__reviewing_committee=self.committee + review__proposal__reviewing_committee=self.committee, + review__is_committee_review=True, ).select_related( "reviewer", "review", @@ -159,11 +160,15 @@ def get_review_counts_last_year(self): decisions = self.get_committee_decisions() + # This is done to include in the base_filter, decisions which are taken + # today. The comparison was having some troubles due to different + # time formats. + end_date = self.end_date + timedelta(days=1) + reviewers = get_user_model().objects.filter(decision__in=decisions) base_filter = Q( decision__review__date_start__gt=self.start_date, - decision__review__date_start__lt=self.end_date, - decision__review__stage__gt=Review.Stages.SUPERVISOR, + decision__review__date_start__lte=end_date, ) return reviewers.annotate( total=Count("decision", filter=base_filter), From ebe71b2473f285fd6da3fd0a05840d80625e09eb Mon Sep 17 00:00:00 2001 From: Michael Villeneuve Date: Thu, 10 Oct 2024 14:05:02 +0200 Subject: [PATCH 3/3] Update master from Acceptation (#714) * feat: clearer warning messages * refactor: student-inclusive language * feat: Well overdue requirements bump (#713) --------- Co-authored-by: Mees, T.D. (Ty) --- locale/en/LC_MESSAGES/django.po | 168 +++++++++++++++++++------------- main/templates/main/index.html | 50 ++++++---- requirements.txt | 111 ++++++++++----------- 3 files changed, 187 insertions(+), 142 deletions(-) diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index e6a4c4004..fde85e33a 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-04-15 11:16+0200\n" +"POT-Creation-Date: 2024-06-18 15:35+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:187 +#: faqs/menus.py:7 main/templates/main/index.html:201 msgid "FETC-GW website" msgstr "FEtC-H website" @@ -29,12 +29,12 @@ msgstr "https://fetc-gw.wp.hum.uu.nl/en/" msgid "Reglement FETC-GW" msgstr "Regulations FEtC-H" -#: faqs/menus.py:13 main/templates/main/index.html:190 +#: faqs/menus.py:13 main/templates/main/index.html:204 #: proposals/templates/proposals/proposal_start_pre_approved.html:11 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:194 +#: faqs/menus.py:17 main/templates/main/index.html:208 #: proposals/templates/proposals/study_consent.html:8 #: proposals/templates/proposals/translated_consent_forms.html:7 #: proposals/utils/pdf_diff_logic.py:878 @@ -149,7 +149,7 @@ msgid "Het interventieonderzoek" msgstr "Intervention study" #: interventions/templates/interventions/intervention_form.html:17 -#: main/models.py:50 +#: main/models.py:54 #: observations/templates/observations/observation_form.html:26 #: studies/templates/studies/study_end.html:65 #: studies/templates/studies/study_end.html:96 @@ -192,7 +192,7 @@ msgid "Dit veld is verplicht." msgstr "This field is required." #: main/menus.py:6 main/templates/main/index.html:7 -#: main/templates/main/index.html:53 main/templates/main/landing.html:33 +#: main/templates/main/index.html:67 main/templates/main/landing.html:33 msgid "Startpagina" msgstr "Start page" @@ -204,29 +204,29 @@ msgstr "Log in" msgid "Log uit" msgstr "Log out" -#: main/models.py:8 main/utils.py:16 proposals/utils/pdf_diff_logic.py:244 +#: main/models.py:12 main/utils.py:16 proposals/utils/pdf_diff_logic.py:244 msgid "ja" msgstr "yes" -#: main/models.py:9 main/utils.py:16 proposals/utils/pdf_diff_logic.py:244 +#: main/models.py:13 main/utils.py:16 proposals/utils/pdf_diff_logic.py:244 msgid "nee" msgstr "no" -#: main/models.py:10 +#: main/models.py:14 msgid "twijfel" msgstr "uncertain" -#: main/models.py:59 +#: main/models.py:63 msgid "Geef aan waar de dataverzameling plaatsvindt" msgstr "Specify where the data collection will take place" -#: main/models.py:63 observations/models.py:139 proposals/models.py:282 +#: main/models.py:67 observations/models.py:139 proposals/models.py:282 #: studies/models.py:211 studies/models.py:253 tasks/models.py:169 #: tasks/models.py:181 msgid "Namelijk" msgstr "Please specify" -#: main/models.py:69 +#: main/models.py:73 msgid "" "Vindt het afnemen van de taak plaats onder het toeziend oog van de leraar of " "een ander persoon die bevoegd is?" @@ -234,13 +234,13 @@ msgstr "" "Will the task be conducted under the supervision of the teacher or another " "qualified person?" -#: main/models.py:76 +#: main/models.py:80 msgid "Is de testleider in het bezit van een VOG?" msgstr "" "Does the test leader hold a Certificate of Conduct (Verklaring Omtrent " "Gedrag, VOG)?" -#: main/models.py:78 +#: main/models.py:82 msgid "" "Iedereen die op een school werkt moet in het bezit zijn van een " "Verklaring Omtrent Gedrag (VOG, zie portalsupport.gw@uu.nl." msgstr "" -"If you suspect this is incorrect, please contact support at portalsupport.gw@uu.nl. " +"If you suspect this is incorrect, please contact portalsupport.gw@uu.nl" + +#: main/templates/main/index.html:41 +msgid "" +"Wij konden niet verifiëren bij welke faculteit je werkt/studeert. Deze " +"portal is bedoeld voor medewerkers en studenten van de Faculteit " +"Geesteswetenschappen. Controleer of je inderdaad een aanvraag wilt indienen " +"bij de Facultaire Ethische Toetsingscommissie van Geesteswetenschappen." +msgstr "" +"We could not verify which faculty you are affiliated with. This portal is " +"intended for employees and students of the Faculty of Humanities. Please " +"check if you indeed want to submit an application to the Faculty Ethics " +"Assessment Committee of Humanities." -#: main/templates/main/index.html:59 +#: main/templates/main/index.html:49 +msgid "" +"Indien dat het geval is kan je de portal gewoon gebruiken. Voor vragen kan " +"je contact opnemen met portalsupport.gw@uu.nl." +msgstr "" +"If that is the case, you can still use the portal. If you have any " +"questions, you can contact portalsupport.gw@uu.nl" + +#: main/templates/main/index.html:73 msgid "" "Formele goedkeuring door één van beide kamers van de FETC-GW (middels een " "formele goedkeuringsbrief) is vereist voor mensgebonden onderzoek binnen de " @@ -605,7 +620,7 @@ msgstr "" "even to recruiting participants. Therefore, always wait for the letter of " "approval before starting research activities." -#: main/templates/main/index.html:64 +#: main/templates/main/index.html:78 msgid "" "NB: Goedgekeurde aanvragen komen in het archief van deze portal te staan, " "zie het menu hierboven. Dit archief is toegankelijk voor iedereen met een " @@ -615,7 +630,7 @@ msgstr "" "studying or working at the Faculty of Humanities with a Solis-ID can access " "this archive through the menu bar above." -#: main/templates/main/index.html:69 +#: main/templates/main/index.html:83 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 " @@ -626,13 +641,13 @@ msgstr "" "email to portalsupport.gw@uu.nl." -#: main/templates/main/index.html:75 +#: main/templates/main/index.html:89 #: proposals/templates/proposals/proposal_start.html:16 #: proposals/templates/proposals/proposal_start_practice.html:16 msgid "Check voor het indienen:" msgstr "Before submitting an application, please consult:" -#: main/templates/main/index.html:78 +#: main/templates/main/index.html:92 #: proposals/templates/proposals/proposal_start.html:19 #: proposals/templates/proposals/proposal_start_practice.html:19 msgid "" @@ -642,7 +657,7 @@ msgstr "" "The UU-" "webpage of the FEtC-H for news and upcoming dates." -#: main/templates/main/index.html:84 +#: main/templates/main/index.html:98 msgid "" "Het reglement van de FETC-GW." @@ -650,7 +665,7 @@ msgstr "" "The regulations of the FEtC-H ." -#: main/templates/main/index.html:90 +#: main/templates/main/index.html:104 msgid "" "Gebruik de juiste (meest recente) model documents for informed consent. (Latest " "version: December 2021)" -#: main/templates/main/index.html:96 +#: main/templates/main/index.html:110 msgid "" "
  • Voor advies over data management (plannen): datamanagement.gw@uu.nl.
  • Voor " @@ -679,93 +694,93 @@ msgstr "" "itself: portalsupport.gw@uu.nl." "
  • " -#: main/templates/main/index.html:112 +#: main/templates/main/index.html:126 msgid "In deze portal kan je het volgende doen:" msgstr "In this portal you can do the following:" -#: main/templates/main/index.html:120 +#: main/templates/main/index.html:134 msgid "Dien een nieuwe aanvraag in" msgstr "Submit a new proposal" -#: main/templates/main/index.html:124 +#: main/templates/main/index.html:138 msgid "die volledig nieuw is in deze portal;" msgstr "that is completely new in this portal;" -#: main/templates/main/index.html:127 +#: main/templates/main/index.html:141 msgid "op basis van een kopie van een oude aanvraag;" msgstr "from a copy of an old proposal;" -#: main/templates/main/index.html:130 +#: main/templates/main/index.html:144 msgid "voor (al dan niet goedgekeurde) subsidieaanvragen;" msgstr "to supplement a grant application" -#: main/templates/main/index.html:133 +#: main/templates/main/index.html:147 msgid "die al goedgekeurd is door een andere ethische toetsingscomissie." msgstr "that has been approved by another ethics committee." -#: main/templates/main/index.html:138 +#: main/templates/main/index.html:152 msgid "Een aanvraag reviseren" msgstr "Revise a proposal" -#: main/templates/main/index.html:142 +#: main/templates/main/index.html:156 msgid "als een revisie, gebaseerd op opmerkingen van de FETC-GW;" msgstr "as a revision, based on comments of the FEtC-H;" -#: main/templates/main/index.html:145 +#: main/templates/main/index.html:159 msgid "als amendement, wanneer de aanvraag al goedgekeurd is door de FETC-GW." msgstr "" "as an amendment, after your proposal has already been approved by the FEtC-H." -#: main/templates/main/index.html:152 +#: main/templates/main/index.html:166 msgid "Bekijk" msgstr "View" -#: main/templates/main/index.html:155 +#: main/templates/main/index.html:169 msgid "mijn conceptaanvragen;" msgstr "my draft applications;" -#: main/templates/main/index.html:158 +#: main/templates/main/index.html:172 msgid "mijn oefenaanvragen;" msgstr "my practice applications;" -#: main/templates/main/index.html:161 +#: main/templates/main/index.html:175 msgid "mijn ingediende aanvragen;" msgstr "my submitted applications;" -#: main/templates/main/index.html:164 +#: main/templates/main/index.html:178 msgid "mijn afgehandelde aanvragen;" msgstr "my processed applications;" -#: main/templates/main/index.html:167 +#: main/templates/main/index.html:181 msgid "mijn aanvragen als eindverantwoordelijke;" msgstr "my supervised applications;" -#: main/templates/main/index.html:170 +#: main/templates/main/index.html:184 msgid "al mijn aanvragen." msgstr "all my applications" -#: main/templates/main/index.html:173 +#: main/templates/main/index.html:187 msgid "FETC-GW archief" msgstr "FEtC-H archive" -#: main/templates/main/index.html:176 +#: main/templates/main/index.html:190 msgid "Alle goedgekeurde aanvragen bekijken van de Algemene Kamer" msgstr "View all processed and approved applications of the General Chamber" -#: main/templates/main/index.html:179 +#: main/templates/main/index.html:193 msgid "Alle goedgekeurde aanvragen bekijken van de Linguïstiek Kamer" msgstr "" "View all processed and approved applications of the Linguistics Chamber" -#: main/templates/main/index.html:190 +#: main/templates/main/index.html:204 msgid "Reglement van de FETC-GW" msgstr "Regulations of the FEtC-H" -#: main/templates/main/index.html:197 +#: main/templates/main/index.html:211 msgid "Veelgestelde vragen m.b.t. dit portal" msgstr "Frequently asked questions relating to this portal" -#: main/templates/main/index.html:204 +#: main/templates/main/index.html:218 msgid "Bannerfoto door Kim O'leary" msgstr "Cover image by Kim O'leary" @@ -2176,21 +2191,32 @@ msgid "Nuttige informatie:" msgstr "Useful information:" #: proposals/templates/proposals/proposal_data_management.html:87 +#, fuzzy +#| msgid "" +#| "Voor vragen over privacy, zoals: \"Wat zijn persoonlijke gegevens?\" of " +#| "\"Wanneer mag ik mijn onderzoek anoniem noemen?\", raden we je aan het Data " +#| "Privacy Handboek te raadplegen." msgid "" "Voor vragen over privacy, zoals: \"Wat zijn persoonlijke gegevens?\" of " "\"Wanneer mag ik mijn onderzoek anoniem noemen?\", raden we je aan het Data " -"Privacy Handboek te raadplegen." +"href=\"https://utrechtuniversity.github.io/dataprivacyhandbook/\" " +"target=\"_blank\">Data Privacy Handboek te raadplegen." msgstr "" "For all your questions regarding privacy, e.g.: \"What are personal data?\" " "or \"When may I call my research anonymous?\", consult the Data Privacy Handbook." -#: proposals/templates/proposals/proposal_data_management.html:93 +#: proposals/templates/proposals/proposal_data_management.html:94 +#, fuzzy +#| msgid "" +#| "Voor advies op het gebied van privacy en de AVG kun je contact opnemen " +#| "met de privacy officer van GW via privacy.gw@uu.nl." msgid "" "Voor advies op het gebied van privacy en de AVG kun je contact opnemen met " -"de privacy officer van GW via privacy." -"gw@uu.nl." +"de privacy officer van GW via privacy.gw@uu.nl." msgstr "" "For advice relating to privacy and the AVG, you can contact the privacy " "officer of the humanities at privacy." @@ -5244,3 +5270,11 @@ msgstr "Task edited" #: tasks/views/task_views.py:56 msgid "Taak verwijderd" msgstr "Task deleted" + +#~ msgid "Volgens onze gegevens werk/studeer je bij de" +#~ msgstr "According to our information, you work/study at the" + +#~ msgid "" +#~ "Volgens onze gegevens werk/studeer je bij een andere faculteit of dienst." +#~ msgstr "" +#~ "According to our data, you work/study at another faculty or service." diff --git a/main/templates/main/index.html b/main/templates/main/index.html index 10f923f63..700b6dcbd 100644 --- a/main/templates/main/index.html +++ b/main/templates/main/index.html @@ -14,30 +14,44 @@ {% if not is_humanities %}
    -

    - {% blocktrans trimmed %} - Deze portal is bedoeld voor medewerkers (en studenten) van de Faculteit Geesteswetenschappen. - {% endblocktrans %} - {% if user.faculties.all %} - {# Filters do not like blocktrans, so that value is just outside... #} + {% if user.faculties.all %} + {# Non-humanities faculty known #} +

    {% blocktrans trimmed %} + Deze portal is bedoeld voor medewerkers (en studenten) van de Faculteit Geesteswetenschappen. Volgens onze gegevens werk/studeer je bij de {% endblocktrans %} {{ user.faculties.all|join:',' }}. - {% else %} +

    +

    {% blocktrans trimmed %} - Volgens onze gegevens werk/studeer je bij een andere faculteit of dienst. + Controleer of je inderdaad een aanvraag wilt indienen bij de Facultaire Ethische + Toetsingscommissie van Geesteswetenschappen. Indien dat het geval is kan je de portal + gewoon gebruiken. {% endblocktrans %} - {% endif %} - {% blocktrans trimmed %} - Controleer of je inderdaad een aanvraag wilt indienen bij de Facultaire Ethische Toetsingscommissie van Geesteswetenschappen. - {% endblocktrans %} -

    -

    - {% blocktrans trimmed %} - Als je vermoedt dat dit incorrect is, neem dan contact op met portalsupport.gw@uu.nl. - {% endblocktrans %} -

    +

    +

    + {% blocktrans trimmed %} + Als je vermoedt dat dit incorrect is, neem dan contact op met portalsupport.gw@uu.nl. + {% endblocktrans %} +

    + {% else %} + {# No faculty data #} +

    + {% blocktrans trimmed %} + Wij konden niet verifiëren bij welke faculteit je werkt/studeert. Deze portal is bedoeld + voor medewerkers en studenten van de Faculteit Geesteswetenschappen. Controleer of je + inderdaad een aanvraag wilt indienen bij de Facultaire Ethische Toetsingscommissie van + Geesteswetenschappen. + {% endblocktrans %} +

    +

    + {% blocktrans trimmed %} + Indien dat het geval is kan je de portal gewoon gebruiken. Voor vragen kan je contact + opnemen met portalsupport.gw@uu.nl. + {% endblocktrans %} +

    + {% endif %}
    {% endif %} diff --git a/requirements.txt b/requirements.txt index 0dad18191..6ca7a9572 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,7 @@ # This file is autogenerated by pip-compile with Python 3.9 # by the following command: # -# pip-compile -U +# pip-compile requirements.in # -e git+https://github.com/UiL-OTS-labs/python-docx2txt#egg=docx2txt # via -r requirements.in @@ -19,9 +19,9 @@ asn1crypto==1.5.1 # oscrypto # pyhanko # pyhanko-certvalidator -babel==2.14.0 +babel==2.16.0 # via sphinx -black==24.3.0 +black==24.10.0 # via -r requirements.in blessed==1.20.0 # via curtsies @@ -29,11 +29,11 @@ bpython==0.24 # via -r requirements.in cdh-django-core[federated-auth] @ git+https://github.com/CentreForDigitalHumanities/django-shared-core.git@v3.1.0 # via -r requirements.in -certifi==2024.2.2 +certifi==2024.8.30 # via # requests # sentry-sdk -cffi==1.16.0 +cffi==1.17.1 # via cryptography chardet==5.2.0 # via reportlab @@ -48,7 +48,7 @@ closure==20191111 # via uil-django-core colorama==0.4.6 # via djlint -cryptography==42.0.5 +cryptography==43.0.1 # via # pyhanko # pyhanko-certvalidator @@ -86,7 +86,7 @@ django==3.2.25 # sentry-sdk # sphinxcontrib-django # uil-django-core -django-auth-ldap==4.7.0 +django-auth-ldap==4.8.0 # via -r requirements.in django-braces==1.15.0 # via -r requirements.in @@ -94,7 +94,7 @@ django-debug-toolbar==4.3.0 # via -r requirements.in django-extensions==3.2.3 # via -r requirements.in -django-impersonate==1.9.2 +django-impersonate==1.9.4 # via -r requirements.in django-modeltranslation==0.18.11 # via -r requirements.in @@ -110,9 +110,9 @@ djangosaml2==1.6.0 # via # -r requirements.in # cdh-django-core -djlint==1.34.1 +djlint==1.35.2 # via -r requirements.in -docutils==0.20.1 +docutils==0.21.2 # via # sphinx # sphinx-rtd-theme @@ -120,9 +120,9 @@ editorconfig==0.12.4 # via # cssbeautifier # jsbeautifier -elementpath==4.4.0 +elementpath==4.5.0 # via xmlschema -greenlet==3.0.3 +greenlet==3.1.1 # via bpython html-tag-names==0.1.2 # via djlint @@ -132,25 +132,25 @@ html5lib==1.1 # via # -r requirements.in # xhtml2pdf -idna==3.6 +idna==3.10 # via requests imagesize==1.4.1 # via sphinx -importlib-metadata==7.1.0 +importlib-metadata==8.5.0 # via sphinx -jinja2==3.1.3 +jinja2==3.1.4 # via sphinx jsbeautifier==1.15.1 # via # cssbeautifier # djlint -json5==0.9.24 +json5==0.9.25 # via djlint lesscpy==0.15.1 # via uil-django-core -lxml==5.2.0 +lxml==5.3.0 # via svglib -markupsafe==2.1.5 +markupsafe==3.0.0 # via jinja2 mypy-extensions==1.0.0 # via black @@ -158,7 +158,7 @@ mysqlclient==1.4.6 # via -r requirements.in oscrypto==1.3.0 # via pyhanko-certvalidator -packaging==24.0 +packaging==24.1 # via # black # sphinx @@ -166,16 +166,16 @@ pathspec==0.12.1 # via # black # djlint -pbr==6.0.0 +pbr==6.1.0 # via sphinxcontrib-apidoc pdftotext==2.2.2 # via -r requirements.in -pillow==10.3.0 +pillow==10.4.0 # via # -r requirements.in # reportlab # xhtml2pdf -platformdirs==4.2.0 +platformdirs==4.3.6 # via black ply==3.11 # via lesscpy @@ -183,38 +183,36 @@ pprintpp==0.4.0 # via sphinxcontrib-django pscript==0.7.7 # via vbuild -pyasn1==0.6.0 +pyasn1==0.6.1 # via # pyasn1-modules # python-ldap -pyasn1-modules==0.4.0 +pyasn1-modules==0.4.1 # via python-ldap pycparser==2.22 # via cffi -pygments==2.17.2 +pygments==2.18.0 # via # -r requirements.in # bpython # sphinx -pyhanko==0.23.2 +pyhanko==0.25.1 # via xhtml2pdf pyhanko-certvalidator==0.26.3 # via # pyhanko # xhtml2pdf -pyjwt==2.8.0 +pyjwt==2.9.0 # via uil-django-core -pyopenssl==24.1.0 +pyopenssl==24.2.1 # via pysaml2 -pypdf==4.1.0 +pypdf==5.0.1 # via xhtml2pdf -pypng==0.20220715.0 - # via qrcode pysaml2==7.5.0 # via djangosaml2 pyscss==1.4.0 # via uil-django-core -python-bidi==0.4.2 +python-bidi==0.6.0 # via xhtml2pdf python-dateutil==2.9.0.post0 # via pysaml2 @@ -222,25 +220,25 @@ python-ldap==3.4.4 # via django-auth-ldap python-magic==0.4.27 # via -r requirements.in -pytz==2024.1 +pytz==2024.2 # via # django # pysaml2 pyxdg==0.28 # via bpython -pyyaml==6.0.1 +pyyaml==6.0.2 # via # djlint # pyhanko -qrcode==7.4.2 +qrcode==8.0 # via pyhanko -regex==2023.12.25 +regex==2024.9.11 # via djlint -reportlab==4.0.9 +reportlab==4.2.5 # via # svglib # xhtml2pdf -requests==2.31.0 +requests==2.32.3 # via # -r requirements.in # bpython @@ -249,7 +247,7 @@ requests==2.31.0 # pysaml2 # sphinx # uil-django-core -sentry-sdk[django]==1.44.0 +sentry-sdk[django]==2.16.0 # via -r requirements.in six==1.16.0 # via @@ -258,67 +256,66 @@ six==1.16.0 # html5lib # jsbeautifier # pyscss - # python-bidi # python-dateutil snowballstemmer==2.2.0 # via sphinx -sphinx==7.2.6 +sphinx==7.4.7 # via # -r requirements.in # sphinx-rtd-theme # sphinxcontrib-apidoc # sphinxcontrib-django # sphinxcontrib-jquery -sphinx-rtd-theme==2.0.0 +sphinx-rtd-theme==3.0.0 # via -r requirements.in sphinxcontrib-apidoc==0.5.0 # via -r requirements.in -sphinxcontrib-applehelp==1.0.8 +sphinxcontrib-applehelp==2.0.0 # via sphinx -sphinxcontrib-devhelp==1.0.6 +sphinxcontrib-devhelp==2.0.0 # via sphinx sphinxcontrib-django==2.5 # via -r requirements.in -sphinxcontrib-htmlhelp==2.0.5 +sphinxcontrib-htmlhelp==2.1.0 # via sphinx sphinxcontrib-jquery==4.1 # via sphinx-rtd-theme sphinxcontrib-jsmath==1.0.1 # via sphinx -sphinxcontrib-qthelp==1.0.7 +sphinxcontrib-qthelp==2.0.0 # via sphinx -sphinxcontrib-serializinghtml==1.1.10 +sphinxcontrib-serializinghtml==2.0.0 # via sphinx -sqlparse==0.4.4 +sqlparse==0.5.1 # via # django # django-debug-toolbar svglib==1.5.1 # via xhtml2pdf -tinycss2==1.2.1 +tinycss2==1.3.0 # via # cssselect2 # svglib -tomli==2.0.1 +tomli==2.0.2 # via # black # djlint -tqdm==4.66.2 + # sphinx +tqdm==4.66.5 # via djlint -typing-extensions==4.10.0 +typing-extensions==4.12.2 # via # asgiref # black # django-modeltranslation # pypdf - # qrcode tzlocal==5.2 # via pyhanko ua-parser==0.18.0 # via user-agents -uritools==4.0.2 +uritools==4.0.3 # via pyhanko-certvalidator -urllib3==2.2.1 +urllib3==2.2.3 # via # requests # sentry-sdk @@ -335,9 +332,9 @@ webencodings==0.5.1 # tinycss2 wrapt==1.16.0 # via deprecated -xhtml2pdf==0.2.15 +xhtml2pdf==0.2.16 # via -r requirements.in xmlschema==2.5.1 # via pysaml2 -zipp==3.18.1 +zipp==3.20.2 # via importlib-metadata