d84269154f
refactor(db): widen the type for DBRead for more flexibility
...
also
- change some AdminProblemR DB actions to DBRead instead
- add insane supervision warning to AdminProblem page
2025-02-12 12:11:08 +01:00
396bcf6e13
chore(firm): add working view for supervision discrepancy by firm
...
show if a supervisionship-company is unrelated to either supervisor or supervisee
2025-02-11 18:08:41 +01:00
a56a5e148e
chore(lms): fix #2605
...
- Implement a mechanism that deletes those users after a short while
- Never delete numerical LMS logins
- Allow admins to terminate an E-Learning manually
- Option to terminate E-Learning upon longtime renewal
- Detection of unnecessary E-Learning (i.e. long valid durations)
2025-02-11 14:38:40 +01:00
434549c945
fix(avs): updateReceivers should not re-insert formerly known receivers
2025-02-10 17:37:14 +01:00
274cd21e79
chore(mail): view page for receivers working now and polished
2025-02-10 17:28:06 +01:00
39a4ebef2a
chore(mail): add modal computing actual receivers at postal pref columns
2025-02-06 19:02:04 +01:00
cc7abf9a94
chore(firm): add company preference for email pin passwords
...
companies may be set such that their users have no email pin password by default
switching to such a company deletes the pin password
2025-02-05 17:43:43 +01:00
3b1d5f3af7
chore(lms): implement lms termination action
...
also:
- track last LmsSate for orphans
- make note searchable
towards #2605
2025-02-05 14:38:04 +01:00
995e75da8e
fix(audit): add user id who caused company superior change to audit log
2025-02-05 13:29:42 +01:00
347a69670e
refactor(lms): ensure days/months in qualification settings are always used correctly and implement settings for orphans
...
- extensive refactoring for qualification lms settings
- qualificationAuditDuration changed from months to days
- qualificationAuditDuration no longer optional
- qualificationAuditDuration is only used for LMS; clarified
- three new settings:
+ orphan-deletion-days:
+ orphan-deletion-batch:
+ orphan-deletion-repeat-hours:
2025-02-03 15:43:36 +01:00
7ddc15dd0b
chore(avs): test AVSneo problems
...
AVSneo will no longer have unique AVS CardNo: PersonSearch will return one card per company, all having the same CardNo, but possibly different colors
Test shows that FRADrive will handle this just fine, provided the old AVS workaround firing several requests at once remain in place
2025-01-31 15:15:47 +01:00
a76a23b9e2
refactor(i18n): make SomeMessages more flexible to distinguish it from UniWorXMessages, deprecated the latter
2025-01-30 18:53:49 +01:00
710d0b6f71
chore(qualification): finish qualification edit handler
2025-01-29 18:12:34 +01:00
3cbb0452cb
chore(form): create calendarDiffDaysField
2025-01-28 18:45:13 +01:00
37a15672c9
chore(qualification): prepare stub for edit handler
...
also fix some minor navigation issues
2025-01-28 16:35:56 +01:00
7503a55039
refactor(tutorial): exam occurrence form function and appearance
2025-01-24 17:28:58 +01:00
516e8cc849
refactor(tutorial): exam occurrence editing received specialised page
2025-01-15 17:59:24 +01:00
d275e465c8
chore(exam): add convenience function to duplicate exam occurrences to another day
2025-01-13 19:26:43 +01:00
3faf8017b6
chore(exam): auto name generation for examOccurrences
2025-01-13 17:53:22 +01:00
b095b4feed
fix(tutorial): fix exam occurrence form
...
works better, but still not 100%
some debugging added
2025-01-09 19:24:35 +01:00
f954ebce43
chore(tutorial): switch relevant exams from registerFrom/To to examStart/End
...
registering is of users/supervisors, but this page is for admins, so examStart/examEnd are only relevant for when it is actually happening
2025-01-09 12:57:33 +01:00
c218a55be8
chore(tutorial): towards #2347 exam occurrence form mostly working (WIP)
...
form is completed, but the initial call needs proper arguments from DB about all apropriate exams
2025-01-08 19:01:59 +01:00
d37d39301c
chore(tutorial): towards #2347 exam occurrence form added (WIP)
2025-01-08 15:28:10 +01:00
f9562c4a32
chore(tutorial): assign exam rooms for tutorial users ad hoc
2024-12-19 15:57:49 +01:00
032a344ed1
Merge branch 'fradrive/merge-jost-new-build' of https://dev.azure.com/fraport/Fahrerausbildung/_git/FRADrive into fradrive/merge-jost-new-build
2024-12-18 09:17:14 +01:00
52f361c24e
refactor(daily): move caching into own submodule
...
we need those methods in Handler.Tutorial.Users as well
2024-12-18 09:06:39 +01:00
bd8630472b
refactor: backport saltine (0.2.0.0->0.1.1.1) for compatibility with proper lts-18.0 stack snapshot image
2024-12-16 17:40:48 +01:00
92a43ac131
chore(daily): add function to retrieve all exam occurrences for given days
...
the function uses the memcachedByClass mechanism, which was slightly refined as well to include the class within the memcached keys for added correctness
2024-12-13 17:27:02 +01:00
ed70a92856
refactor(form): make all userField variants consistent with each other
2024-12-13 16:21:53 +01:00
eab6b6363d
chore(exam): show exam occurrences in participants views for tutorial and course
2024-12-12 18:28:15 +01:00
6d172c8259
chore(exam): add examiner to occurrence options
...
we intend to use the exam examiner for adding occurrences through tutorials
2024-12-09 17:38:34 +01:00
f81a99d224
fix(form): knownUserField not working as intended (WIP)
2024-12-06 14:16:24 +01:00
130140b60d
fix(form): knownUserField not working as intended (WIP)
2024-12-06 12:41:18 +01:00
d6de55a886
refactor(form): knownUserField not working as intended (WIP)
2024-12-05 18:17:34 +01:00
a454ac9d32
chore(form): add knownUserField accepting known users only
2024-12-04 18:10:13 +01:00
e051557d3e
chore(daily): towards #2347 check complete, except i18n
...
also missing: displaying memcached check results in each line of day view
2024-11-29 18:13:30 +01:00
612a931d36
chore(daily): towards #2347 by performing AVS queries/updates
...
actual checking of retrieved values is still a todo
2024-11-28 17:04:59 +01:00
6c50758800
fix(hlint): implement some hlint suggestions
2024-11-27 17:12:32 +01:00
59b945ce4c
chore(daily): adjust css, improve suggestions
2024-11-26 18:03:43 +01:00
08b38af137
chore(daily): add suggestions to note fiels (WIP)
2024-11-22 18:54:08 +01:00
06fa34c938
chore(tutorial): build model for #90
2024-10-21 15:59:32 +02:00
d4d511a02f
fix(room): deduplicate room column and fix order
2024-10-17 16:48:09 +02:00
ec2b09b20b
chore(daily): show rooms for tutorial lessons
2024-10-15 17:48:36 +02:00
8506c4d7e0
refactor(memcached): checking memcached key security mechanisms
...
RESULTS:
Keys for memcached use their Binary representation!
This means that the following three are all interchangeable as a key:
newtype Foo1 = Foo1 { someInt1 :: Int } deriving newtype (Binary)
data Foo2 = Foo2 { someInt2 :: Int } deriving (Binary)
type Foo3 = Int
Therefore it is best to use $(memcachedHere) or $(memcachedByHere) if possible or add another type
2024-10-11 11:23:29 +02:00
ed44edc199
chore(daily): show course associated qualifications
2024-10-09 18:11:22 +02:00
ab46577b7e
fix(avs): fix #225 by skipping firm updates entirely if AVS FirmInfo is unchanged for previously seen values for AVS User to be updated
2024-10-09 12:21:31 +02:00
be7fc2e540
fix(avs): avs firm update no longer may update wrong company
...
Note: noticed while working on #225
2024-10-09 11:47:46 +02:00
3960931bb5
fix(avs): fix #224 repeated superior changes no longer occur
...
furthermore AdminProblems are only inserted if the same problem does not exist unsolved
2024-10-08 17:47:46 +02:00
56c2be7b79
refactor(occurrences): fold RoomReference into Occurrences, completed
2024-10-08 13:01:44 +02:00
4e171a7a1a
fix(memcached): using memcachedHere did not compile due to staging problems
2024-10-08 10:08:04 +02:00