LDEV-5248, LDEV-4411 Mark some collections as cacheableSimilar to query cache, the collection cache makes sense if the tablewhich collection elements map to do not change often. Each modificationto table content invalidates the given collection cache.
LDEV-5248, LDEV-4411 Mark some queries as cacheableQuery cache makes sense if tables which the query reference does notchange often. Each modification to table content invalidates the givenquery's cache. Also each set of query parameters is a different cacheentry, so if there are various parameter values the cache overhead cangenerate more load than benefit.
LDEV-5248, LDEV-4411 Add 2nd level cache to selected elementsDisplaying Assessment results is too DB-intense for multiple learners.We can enable a short-lived query cache for some entities which havemost impact on the results page. This way multiple requests can reusesame objects from cache and there is little danger of inconsistency.
LDEV-5227 Use CellUtil to set cell style propertiesExcel keeps all cell style definitions in memory and then only appliesthem to cells. Creating a new style for each cell is inefficient and hasbuilt-in limitations. CellUtil keeps track of existing cell styles andreuses existing ones when possible.
LDEV-5212 Retain existing org roles when logging in via signup pageIf "add to lessons" setting is on and user is a learner in organisation,he gets added to all lessons as learner.Same goes for being monitor in organisation and being added as a staffmember to lessons.