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

Multiple assessment periods #2977

Closed
14 tasks done
VassilIordanov opened this issue Apr 9, 2020 · 2 comments
Closed
14 tasks done

Multiple assessment periods #2977

VassilIordanov opened this issue Apr 9, 2020 · 2 comments
Assignees

Comments

@VassilIordanov
Copy link
Contributor

VassilIordanov commented Apr 9, 2020

Terminology:

  • periodic assessments => assessments made periodically on an entity, with a given recurrence, assessing the entity related to a given period
  • instant assessments => assessments made once on an object, not related to a period of time; these assessments can assess an entity in the context of a related object (example: assessing tasks or attendees from the context of a report, we will call these assessments engagement assessments) or can assess it on its own, without a relation to another entity

This issue concerns the periodic assessments.

Currently periodic assessments are on a monthly basis. It should be possible to make assessments over different periods of time, with different recurrences.

When defining the assessments, an administrator should be able to define at what recurrence assessments are made. Possible assessment periods are:

  • once => instant assessment
  • daily
  • weekly
  • biweekly
  • semimonthly
  • monthly
  • quarterly
  • semiannualy

Where the assessments can be defined by the administrator depends on the entity type:

  • for tasks the admin can define assessments on a general level, separated per toplevel or sublevel tasks and can also define instance specific assessments by adding an assessments custom field to tasks and filling it in
  • for an instance we use the union of the general definition and the instance specific definition in order to determine which assessments are available

Example scenario
task A is assessed monthly and quarterly
task A.1 is a sub-task of A, assessed weekly, but also monthly

When we display the periodic assessments/engagement assessments of task A.1, we display

week - 2 week - 1 current week
Weekly Task A.1 engagement assessments Weekly Task A.1 engagement assessments Weekly Task A.1 engagement assessments
Weekly Task A.1 assessment Weekly Task A.1 assessment
month - 2 month - 1 current month
Monthly Task A.1 engagement assessments Monthly Task A.1 engagement assessments Monthly Task A.1 engagement assessments
Monthly Task A.1 assessments Monthly Task A.1 assessments

Then, when we display the periodic assessment/engagement assessments of task A, we display

month - 2 month - 1 current month
Monthly Task A.1 engagement assessments Monthly Task A.1 engagement assessments Monthly Task A.1 engagement assessments
......... ......... .........
Monthly Task A engagement assessments Monthly Task A engagement assessments Monthly Task A engagement assessments
Monthly Task A assessment Monthly Task A assessment
quarter - 2 quarter - 1 current quarter
Quarterly Task A.1 engagement assessments Quarterly Task A.1 engagement assessments Quarterly Task A.1 engagement assessments
......... ......... .........
Quarterly Task A engagement assessments Quarterly Task A engagement assessments Quarterly Task A engagement assessments
Quarterly Task A assessment Quarterly Task A assessment

For periodic assessments a user can make per entity only one periodic assessment per period.

Implementation steps:

  • add general task assessments definition: in anet.yml, under task.topLevel.assessments and task.subLevel.assessments

  • do union of the general level task assessments with the eventual instance level task assessments (from the task's custom field called assessments)

  • retrieve the instant and the periodic assessments definitions from the union

  • remove assessmentDefintion from task custom fields

  • when making a periodic assessment, save the period details in the assessment text {"__recurrence": "monthly", "__periodStart": date}

  • when displaying a periodic assessment (for instance as a note, or in the monthly assessments overview), do not display the __recurrence and __periodStart property from the JSON of the assessment text

  • filter the periodic assessments by filtering on the period details from the assessment text

  • add the possibility to have more types of periodic assessments

  • display one assessments fieldset per periodicity type, when there is a definition for it

  • display add assessment button for all periods, except for the ones which are not closed (endDate > today)

  • instead of adding new periodic assessments for a period, edit the existing one, so there should be at most one periodic assessment per period and author

  • change the layout of periodic assessments => use panel to make it possible to add info as author and edit/delete icons, and to clearly distinguish between several assessments

  • make it possible to delete an own periodic assessment -> not needed for now, maybe later

  • when an assessment contains a richtext type of field, and the field is not being filled, the assessment is not considered empty (see isEmptyAssessment), but it should

maradragan added a commit that referenced this issue Apr 16, 2020
We now added the possibility to add assessments definitions for a
task on a more general level: per task level. In anet.yml these
assessments definitions can be configured using the assessments
property for fields.task.topLevel and fields.task.subLevel.
When a task also has assessments defintions at an instance level
(by filling the task's assessments custom field), we make the
union of the general and the instance specific defintions and the
instance specific definition has priority.
maradragan added a commit that referenced this issue Apr 16, 2020
maradragan added a commit that referenced this issue Apr 16, 2020
It is no longer used since we've introduced the customFields.assessments
for adding the instance specific assessments configuration.
No need for a migration script as where this was implemented already
they start with a new set of tasks.
maradragan added a commit that referenced this issue Apr 17, 2020
Only parse JSON if the questions value is a string.
maradragan added a commit that referenced this issue Apr 17, 2020
This adds the __assessmentType and __assessmentPeriodStart to the
note's text when saving an assessment. This will make it possible
to better filter the assessments later.
maradragan added a commit that referenced this issue Apr 17, 2020
Changed the assessments schema to be conform new wishes.
an assessment has now the following properties: recurrence,
relatedObjectTypes and questions.
maradragan added a commit that referenced this issue Apr 20, 2020
In order to be consistent with the new assessments schema we've
changed the terminology in the assessment content too.
maradragan added a commit that referenced this issue Apr 20, 2020
Removed the monthly assessment from the intial data as it's data
is no longer complete, and filling the proper __periodStart for the
assessment through sql is not really easy.
maradragan added a commit that referenced this issue Apr 20, 2020
We used to only display the monthly assessments. We now display one
assessments results table for each recurrence for which the current
task has an assessment definition.
maradragan added a commit that referenced this issue Apr 20, 2020
The period display has been changed in order to make it more suitable for
different types of recurrences.
maradragan added a commit that referenced this issue Apr 20, 2020
This makes sure that JSON fields saved in a note's text property
which are note part of the real assessment made by the user but
details about the made assessment (like period details and the
invisibleCustomFields) are not being displayed in
RelatedObjectNotes.
maradragan added a commit that referenced this issue Apr 20, 2020
The last assessments for a period are now retrieved based on the given
recurrence type and on the period's start date. This information is
also being saved in the assessment so we can filter on it.
maradragan added a commit that referenced this issue Apr 21, 2020
No longer hard code in lots of places the name of the field, bu use
a constant for it.
maradragan added a commit that referenced this issue Apr 22, 2020
This makes sure we no longer display only the last assessment for
a period but all assessments: more users can make an assessment for
a period.
This also makes sure that each user can only make one assignment,
by only displaying the add assessment button when the user didn't
already make an assessment for the given period.

The laout of the periodic has also changed: we now use a panel to
make it easier to distinuish between different assessments and also
in order to make it possible to display the author and an eventual
edit/delete icon.
maradragan added a commit that referenced this issue Apr 23, 2020
This adds the possibility to edit an own periodic assessment for a task or person.
maradragan added a commit that referenced this issue Apr 24, 2020
This makes sure that for instant assessments we also save the
__recurrence and __relatedObjectType in the assessment text.
These JSON fields are not being displayed, but used for
filtering the proper assessments.
VassilIordanov pushed a commit that referenced this issue May 2, 2020
Removed comment from AssessmentResultsContainer which doesn't
belong to this component.
VassilIordanov pushed a commit that referenced this issue May 2, 2020
Because the report tasks on the report form and on the show page were
not always Task instances the code for retrieving the assessments
configuration for tasks was quite complicated, making it possible to
be run on both Task instances as just objects.
We now made sure that the report tasks on these pages are always
task instances.
VassilIordanov pushed a commit that referenced this issue May 2, 2020
This makes sure we no longer use hardcoded strings in the code
for assessment period recurrences and telated object type. We've
defined constants for them.
VassilIordanov pushed a commit that referenced this issue May 2, 2020
The add assessment button is now displayed by default for each period
in the past (where period end < start of today). It is still possible
to configure a different rule for a period by setting the
allowNewAssessments property of the period.
VassilIordanov pushed a commit that referenced this issue May 2, 2020
When using the AddAssessmentModal for more than one periods it was
always opening the modal for the last period, and therefore also
using that period's details when saving the assessment => all
assessments were belonging to the same period.

Fixed this by moving the button to open the modal in the modal
component itself.
maradragan added a commit that referenced this issue May 13, 2020
Fuunctionality is not needed.
@maradragan
Copy link
Contributor

Added new issue for Group task assessments per tasked organization #3067

@maradragan
Copy link
Contributor

Added new issue for Implement assessments period for biweekly #3068

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants