Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
LDEV-5275 Rewrite queries to get questions from QB faster

LDEV-5273 Add missing learner answer normalisation

    • -3
    • +3
    ./java/org/lamsfoundation/lams/qb/QbUtils.java
  1. … 1 more file in changeset.
LDEV-5273 Refresh leaders' page on VS answer allocation

    • -0
    • +6
    ./java/org/lamsfoundation/lams/qb/QbUtils.java
  1. … 3 more files in changeset.
LDEV-5273 Add VSA allocation to Scratchie

    • -0
    • +33
    ./java/org/lamsfoundation/lams/qb/QbUtils.java
  1. … 10 more files in changeset.
LDEV-5273 Remove single VSA allocation interface from Assessment

Since UI for VSA allocation moved to Central, it is more difficult to

make it embedded within a tools own monitoring interface. It is probably

not needed too - a well designed VSA allocation UI for all questions

should be sufficient.

  1. … 3 more files in changeset.
LDEV-5273 Move VSA allocation code to Central

    • -0
    • +27
    ./java/org/lamsfoundation/lams/qb/QbUtils.java
  1. … 14 more files in changeset.
LDEV-4644 Use [] instead of () to recognise LO code

Teachers tend to use () as a part of Learning Outcome name

  1. … 34 more files in changeset.
LDEV-5260 Add utility class for global Flux management

  1. … 2 more files in changeset.
LDEV-5260 Move custom Flux classes to separate package

    • -0
    • +137
    ./java/org/lamsfoundation/lams/flux/FluxMap.java
    • -0
    • +40
    ./java/org/lamsfoundation/lams/flux/SharedSink.java
LDEV-5260 Improve Flux cancellation mechanism

    • -0
    • +40
    ./java/org/lamsfoundation/lams/util/SharedSink.java
  1. … 1 more file in changeset.
LDEV-5260 Rewrite polling to producer-subscriber model

Till now we had "are-learners-answers-updated" polling on controller

level.

It was rewritten to following scenario:

- method which stores learner answers is aware whether answers have

changed, i.e. it knows if charts need to be updated

- it flushes latest data to DB and puts tool content ID to Sink

- Sink notifies all interested Fluxes (currently only charts updating

one, but in the future other ones like updating table with answer % too)

- FluxMap holds a map of tool content ID -> interested hot publisher

Flux

- the Flux checks if it is interested in the tool content ID from the

Sink

- if so, it fetches data from DB and emits it to all subscribers, i.e.

opened monitoring windows with charts displayed

- data is cached so it is immediately available on for the next

subscriber

- data is throttled so calls to DB are not made too often

- if all subscribers are gone, the hot publisher Flux is still active; a

timeout is added which removes it from FluxMap when there were not emits

for the given time

    • -0
    • +105
    ./java/org/lamsfoundation/lams/util/FluxMap.java
  1. … 6 more files in changeset.
LDEV-5260 Use WildFly task executor for Spring async request processing

  1. … 1 more file in changeset.
LDEV-5259 Manually create parent application context

Previous attempt to reproduce BeanFactoryLocater was an overkill. A

simple singleton parent application context is sufficient.

  1. … 39 more files in changeset.
LDEV-5259 Use MVC initialisation via annotation

Manually triggering controller scanning by adding an annotation handler

bean does not register all useful support beans. If

<mvc:annotation-driven> is used in spring-servlet.xml, all support beans

are registered via WebMvcConfigurer.

<mvc:path-matching suffix-pattern="true" /> need to be added because we

use .do suffix for Spring actions and suffix was turned off for Spring

5.3

https://github.com/spring-projects/spring-framework/issues/24179

  1. … 38 more files in changeset.
LDEV-5259 Remove unnecessary util class

LDEV-5125 Improve support for VSA questions import from Word file

VSA questions should have 2 options if they are going to be TBL

compatible. When importing from Word document only correct answers

option is required. The other one, incorrect answers option, now gets

added automatically. Also incorrect answers option does not get deleted

after editing via QB interface.

  1. … 2 more files in changeset.
LDEV-5259 Manually start controller annotation detection

  1. … 38 more files in changeset.
LDEV-5259 Reintroduce BeanFactoryLocator mechanism back to LAMS

It was removed for Spring 5

    • -0
    • +172
    ./java/org/lamsfoundation/lams/context/HandlerMethodResolver.java
  1. … 44 more files in changeset.
LDEV-5258 Prevent exception if user timezone is not set

LDEV-5258 Prevent exception if user timezone is not set

LDEV-5257 Add LD and activity title validation also on backend

  1. … 1 more file in changeset.
LDEV-5258 Retrieve correct time zone offset

  1. … 1 more file in changeset.
LDEV-5257 Secure fileDownloadToken cookie

  1. … 9 more files in changeset.
LDEV-5257 Escape formulas in LAMS-generated spreadsheets

LDEV-5256 Sanitise jqGrid sorting options before using them in queries

  1. … 2 more files in changeset.
LDEV-4411 Reintroduce eager fetching and caching of QB options and units

There are several places in LAMS code where we need to detach QB

question entity from session to do copying and comparison. While another

approach can be found, it requires a lot of effort to rewrite now.

Fetching options from a detached question causes lazy initialisation

exceptions. We had to make them eagerly fetched again.

Collection caching is introduced too to address numerous queries run

with every question fetch.

LDEV-5256 Prevent SQL injection for results order

  1. … 2 more files in changeset.
LDEV-4411 Do not fetch groups eagerly

LDEV-5253 Sysadmin Login As feature to be configurable

  1. … 3 more files in changeset.
LDEV-4411 Allow Hibernate to choose fetch type by itself