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
f642b9cccf
fix(occurrences): room occurrence form works now
2024-10-07 18:31:02 +02:00
21592347b4
chore(occurrences): workaround provide simple room field with least recent suggestions
2024-10-04 16:13:01 +02:00
e625dca6ea
refactor(memcached): remove ARC cache and LRU logic some more
...
more leftover dead code was removed, especially cache prewarm options that no longer had an effect on a non-existing ARC cache
2024-10-04 12:19:27 +02:00
83fe750b15
refactor(occurrences): remove RoomReference from model and add migration
2024-09-30 13:56:45 +02:00
e29e6f3db8
refactor(occurrences): fold RoomReference into Occurrences (WIP)
...
Each Occurrence now has its own RoomReference, i.e. Mondays may have a different Room assigned than Tuesdays
WIP Problem: occurrencesAFrom does not work, always insists on Room missing
2024-09-24 17:15:15 +02:00
4c2baa4e9f
fix(occurrences): occurringLessons had an erroneously inverted condition
2024-09-24 13:05:16 +02:00
384c39b9ec
chore(occurrences): add datatype LessonTime for dealing timetable intervals
2024-09-24 11:21:33 +02:00
a262921a7d
refactor(memcached): remove ARC cache entirely
...
NOTE: this was a crude surgery, removing everything ARC related; some dead code artifacts may have remained.
Especially check PrewarmCacheConf
Reason for removall: adding `memcachedInvalidateClass` was difficult to implement with ARC active; ARC was known to be problematic; removal was easier (see #2 2024-09-23)
2024-09-23 18:52:26 +02:00
05638c2b51
chore(memcached): add key classes for easy invalidation
2024-09-23 17:09:47 +02:00
53c68638da
chore(daily): make company a property of TutorialParticipant, towards #90
2024-09-16 17:16:19 +02:00
6e3dd1c1f3
chore(daily): add more columns #90
2024-09-13 18:03:41 +02:00
d0eb3ddf92
refactor(jsonb): change DB using JSONB, to improve stub #90
2024-09-13 13:39:38 +02:00
faaaa18247
refactor(map): clarify some unnecessarily obfuscated code
...
also, using Map.fromList is more efficient if the list happens to be ordered
2024-09-11 17:43:56 +02:00
6a070a6775
fix(supervision): fix #181 by unifying deletion of supervision
2024-09-10 17:47:09 +02:00
ade27e6479
fix(avs): fix #178 by deleting old superiors for individual users
2024-09-05 17:53:18 +02:00
1e896da4a3
chore(avs): prepare superior update shortcircuit for future
2024-09-02 09:08:44 +02:00
7e5c256b4c
fix(avs): company superiors are now irregular supervisors and old ones are deleted
...
DETAILS:
Superiors:
- Superiors do not become Company-Default-Supervisors automatically
- Superiors become irregular supervisors without rerouting, existing supervisions are not changed
- Superiors become company users at equal-to-max priority, if not already
For each AVN User update:
- if superior change for unchanged company:
all company supervisions with remark "Vorgesetzter" are removed
create admin problem that notifies about superior change (special if new superior could not be created)
- all company associates are irregularly supervised by the new superior with remark "Vorgesetzer"
Questions:
- company had superior, but no longer: just remove superior-supervisions, do not report admin problem?
- Problem: superior changed, but we first encounter this through a user changing company. Change is not detected at this point, old superiors remain until an old company associate is updated too
2024-08-30 17:41:33 +02:00
cfe2318f81
fix(avs): attempt LDAP upsert before creating avs users
2024-08-29 16:15:16 +02:00