Commit Graph

1647 Commits

Author SHA1 Message Date
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