Opened 7 years ago

Last modified 7 years ago

#2049 closed task

Project-specific annotations — at Initial Version

Reported by: Nicklas Nordborg Owned by: everyone
Priority: critical Milestone: BASE 3.10
Component: core Version:
Keywords: Cc:

Description

This is a new feature that allows an annotation type to be configured as "project-specific". The main idea here is that annotations on items can be entered on a per-project basis. Switching to another project would make it possible to enter a different value that is only visible in that project.

At the core level this must be implemented in a way that doesn't upset existing client code (web client/extensions/plugins).

  • This feature must be enabled per annotation type. Existing annotation types will have it disabled by default
  • The current core API should be usable and behave more or less in a backwards compatible way for annotation types that have the option enabled.
  • Existing annotation values doesn't belong to any project and should be treated as default values if the project-specific setting is enabled for an annotation type.
  • When a users is working without an active project only the default values are visible/editable for annotations that are project-specific.
  • If an annotation has a default value but not any project-specific value when a project is active, the default value is visible and should be treated as if it was a project-specific value, except...
  • Default values are not editable (unless maybe via new API methods) when a project is active. Trying to change a default value results in a project-specific value being created instead. The default value is then no longer visible and should not match queries either.
  • Deleting a project-specific value makes the default value visible again.
  • Deleting a default value can only be done when no project is active (unless maybe via new API methods).
  • It is important that queries are working in a sensible way. When no project is active only default values can be searched. When a project is active both project-specific and default values are searched but default values that have been replaced with a project specific value should be ignored.
  • If a default value exists it is not possible to "unset" the annotation in a project, only to change it to a different value.

The caching functionality used for speeding up annotation retrieval must be updated to follow the same rules as when using the regular API.

The batch functionality for speeding up annotation changes must also be updated.

Change history logging might be affected as well. Should changes be visible across projects?

More....

Change History (0)

Note: See TracTickets for help on using tickets.