5e41c2073f
chore(tutorial): add separate exam occurrence edit page (WIP)
2025-02-28 16:56:11 +01:00
50c7d18b53
chore(exam): add convenience function to duplicate exam occurrences to another day
2025-02-28 16:56:11 +01:00
f996976f65
chore(exam): auto name generation for examOccurrences
2025-02-28 16:56:11 +01:00
f04a40c0a3
chore(tutorial): add covenience button to full exam editing
2025-02-28 16:56:11 +01:00
6cc929e377
fix(tutorial): fix exam occurrence form
...
works better, but still not 100%
some debugging added
2025-02-28 16:56:11 +01:00
11bcef67f8
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-02-28 16:56:11 +01:00
7b7ffab109
chore(tutorial): towards #2347 exam occurrence form design finished, but buggy somehow (WIP)
...
Propably due to multiActionAForm badly interacting with contained massInputForm
2025-02-28 16:56:11 +01:00
afbeb86762
chore(pathpiecel): PathPiece instance for lists of exam occurrence ids
...
towards #2347
2025-02-28 16:56:11 +01:00
9af4a3a22e
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-02-28 16:56:11 +01:00
4241c75afe
chore(tutorial): towards #2347 exam occurrence form added (WIP)
2025-02-28 16:56:11 +01:00
afa2f9bf0e
chore(tutorial): towards #2347 add convenience buttons to add exam tutorial (STUB)
...
This is STUB add a multiform action that is not yet evaluated. Form Handler is to be implemented next.
2025-02-28 16:56:11 +01:00
f44d66cb91
chore(tutorial): assign exam rooms for tutorial users ad hoc
2025-02-28 16:56:11 +01:00
cd84d0a932
refactor(daily): move caching into own submodule
...
we need those methods in Handler.Tutorial.Users as well
2025-02-28 16:54:19 +01:00
f467f6086e
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
2025-02-28 16:53:34 +01:00
4f524bd8d2
refactor(form): make all userField variants consistent with each other
2025-02-28 16:53:20 +01:00
aaf72f7255
chore(exam): show exam occurrences in participants views for tutorial and course
2025-02-28 16:53:20 +01:00
36a3b04ad8
chore(exam): add examiner to occurrence options
...
we intend to use the exam examiner for adding occurrences through tutorials
2025-02-28 16:53:20 +01:00
ae6d3b0fc3
fix(form): knownUserField not working as intended (WIP)
2025-02-28 16:53:20 +01:00
6f3dd408bb
fix(form): knownUserField not working as intended (WIP)
2025-02-28 16:53:20 +01:00
c0c1665ccb
refactor(form): knownUserField not working as intended (WIP)
2025-02-28 16:53:20 +01:00
c2e0f6b2b8
chore(form): add knownUserField accepting known users only
2025-02-28 16:53:20 +01:00
b42e93e891
chore(daily): implement left-over todos and i18n
2025-02-28 16:53:17 +01:00
e53be8ddf9
fix(icons): fix some botched icon definitions, for real
2025-02-28 16:52:22 +01:00
6d583fe8c4
fix(icons): fix some botched icon definitions
2025-02-28 16:52:22 +01:00
f47528c741
chore(daily): fix #2349 completing daily sanity check
2025-02-28 16:51:10 +01:00
ad1d235bea
chore(daily): towards #2347 check complete, except i18n
...
also missing: displaying memcached check results in each line of day view
2025-02-28 16:50:23 +01:00
d4d915bd60
chore(daily): towards #2347 by caching and sorting results
2025-02-28 16:47:46 +01:00
07cfc0adcb
fix(hlint): implement some hlint suggestions
2025-02-28 16:42:37 +01:00
c08d6ae0d0
chore(daily): properly implement note suggestion caching and invalidation
2025-02-28 16:42:37 +01:00
6a0876ae55
chore(daily): basic functionality #1939 completed and checked - filters now work as intended - textField suggestions now work as intended
2025-02-28 16:42:37 +01:00
1f7e9b6a2f
chore(daily): adjust css, improve suggestions
2025-02-28 16:42:03 +01:00
564488d5fa
chore(day): attempt to fix participant note suggestions
2025-02-28 16:40:57 +01:00
500c9a749a
chore(daily): add suggestions to note fiels (WIP)
2025-02-28 16:40:57 +01:00
ede00deb86
refactor(daily): user company discrepancies
2025-02-28 16:40:16 +01:00
9eb075836f
fix(daily): form submit now works as intended
2025-02-28 16:39:33 +01:00
0a29540089
fix(doc): Update outdated GitLab references to DevOps work items
2025-02-28 16:39:33 +01:00
6f1ad811f7
chore(firm): add action to add non-avs firm associates
2025-02-28 16:39:33 +01:00
cd76bdd4e7
chore(day): complete form columns for daily view (untested)
...
unfortunately `make start` does not enter DEVELOPMENT mode currently, so this is not yet testeted.
2025-02-28 16:39:33 +01:00
e1dca7d6b0
chore(day): make form columns compile eventually
2025-02-28 16:39:33 +01:00
7e09636a2b
chore(day): add missing form columns
2025-02-28 16:38:42 +01:00
8317f682d8
chore(tutorial): (WIP) towards #90 write form columns
2025-02-28 16:38:41 +01:00
02d10006fc
fix(build)
2025-02-28 16:38:41 +01:00
2fdb132140
chore(tutorial): show additional columns for #90
...
columns are distinguished by user and the entities given in parenthesis:
- driving permit (tutorial)
- eye exam (tutrial)
- tutorial note (tutorial)
- attendance (tutorial & day)
- attendance-note (tutorial & day)
- parking permit (day)
2025-02-28 16:38:41 +01:00
fba0b71d50
chore(tutorial): build model for #90
2025-02-28 16:38:41 +01:00
4934f5f89d
fix(room): deduplicate room column and fix order
2025-02-28 16:38:41 +01:00
133a8d3739
chore(daily): show rooms for tutorial lessons
2025-02-28 16:38:41 +01:00
ac766ea217
refactor(TH): add sqlMIXproj' using reify on TableExpr for more comfort
2025-02-28 16:38:41 +01:00
a113d43089
chore(TH): add sqlMIXproj to improve dbTable usage, also add card-nos to DayTask Table
2025-02-28 16:38:41 +01:00
14140c982b
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
2025-02-28 16:38:41 +01:00
ce125b6495
chore(daily): show course associated qualifications
2025-02-28 16:38:41 +01:00
0c78996260
fix(avs): fix #225 by skipping firm updates entirely if AVS FirmInfo is unchanged for previously seen values for AVS User to be updated
2025-02-28 16:38:18 +01:00
b78c898ebf
fix(avs): fix #224 repeated superior changes no longer occur
...
furthermore AdminProblems are only inserted if the same problem does not exist unsolved
2025-02-28 16:35:13 +01:00
4bca7580d0
refactor(occurrences): fold RoomReference into Occurrences, completed
2025-02-28 16:32:52 +01:00
46f777740f
fix(memcached): using memcachedHere did not compile due to staging problems
2025-02-28 16:32:52 +01:00
a7b08b1ae5
fix(occurrences): room occurrence form works now
2025-02-28 16:32:52 +01:00
3e6717904a
chore(occurrences): workaround provide simple room field with least recent suggestions
2025-02-28 16:32:52 +01:00
2059d678ee
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
2025-02-28 16:32:52 +01:00
225af31943
chore(occurrences): add GIN index for JSONB columns
2025-02-28 16:32:52 +01:00
22d6cf737e
refactor(occurrences): remove RoomReference from model and add migration
2025-02-28 16:32:52 +01:00
35cadda2e8
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
2025-02-28 16:32:52 +01:00
692350677f
fix(build): minor
2025-02-28 16:32:52 +01:00
36b481a548
fix(occurrences): occurringLessons had an erroneously inverted condition
2025-02-28 16:32:52 +01:00
cb58c20ca1
chore(occurrences): add datatype LessonTime for dealing timetable intervals
2025-02-28 16:32:52 +01:00
e757209b80
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)
2025-02-28 16:32:25 +01:00
74c330bd24
chore(memcached): add key classes for easy invalidation
2025-02-28 16:29:45 +01:00
cac0a47d01
refactor(daily): factor our tutorial selection function
2025-02-28 16:25:43 +01:00
5c70b1099c
fix(firm): filtering by active supervisor working
2025-02-28 16:25:43 +01:00
26ea39dc67
fix(lpr): print log sorting works now
2025-02-28 16:25:43 +01:00
2385d989a8
fix(build)
2025-02-28 16:25:43 +01:00
3bae365b37
chore(lpr): improve lpr log display
2025-02-28 16:25:43 +01:00
1d01897757
chore(daily): make company a property of TutorialParticipant, towards #90
2025-02-28 16:25:43 +01:00
ce62b99d2b
chore(daily): add more columns #90
2025-02-28 16:25:43 +01:00
4dbe005709
chore(daily): add page actions #90
2025-02-28 16:25:43 +01:00
11ef856b2b
refactor(jsonb): change DB using JSONB, to improve stub #90
2025-02-28 16:25:43 +01:00
5a03d1cabe
chore(daily): improve stub #90 change DB to JSONB (WIP)
2025-02-28 16:25:43 +01:00
0264c87510
chore(daily): create stub in preparation for #90
2025-02-28 16:25:43 +01:00
e9a4c838a8
refactor(map): clarify some unnecessarily obfuscated code
...
also, using Map.fromList is more efficient if the list happens to be ordered
2025-02-28 16:25:43 +01:00
ce35c8efc9
Merge branch '145-build-system-rewrite'
2025-02-28 15:37:36 +01:00
e90d11682b
fix(lms): eliminate unlikely possible discrepancy for LMS deletion indicator
...
It was theoretically possible for LMS Learner deletion tag to be not correctly shown in LMS table.
Also see #2605 for further related issues.
2025-01-10 16:49:53 +01:00
1ab8a93b53
refactor: backport saltine (0.2.0.0->0.1.1.1) for compatibility with proper lts-18.0 stack snapshot image
2024-12-15 01:02:45 +01:00
9a281f040e
fix(print): apcidents somehow include newlines after DB update; strip these
2024-11-18 12:36:05 +01:00
0b70036a02
fix(LMS): fix #2235 by notifying LMS user upon reset
2024-11-08 13:47:16 +01:00
3b0029ba04
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:50:32 +02:00
e554048f5a
fix(avs): avs firm update no longer may update wrong company
...
Note: noticed while working on #225
2024-10-09 12:50:32 +02:00
e59fff352f
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-09 12:50:32 +02:00
6a070a6775
fix(supervision): fix #181 by unifying deletion of supervision
2024-09-10 17:47:09 +02:00
6ffc49ae0e
chore(avs): auto licence synch preview show AVS-No as well
2024-09-10 12:36:52 +02:00
ab8b17229a
chore(health): show db time on status page and status time diffs in a human readable format
2024-09-09 16:41:43 +02:00
74f7633837
fix(notifications): fix #180 qualification expiry notification are sent only once
2024-09-09 15:34:41 +02:00
ade27e6479
fix(avs): fix #178 by deleting old superiors for individual users
2024-09-05 17:53:18 +02:00
cbadef0a73
chore(mail): fix #179 reorder attachments and guess PDF pin password in Text display
2024-09-05 16:28:20 +02:00
2a27a1efa6
fix(avs): fix #124 avs auto synch filter working
...
also, provide test facility for auto synch
2024-09-05 16:27:10 +02:00
620e3e4700
fix(mail): fix #179 by adding download links for PDF attachments
2024-09-05 14:09:50 +02:00
f0798e8836
chore(avs): debug automatic avs licence synch within admin avs test page
2024-09-04 18:08:08 +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
43319fbcca
chore(admin): unreachable page offers convient avs and ldap synch buttons
2024-08-29 18:12:10 +02:00
f946e99da3
fix(ldap): no more timeout for ldap synch all button
2024-08-29 16:45:39 +02:00
cfe2318f81
fix(avs): attempt LDAP upsert before creating avs users
2024-08-29 16:15:16 +02:00
64ff002ffb
chore(firm): provide more filters for supervisors
...
also fix build #175
2024-08-29 14:34:37 +02:00