Skip to content

Merge Feature/pbs 26-2 into develop#11657

Merged
adlius merged 32 commits intodevelopfrom
feature/pbs-26-2
Mar 26, 2026
Merged

Merge Feature/pbs 26-2 into develop#11657
adlius merged 32 commits intodevelopfrom
feature/pbs-26-2

Conversation

@adlius
Copy link
Collaborator

@adlius adlius commented Mar 25, 2026

Ticket

Purpose

Changes

Side Effects

QE Notes

CE Notes

Documentation

Vlad0n20 and others added 30 commits February 4, 2026 00:07
* Update RegistrationActionSerializer

* Update RegistrationActionSerializer
…e service type (#11543)

* get default_license_id on preprint creation to handle it on FE (looks like it is not used  drafts/id/metadata) for prepints in browser url so for get request is is redundant

get default_license_id on draft registration creation (to get for FE after creation) and also for GET/ request to get it on drafts/id/metadata request

* implement asc sorting for admin brand tab and showing brand related unique provider types
* Update share

* Fix manage command
…ojects in API (#11425)

* add include_children to delete contributors

* atomic contributor remove; add tests

* remove from children only for nodes

* fix tests

---------

Co-authored-by: Yuhuai Liu <yuhuai@cos.io>
…#11397)

* fixed affiliation update for write contributors in registrations

* removed redundant blank line

* fixed tests

* fixed tests

* fixed a test

* don't expect errors in tests
…#11567)

* if preprint is pending moderation show it for not contributors/moderators/Logged-out users using /pending-moderation redirection on access

* update testcases to be it compatable with 'This preprint is pending moderation and is not yet publicly available.' logic

* test update

* test update

* test update
…n FE (looks like it is not used drafts/id/metadata) for prepints in browser url so for get request is is redundant (#11464)

get default_license_id on draft registration creation (to get for FE after creation) and also for GET/ request to get it on drafts/id/metadata request
* add list_serializer_class for NodeContributorsCreateSerializer; minor optimization

* add bulk add_contributor_registered_or_not method

* Use DRY for NodeContributorsBulkCreateListSerializer

* fix changes after notification refactor

* add default email_preferences to NodeContributorsBulkCreateListSerializer
#11568)

* update gdpr delete logic

* fix test; better error handling
…1285)

* [ENG-8514] Remove CSRF protection from reset password api v2 POST (#11246)

* remove csrf protection from reset password endpoint

* update test

* add background color prop to Brand (#11254)

* fix flaky test_serialized_metadata

* fix throttle test

* reset throttle cache

* don't ignore components when create a view-only link

* fixed updating subscribe_osf_general_email subscription

* [ENG-7277] Update doc to include version as relationship (#11262)

* added tests

* [ENG-8691] Wrong server on reset password email (#11271)

* use same logic for admin and web password reset

* fix tests

* enable filtering for linked-nodes endpoint (#11273)

* remove deleted users from institutional dashboard (#11261)

* fixed tests

* [ENG-7803] Update text on VOL modal for registration (#11279)

* add a file removal feature for a node (registration) using admin panel

* delete file only for archived registration when it is not possible from user side to avoid inconsistency

* remove file from scheme response blocks

* delete file from registration and metadata and keep it for original project

---------

Co-authored-by: antkryt <ant.krytskyi@gmail.com>
Co-authored-by: John Tordoff <Johnetordoff@users.noreply.github.com>
Co-authored-by: Ihor Sokhan <isokhan@exoft.net>
Co-authored-by: Vlad0n20 <137097005+Vlad0n20@users.noreply.github.com>
* implement admin user merge as a background task

* fix test
…e) (#11591)

* implement asc sorting for admin brand tab (case insensitive)

* Fix indentation in brand list template
Revert BE changes meant to fix 10042 and replace with FE changes.
* Add management command to manual archive

* fix test

* Fix lints

* Fix tests
* use GV addons caching when it's needed

* fixed None issue when iterate

* fixed tests
* removed ember mentions of ember in docker and readme

* removed ember-related constants, flags, tests and functionality

* fixed redirects to unexisting index and dashboard flask views

* fixed redirects

* added redirect for removed views

* removed assert for duplicated redirect as it'll be handled by angular

* fix imports after notification refactor

* fix tests

* remove edit_draft_registration_page and new_draft_registration views

---------

Co-authored-by: Ihor Sokhan <isokhan@exoft.net>
…ren projects in API (#11605)

* raise permission error if user is not admin on child node

* fix tests
…tus (#11604)

* indicate if the preprint is spammy with meta: {flagged_content: true}

* make sure that the sitemap doesn’t include any spammy preprint.

* update generate sitemap test

* get base get_meta in child meta to keep all needed meta data

* exclude spam content for preprints sitemap

* unify server response on getting specific registry/node/preprint if it is spammy to make it possible to create info page on front end

* exclude spam from Nodes and Registrations on sitemap generation

* avoid errors for objects where spam may not be determined

* update code

* show more specific message for spammy resource on contributor access {'flagged_content': True} to render specific UI to show contributor how to get support to ham the resource

* implement unittests for spammy resource contributor access

* refactor code

* show if resource is spammed on retrieval to all types of user

* add tests

* ensure that the sitemap is working correctly for spammed content

* Delete api_tests/preprints/views/test_preprint_detail_new_behaviors.py

remove not needed test

* raise Gone for deleted not spammed preprint to keep it same as for other deleted resources

* change 404 to 410 for deleted preprints in tests

* change 404 to 410 for deleted preprints in tests
* fixed not shared spam_data among user and his nodes/preprints

* fixed case when resource is a user

* handle hammy user cases

* fixed old tests

* creator is spammed instead of flagged when a node contains spam

* fixed tests and case when suspend user directly thus must spam main node/preprint

* capture notifications
* remove vulnarable packages and some web ui content

* add missing changes

* return project template

* fix tests

* remove unused packages
* [ENG-10083] Add type<-->is_digest "relation" and update subscription (#11575)

* Add is_digest_type property to NotificationType and log message in emit method
* Fix is_digest handling in NotificationType.emit method
* Log message update in NotificationType.emit method for is_digest handling
* fix unit tests

---------

Co-authored-by: Ostap Zherebetskyi <ozherebetskyi@exoft.net>

* Add notification subscriptions de-duplication v2 command (#11576)

Co-authored-by: Ostap Zherebetskyi <ozherebetskyi@exoft.net>

* [ENG-10190][ENG-10214] Permanently update a couple of templates to match admin/admin changes

Update archive_size_exceeded_user and provider_reviews_resubmission_confirmation templates

* Update changelog and bump version

* Exclude spam and deleted Registration from queryset (#11572)

* [ENG-10135] - Fix/eng 10135 (#11587)

* Exclude spam and deleted Registration from queryset

* Update RegistrationActionList to check deleted flag

* Fix tests

* Fix test

* Feature/fair signposting (#11599)

* linkset initial implementation

* linkset initial implementation (updating data extraction and adding serialization)

* and \n in EOF instead of %

* update code

* get file mediatype from metadata

* add unittests for linkset approach (TODO: ?)

* update code

* update code and unit tests and

* update file related code and unit tests

* refactor code after CR | implement 'describes' |  check file type differs from parent project / registry / preprint

* update files to compare on unittests run

* implement datacite - scheme type mapping for linkset draft version (need tests updates and maybe some type yield logic )

* Update osf/metadata/osf_gathering.py

Co-authored-by: abram axel booth <aaxelb@users.noreply.github.com>

* Update osf/metadata/serializers/linkset.py

Co-authored-by: abram axel booth <aaxelb@users.noreply.github.com>

* implement datacite - schema mapping

* update tests expected results

* resolve CR

* refactor code | resolve CR

* remove redundant describes from file response (#11590)

* [ENG-10256] 2.1.9 BE: Fix permission issue where users without permission to an object can access the metadata (#11588)

* Fix permission issue where users without permission to an object can access the metadata (add decorator is_contributor_or_public_resource)

* refactor code

* resolve CR | refactor code

* resolve CR | add unittests

* add  *args, **kwargs for decorated view

* [ENG-10167] 2.1.6 BE: add link header to guid metadata endpoints (#11594)

* add link header to guid metadata endpoints for registry and project

* update code

* avoid Component Registration/Project JSON Contains type: null (#11597)

* [ENG-10168] 2.1.7 BE: add link header to cedar metadata records endpoints (#11596)

* add link header to guid metadata endpoints for registry and project

* update code

* add link header to cedar metadata records endpoints

* change ResearchProject for CreativeWork for projects (#11603)

* [ENG-10169] 2.1.8 BE: add link header to file download URL (#11600)

* avoid Component Registration/Project JSON Contains type: null

* add link header to file download URL

* update unittests

* resolve CR

---------

Co-authored-by: mkovalua <mkoval@exoft.net>
Co-authored-by: abram axel booth <aaxelb@users.noreply.github.com>

* Bump versio no. Add CHANGELOG

* [ENG-10054] feature/ror-migration (#11610)

* feat(osf): script to migrate Crossref Funder IDs to ROR IDs

* feat(osf): Fix fot the script to migrate Crossref Funder IDs to ROR IDs

* feat(osf): Update OSF metadata model code and tests for ROR funder identifier support

* feat(osf): Add DataCite client tests for ROR funder identifier support

* feat(osf): update migration script to remove unmapped crossref funders

* add another stat to the migration script

---------

Co-authored-by: Andriy Sheredko <sheredko.andriy@gmail.com>

* bump version & update changelog

* add command to migrate ror funder names

* bump version & update changelog

* [ENG-10538] Post-NR Project PR (#11623)

* Create global_file_updated and global_reviews subscriptions if missing
* Use USER_FILE_UPDATED for group global_file_updated
* Use REVIEWS_SUBMISSION_STATUS for group global_reviews
* Add missing `is_digest=True` for new OSF user subscriptions
* Extend otf subscription creation to apply to _node_file_updated group
* Fix typo for `_is_digest`
* add is_digest_type property
* Add is_digest_type property to NotificationType and log message in emit method
* Fix is_digest handling in NotificationType.emit method
* Log message update in NotificationType.emit method for is_digest handling
* fix unit tests
* Move set-deafult-subscriptions out of non-effective try-except
* Add fake_sent field to Notification model and update notification creation logic
* add unique_together constraint
* Add 'PARTIAL_SUCCESS' status to EmailTask model and update email task handling logic
* NR migration [ENG-10040, ENG-10025, ENG-9854]
* Remove subscription if notifications.tasks.send_moderator_email_task fails with permission error
* Apply suggestion from @Ostap-Zherebetskyi
* remove datetime
* Add 'no_login_email_last_sent' field to OSFUser and update email task logic
* Enforce and improve permission check for subscriptions
* Fix typo in annotated_obj_qs for NODE_FILE_UPDATED
* Add unit tests for testing node_file_updated subscription detail
* Implement notifications cleanup task and related settings; add tests for functionality
* Fix legacy subscription ID for NODE_FILE_UPDATED: "guid_files_updated"
* Fix duplicate and mismatched type NODE_FILE(S)_UPDATED
* removed email.py
* Fix annotated qs for global reviews and update unit tests
* Update tests for node_file(s)_updated subscription detail
* Rename fixtures for notification subscription detail tests
* Annotate with legacy_id for serializer to handle created subscriptions
* Add unit tests for creating missing subscriptions on the fly
* clear useless code
* Rename migration name for NR post-release
* Improve unit test: test_emit_frequency_none
* Remove `seen` from `Notification` and re-make migrations
* `mark_sent()` now handles `fake_sent=True`, and only `save()` once
* Update default settings
* remove useless import
* Enhance SubscriptionList queryset with additional content types and refactor notification type handling
* fix unit test
* Refactor SubscriptionList queryset to use a single provider content type and update related notification handling; add script to update notification subscriptions' content types.
* fix CR comments
* Update comments
* split into 3 files
* remove populate_notification_subscriptions
* Renamed files, refactor of populate notification subscriptions user global file updated
* added try/except, added timers
* converted populate_notification_subscriptions_user_global_reviews.py
* fix batch time execution
* converted populate_notification_subscriptions_node_file_updated
* convert to separate update and create scripts
* updated, added parameters
* move to remove_after_use
* add time track to last batch, fix proper time track for batch in node_file_updated
* convert to use review_nt
* Fix unit tests due to new constraints
* Move missing subscription creation to a helper function in utils
* Subscription list view now creates missing attributes on-the-fly
  * Note: only works for when filter on "legacy id"; logs message to sentry for tracking purpose when filter on "event names".
* Fix broken `.exists()` due to complex annotated QS with `.distinct()`
* fix names of tasks
* Add notification subscriptions de-duplication v2 command
* fix naming
* Add deduplication command to notification migration
* Fix notification handling by updating legacy ID suffix from '_files_updated' to '_file_updated' across utils and views; adjust related test cases accordingly.
* fix unit tests
* Update the name of the NotificationType NODE_FILE_UPDATED to be consistent
* Rename notification type from node_files_updated to node_file_updated for consistency
* clean keys
* fix naming in templates, event_context
* remove leftover comments
* Refactor notification type references to use NotificationTypeEnum
  - Updated all instances of NotificationType.Type to NotificationTypeEnum in test files and application code.
  - Ensured consistency in notification type usage across various tests including auth, claims, events, and more.
  - This change improves clarity and maintainability by standardizing the notification type references.
* Fix notification type reference for FILE_UPDATED
* Refactor notification type references to use NotificationTypeEnum across views and scripts
* fix unit tests
* remove imports
* fix USER_CROSSREF_DOI_PENDING event_context
* sync naming
* added explanation
* Add Celery task to disable removed beat tasks from PeriodicTask entries
* Apply suggestion from @Ostap-Zherebetskyi
* Apply suggestion from @cslzchen
* Add migrations to remove duplicate notification subscriptions and refactor notification model
* removed comment
* Refactor no-login email filtering to ensure last sent date is before last login date
* Add test to exclude users logged in before no_login_email_last_sent
* Refactor no-login email user filtering to exclude those with pending EmailTasks and recent no-login emails
* Fix CollectionSubmission URLs to use absolute_url method for consistency
* Refactor logo handling in notification methods to improve consistency and readability
* Add management command to sync notification templates
* Apply suggestion from @cslzchen
* Add management command for deleting withdrawn or failed registration files to CeleryConfig
* fix: update logo handling in send_moderator_email_task for favicon support

---------

Co-authored-by: Longze Chen <cslzchen@gmail.com>
Co-authored-by: Ostap Zherebetskyi <ozherebetskyi@exoft.net>
Co-authored-by: Bohdan Odintsov <bodintsov@exoft.net>

* Updated cut-off time and added comments for NR settings

* Update changelog and bump version

* resolve merge conflicts

* respond to CR comments

* fix tests

* fix tests again

---------

Co-authored-by: Longze Chen <cslzchen@gmail.com>
Co-authored-by: Ostap Zherebetskyi <ozherebetskyi@exoft.net>
Co-authored-by: Vlad0n20 <137097005+Vlad0n20@users.noreply.github.com>
Co-authored-by: futa-ikeda <51409893+futa-ikeda@users.noreply.github.com>
Co-authored-by: mkovalua <mkoval@exoft.net>
Co-authored-by: abram axel booth <aaxelb@users.noreply.github.com>
Co-authored-by: Fitz Elliott <fitz@cos.io>
Co-authored-by: Andriy Sheredko <sheredko.andriy@gmail.com>
Co-authored-by: Bohdan Odintsov <bodintsov@exoft.net>
* update yarn lock

* update admin yarn.lock
@adlius adlius merged commit 63d6889 into develop Mar 26, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants