Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Task/Measure/Tool handling with document upload and status change #361

Open
1 of 9 tasks
ravimeijerrig opened this issue Nov 14, 2024 · 0 comments
Open
1 of 9 tasks
Assignees

Comments

@ravimeijerrig
Copy link
Contributor

ravimeijerrig commented Nov 14, 2024

Description

We have build a modal in which we can edit measures in a textbox and change the status with a dropdown.
In this ticket we will add some features to the modal and extend the situations in which it is used.

Situations to work on a task:

  1. Updating a measure: This is the same situation as before.
  2. Updating an hulpmiddel/tool: New situation in which we handle an entire instrument as one task, instead of a task per instrument question. (for now out of scope that the actual hulpmiddel/tool is imported, also the buttons from create new algorithm out of scope).

Features to work on a task:

1.. Upload document possibilities. No maximum number of files for now. Support for every possible extension.

  • In addition to uploading, you could also include a reference to a file located in a samenwerkruime, for example. This would essentially be a URI. Design to be made.
  • If upload is not successful there needs to be a feedback to the user. Instead of the text being 'Dit is een foutmelding' the text needs to be 'Fout bij uploaden document'/'Document upload error'.
  • With minio encrypt files per default
  • icons of the filetype extension for already uploaded files (use special in CSS selector ($=*.jpeg)).
  • You can remove the file from system (both before the uploaded file is uploaded or when it is uploaded).
  • Only upload when you press upload button.
  • Metadata (link to algorithm, timestamp, user who exported).
  • Authorization, who can see it, can download the files.
  • Progress bar file upload (example: https://htmx.org/examples/file-upload/)
  1. Add 'In review'/'Beoordelen' and 'Skip'/'Overslaan' to the possible statuses.

Design of the modal with all features:

Image
Image
Image

Na opslaan en weer openen
Image

Foutmelding
Image

Out of scope:

  • Owner, Action holder are roles on a measure which can be assigned. Option to choose from all team members that are part of this algorithm.
  • Add the Roles that should do the measure from AK. Roles can be handled in the same way as the titles and description.
  • There are many measures that have the same or very similar title as the description. For now we do not want to include the explanation by default as it can contain a lot of text and therefore makes it messy. We stick with the linking to AK for more info.
  • Thread with mentions and comments
  • Description field from CKEditor
  • Add examples of how the measure was executed where possible (needs to come from AK)
  • Timetravelling (go back to previous version)
  • Add a description field for a discussion in the most basic way: user, comment, date, and option to edit or delete it. No reply, just 1 stream of comments.
  • Include a log of all edit dates and editors
  • Refactoring of the system card of measures and assessment cards
  • Add last-edited timestamp and by who it was edited. The last edit counts for all edits done on this page.

Technical Implementation

  • Error handling in POST endpoint to make sure we cleanup on /algorithm/<ID>/file
  • We write temporary files to local file storage
  • We call the s3 minio endpoint to store the file in persisted storage
  • Setup minio with pvc's ai-validation-infra#67
  • We store our files here:
    • path: uploads/org/<ORG-ID>/algorithm/<ALG-ID>/<ULID>
    • metadata for the file:
      • ALG-ID
      • uploader user-id
      • timestamp
      • filename
      • extension
  • We store the whole path in the system-card after persisting to minio after each file that succeeded
  • In the frontend we show the filename and an icon based on the metadata from minio
  • We create a single encryption key that we store as SOPS secrets so that we have it available as an env var
  • We create a GET/DELETE endpoint for ULIDs /algorithm/<ID>/file/<ULID>
@ravimeijerrig ravimeijerrig converted this from a draft issue Nov 14, 2024
@ravimeijerrig ravimeijerrig changed the title Task/Measure/Instrument handling Task/Measure/Instrument handling with document upload Nov 20, 2024
@ravimeijerrig ravimeijerrig changed the title Task/Measure/Instrument handling with document upload Task/Measure/Instrument handling with document upload and status change Nov 20, 2024
@ChristopherSpelt ChristopherSpelt self-assigned this Nov 26, 2024
@laurensWe laurensWe changed the title Task/Measure/Instrument handling with document upload and status change Task/Measure/tool handling with document upload and status change Nov 27, 2024
@laurensWe laurensWe changed the title Task/Measure/tool handling with document upload and status change Task/Measure/Tool handling with document upload and status change Nov 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 👷 In Progress
Development

When branches are created from issues, their pull requests are automatically linked.

2 participants