Merge branch 'master' into fradrive/newletter
This commit is contained in:
commit
e5cbd096ce
83
CHANGELOG.md
83
CHANGELOG.md
@ -2,6 +2,89 @@
|
||||
|
||||
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
||||
|
||||
## [27.4.67](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/compare/v27.4.66...v27.4.67) (2024-06-17)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **avs:** fix rare avs update bug involving values optional in avs but compulsory in user entity ([a6d0105](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/a6d0105903caba0eb47715eeb217ea2c53d99e23))
|
||||
|
||||
## [27.4.66](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/compare/v27.4.65...v27.4.66) (2024-06-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **avs:** fix [#164](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/issues/164) by removing companyPersonalNumber and companyDepartment upon ldap sync expiry ([da74b95](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/da74b957295caefb010c90297af557f997b18e7c))
|
||||
* **avs:** fix [#165](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/issues/165) by updating userCompanyDepartmen and userCompanyPersonalNumer ([76e0710](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/76e0710c7b54a40d2c236299ea4fabd009d3f35a))
|
||||
* **avs:** repeated avs sync enqueue no longe violates duplicate db uniqueness constraints ([996e6a0](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/996e6a0ce563bda96638863efd40ce38fce8ac2b))
|
||||
* **avs:** update email on manual company switch ([9fd80f2](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/9fd80f25526eefce217c659f6ea2991771c11ece)), closes [#164](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/issues/164)
|
||||
|
||||
## [27.4.65](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/compare/v27.4.64...v27.4.65) (2024-06-10)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **avs:** company update no longer fails on duplicate key ([bb101de](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/bb101dee7b40cd3d8ba10a559af642396d5b87b5))
|
||||
* **avs:** profile page correctly indicates automatic email and postal addresses ([e553ad4](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/e553ad4358a71fc96fa946533f0441d4af5202c9))
|
||||
* **avs:** steps towards [#164](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/issues/164) ([aa1d230](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/aa1d230e497f0e59dbea9f4fd5c7da773f5a4280))
|
||||
* **lette:** adjust window for new pin letters ([6acfd84](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/6acfd849aeb473a018f7a9c34e69f61b3c22b6f8))
|
||||
|
||||
## [27.4.64](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/compare/v27.4.63...v27.4.64) (2024-05-27)
|
||||
|
||||
## [27.4.63](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/compare/v27.4.62...v27.4.63) (2024-05-23)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **avs:** company update checks uniques and ignores those updates if necessary ([9451d90](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/9451d90a9e00d08a2a7d169c4674d99ff1018ee9))
|
||||
|
||||
## [27.4.62](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/compare/v27.4.61...v27.4.62) (2024-05-19)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **avs:** avs update on company shorthands working now ([ff2347b](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/ff2347b1c950c7a2bb281cdcd07a52925e23b9f0))
|
||||
* **avs:** deal gracefully with empty card status results ([ccf9340](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/ccf934044938277d821eb4b9ea08a8a134e84189))
|
||||
|
||||
## [27.4.61](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/compare/v27.4.60...v27.4.61) (2024-05-06)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **avs:** fix [#76](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/issues/76) allowing company changes and fix [#69](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/issues/69) ([3c4a0b8](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/3c4a0b86c1e3d8a28405ab73b964ba1b988d2822))
|
||||
* **build:** add missing tex packages ([6750798](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/6750798920dc76882f4e8ef39b47018fb7b77e44))
|
||||
* **build:** workaround non modal form result handler ([2fbd281](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/2fbd28154cd7aea282eaa2604a42263ac90e3b1e))
|
||||
|
||||
## [27.4.60](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/compare/v27.4.59...v27.4.60) (2024-04-26)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **avs:** disable caching by 0s no longer causes an exception ([d578e80](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/d578e80282c8bf6872fa6040514a9d2c85582707))
|
||||
* **avs:** fix [#152](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/issues/152) by providing new online avs card filter throughout ([ad2375b](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/ad2375b338866f37c8b7825a9eab12fa6c9abccb))
|
||||
* **avs:** fix [#36](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/issues/36) and remove dead code ([4f8850b](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/4f8850b3b4f710f9cf59163175b27599c97ac5c0))
|
||||
* **avs:** fix [#69](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/issues/69) by redesigning live avs status page ([697979c](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/697979c277ce7198f4573d6cea30373a1fcc17da))
|
||||
* **avs:** invalidate contact cache after licence writes ([c382be9](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/c382be9325fcc92e13cb5dc2ad7c20b198db26fc))
|
||||
* **avs:** several minor bugfixes ([a52c8a6](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/a52c8a6ad709029a8822d383370b0d2bdd25e7d7)), closes [#158](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/issues/158)
|
||||
* **build:** add import needed for production only ([724e4a0](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/724e4a0bec343ab9c6d172d8e93b8040bbe3fe7d))
|
||||
* **build:** migration needs to check for table existens first ([f439ea4](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/f439ea45af9b1c4a029fc1b9b6383f3c97194ed0))
|
||||
* **build:** minor error non-development code ([66eaa4f](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/66eaa4f7dcc124b631414d4a1adbe555a4029100))
|
||||
* **build:** missing parameters added ([83afdf7](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/83afdf760f93fc1a553de3a122b444412ed84ba4))
|
||||
* **build:** simple type error ([d56a1cd](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/d56a1cdd46259418faa737b9bb0a9d9ffba442e0))
|
||||
* **build:** type error in test db fill data ([f465cc9](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/f465cc972367233a4944dd0aeb81b223a187bb85))
|
||||
* **doc:** minor haddock problems ([d4f8a6c](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/d4f8a6c77b2a4a4540935f7f0beca0d0605508c8))
|
||||
* **firm:** supervisor filter acts weird in test environment ([b566e59](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/b566e59eb1325485fe26dc4f0b5cb63165c58f74))
|
||||
* **i18n:** fix some bad plurals ([890f8ad](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/890f8ad8b60115533faa6b99f4c4504243cbfb1d))
|
||||
* **lint:** remove minor superfluous dollar ([64a1233](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/64a123387f3539b73649d02a6ecd97de577097e6))
|
||||
* **qualification:** fix [#159](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/issues/159) by removing an misleadingly named column for user qualification table ([fd6a538](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/fd6a5384d3517958a3c7726e32eed3bad197a591))
|
||||
|
||||
## [27.4.59](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/compare/v27.4.58...v27.4.59) (2024-02-13)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **sql:** remove potential bug in relation to missing parenthesis after not_ ([42695cf](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/42695cf5ef9f21691dc027f1ec97d57eec72f03e))
|
||||
|
||||
## [27.4.58](https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/compare/v27.4.57...v27.4.58) (2024-02-08)
|
||||
|
||||
|
||||
|
||||
6
fixtest.sh
Executable file
6
fixtest.sh
Executable file
@ -0,0 +1,6 @@
|
||||
if [[ ! -d .stack-work-test ]]; then
|
||||
mv -vT .stack-work .stack-work-test
|
||||
[[ -d .stack-work-build ]] && mv -vT .stack-work-build .stack-work
|
||||
else
|
||||
echo "Directory .stack-work-test exists already."
|
||||
fi
|
||||
@ -1,11 +1,9 @@
|
||||
# SPDX-FileCopyrightText: 2022 Gregor Kleen <gregor.kleen@ifi.lmu.de>,Steffen Jost <jost@tcs.ifi.lmu.de>
|
||||
# SPDX-FileCopyrightText: 2022-24 Gregor Kleen <gregor.kleen@ifi.lmu.de>,Steffen Jost <jost@tcs.ifi.lmu.de>,Steffen Jost <s.jost@fraport.de>
|
||||
#
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
FAQLoginExpired: Mein Passwort ist abgelaufen und muss erneuert werden
|
||||
FAQNoCampusAccount: Ich habe keine Fraport AG Kennung (Büko-Login); kann ich trotzdem Zugang zum System erhalten?
|
||||
FAQForgottenPassword: Ich habe mein Passwort vergessen
|
||||
FAQCampusCantLogin: Ich kann mich mit meiner Fraport AG Kennung (Büko-Login) nicht anmelden
|
||||
FAQCourseCorrectorsTutors: Wie kann ich Ausbilder oder Korrektoren für meine Kursart konfigurieren?
|
||||
FAQNotLecturerHowToCreateCourses: Wie kann ich eine neue Kursart anlegen?
|
||||
FAQExamPoints: Warum kann ich bei meiner Klausur keine Punkte eintragen?
|
||||
FAQInvalidCredentialsAdAccountDisabled: Ich kann mich nicht anmelden und bekomme die Meldung „Benutzereintrag gesperrt“
|
||||
FAQNotLecturerHowToCreateCourses: Wie kann ich eine neue Kursart anlegen?
|
||||
@ -1,11 +1,9 @@
|
||||
# SPDX-FileCopyrightText: 2022 Gregor Kleen <gregor.kleen@ifi.lmu.de>,Steffen Jost <jost@tcs.ifi.lmu.de>
|
||||
# SPDX-FileCopyrightText: 2022-24 Gregor Kleen <gregor.kleen@ifi.lmu.de>,Steffen Jost <jost@tcs.ifi.lmu.de>,Steffen Jost <s.jost@fraport.de>
|
||||
#
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
FAQLoginExpired: My password expired
|
||||
FAQNoCampusAccount: I don't have Fraport AG credentials (Büko login); can I still get access?
|
||||
FAQForgottenPassword: I have forgotten my password
|
||||
FAQCampusCantLogin: I can't log in using my Fraport AG credentials (Büko login)
|
||||
FAQCourseCorrectorsTutors: How can I add instructors or correctors to my course?
|
||||
FAQNotLecturerHowToCreateCourses: How can I create new courses?
|
||||
FAQExamPoints: Why can't I enter achievements for my exam as points?
|
||||
FAQInvalidCredentialsAdAccountDisabled: I can't log in and am instead given the message “Account disabled”
|
||||
FAQNotLecturerHowToCreateCourses: How can I create new courses?
|
||||
@ -25,7 +25,8 @@ TableQualificationSapExport: SAP
|
||||
TableQualificationSapExportTooltip: Wird die Qualifikation an das SAP übermittelt? Betrifft nur Benutzer mit Fraport Personalnummer.
|
||||
LmsQualificationValidUntil: Gültig bis
|
||||
TableQualificationLastRefresh: Zuletzt erneuert
|
||||
TableQualificationLastNotified: Letzte Benachrichtigung
|
||||
TableQualificationLastNotified: Letzte Benachrichtigung über erfolgte Gültigkeitsänderung
|
||||
TableQualificationLastNotifiedTooltip: Hier werden ausschließlich Benachrichtigungen berücksichtigt, die über einen bereits erfolgten Ablauf/Entzug/Wiedererteilung informieren. Dies ignoriert insbesondere reguläre Verlängerung, z.B. durch E-Learning.
|
||||
TableQualificationFirstHeld: Erstmalig
|
||||
TableQualificationBlockedDue: Entzug
|
||||
TableQualificationBlockedTooltip: Wann wurde die Qualifikation vorübergehend außer Kraft gesetzt und warum wurde dies veranlasst?
|
||||
|
||||
@ -25,7 +25,8 @@ TableQualificationSapExport: Sent to SAP
|
||||
TableQualificationSapExportTooltip: Is this qualification transmitted to SAP? Only applies to qualification holder having a Fraport AG personnel number.
|
||||
LmsQualificationValidUntil: Valid until
|
||||
TableQualificationLastRefresh: Last renewed
|
||||
TableQualificationLastNotified: Last notified
|
||||
TableQualificationLastNotified: Last notified about validity change
|
||||
TableQualificationLastNotifiedTooltip: The date of the last notification about any already effective change in validity due to revocation or reissue. This does not entail regular validity extensions, e.g. due to e-learning.
|
||||
TableQualificationFirstHeld: First held
|
||||
TableQualificationBlockedDue: Revocations
|
||||
TableQualificationBlockedTooltip: Why and when was this qualification temporarily suspended?
|
||||
|
||||
@ -69,7 +69,7 @@ QualificationUser
|
||||
lastRefresh Day -- lastRefresh > validUntil possible, if Qualification^elearningOnly == False
|
||||
firstHeld Day -- first time the qualification was earned, should never change
|
||||
scheduleRenewal Bool default=true -- if false, no automatic renewal is scheduled and the qualification expires
|
||||
lastNotified UTCTime default=now() -- last notficiation about being invalid
|
||||
lastNotified UTCTime default=now() -- last notficiation about actual licence validity changes (does not entail e-learning notifications)
|
||||
-- Reasons and temporary revocations are implemented through QualificationUserBlock
|
||||
-- TODO: adjust SAP interface to transmit end dates
|
||||
UniqueQualificationUser qualification user
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
{
|
||||
"version": "27.4.58"
|
||||
"version": "27.4.67"
|
||||
}
|
||||
|
||||
2
package-lock.json
generated
2
package-lock.json
generated
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "uni2work",
|
||||
"version": "27.4.58",
|
||||
"version": "27.4.67",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "uni2work",
|
||||
"version": "27.4.58",
|
||||
"version": "27.4.67",
|
||||
"description": "",
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
name: uniworx
|
||||
version: 27.4.58
|
||||
version: 27.4.67
|
||||
dependencies:
|
||||
- base
|
||||
- yesod
|
||||
|
||||
@ -193,7 +193,7 @@ handleAddUserR tid ssh csh tdesc ttyp = do
|
||||
currentRoute <- fromMaybe (error "postCAddUserR called from 404-handler") <$> getCurrentRoute
|
||||
|
||||
(_ , registerConfirmResult) <- runButtonForm FIDCourseRegisterConfirm
|
||||
-- $logDebugS "***AbortProblem***" $ tshow registerConfirmResult
|
||||
-- $logDebugS "***AbortProblem***" $ tshow registerConfirmResult
|
||||
prefillUsers <- case registerConfirmResult of
|
||||
Nothing -> return mempty
|
||||
(Just BtnCourseRegisterAbort) -> do
|
||||
|
||||
@ -103,7 +103,7 @@ runInterfaceLogTable interfs@(reqIfs,_) = do
|
||||
|
||||
mkInterfaceLogTable :: (Bool -> Widget) -> ReqBanInterfaceHealth -> DB ([(Text,Bool)], Widget)
|
||||
mkInterfaceLogTable flagError interfs@(reqIfs, banIfs) = do
|
||||
-- $logWarnS "DEBUG" $ tshow ([ihDebugShow x | x<- reqIfs], [ihDebugShow x | x<- banIfs])
|
||||
-- $logWarnS "DEBUG" $ tshow ([ihDebugShow x | x<- reqIfs], [ihDebugShow x | x<- banIfs])
|
||||
void $ liftHandler $ timeoutHandler 42000001 $ runDB $ runInterfaceChecks interfs
|
||||
now <- liftIO getCurrentTime
|
||||
dbTableDB ilvalidator DBTable{dbtColonnade=colonnade now, ..}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
-- SPDX-FileCopyrightText: 2022-2023 Felix Hamann <felix.hamann@campus.lmu.de>, Gregor Kleen <gregor@kleen.consulting>, Sarah Vaupel <sarah.vaupel@ifi.lmu.de>, Steffen Jost <jost@tcs.ifi.lmu.de>, Winnie Ros <winnie.ros@campus.lmu.de>
|
||||
-- SPDX-FileCopyrightText: 2022-2024 Felix Hamann <felix.hamann@campus.lmu.de>, Gregor Kleen <gregor@kleen.consulting>, Sarah Vaupel <sarah.vaupel@ifi.lmu.de>, Steffen Jost <jost@tcs.ifi.lmu.de>, Winnie Ros <winnie.ros@campus.lmu.de>, Steffen Jost <s.jost@fraport.de>
|
||||
--
|
||||
-- SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@ -13,12 +13,12 @@ import Data.Map ((!))
|
||||
import qualified Data.CaseInsensitive as CI
|
||||
import qualified Data.Set as Set
|
||||
|
||||
import qualified Database.Esqueleto.Legacy as E
|
||||
import qualified Database.Esqueleto.Utils as E
|
||||
-- import qualified Database.Esqueleto.Legacy as E
|
||||
-- import qualified Database.Esqueleto.Utils as E
|
||||
|
||||
import Development.GitRev
|
||||
|
||||
import Auth.LDAP (ADError(..), ADInvalidCredentials(..), CampusMessage(..))
|
||||
-- import Auth.LDAP (ADError(..), ADInvalidCredentials(..), CampusMessage(..))
|
||||
|
||||
import Yesod.Auth.Message(AuthMessage(..))
|
||||
|
||||
@ -175,6 +175,7 @@ showFAQ :: ( MonadAP m
|
||||
, MonadThrow m
|
||||
)
|
||||
=> Route UniWorX -> FAQItem -> m Bool
|
||||
showFAQ _ FAQLoginExpired = return True
|
||||
showFAQ _ FAQNoCampusAccount = is _Nothing <$> maybeAuthId
|
||||
showFAQ (AuthR _) FAQCampusCantLogin = return True
|
||||
showFAQ _ FAQCampusCantLogin = is _Nothing <$> maybeAuthId
|
||||
@ -183,38 +184,20 @@ showFAQ _ FAQForgottenPassword = is _Nothing <$> maybeAuthId
|
||||
showFAQ _ FAQNotLecturerHowToCreateCourses
|
||||
= and2M (is _Just <$> maybeAuthId)
|
||||
(not <$> hasWriteAccessTo CourseNewR)
|
||||
showFAQ (CourseR tid ssh csh _) FAQCourseCorrectorsTutors
|
||||
= and2M (is _Just <$> maybeAuthId)
|
||||
(or2M (hasWriteAccessTo $ CourseR tid ssh csh SheetNewR)
|
||||
(hasWriteAccessTo $ CourseR tid ssh csh CTutorialNewR)
|
||||
)
|
||||
showFAQ (CExamR tid ssh csh examn _) FAQExamPoints
|
||||
= and2M (hasWriteAccessTo $ CExamR tid ssh csh examn EEditR)
|
||||
noExamParts
|
||||
where
|
||||
noExamParts = liftHandler . runDB . E.selectNotExists . E.from $ \(examPart `E.InnerJoin` exam `E.InnerJoin` course) -> do
|
||||
E.on $ course E.^. CourseId E.==. exam E.^. ExamCourse
|
||||
E.on $ exam E.^. ExamId E.==. examPart E.^. ExamPartExam
|
||||
E.where_ $ course E.^. CourseTerm E.==. E.val tid
|
||||
E.&&. course E.^. CourseSchool E.==. E.val ssh
|
||||
E.&&. course E.^. CourseShorthand E.==. E.val csh
|
||||
E.&&. exam E.^. ExamName E.==. E.val examn
|
||||
showFAQ _ FAQInvalidCredentialsAdAccountDisabled = maybeT (return False) $ do
|
||||
guardM $ is _Nothing <$> maybeAuthId
|
||||
sessionError <- MaybeT $ lookupSessionJson SessionError
|
||||
guard $ sessionError == PermissionDenied (toPathPiece $ ADInvalidCredentials ADAccountDisabled)
|
||||
return True
|
||||
showFAQ _ _ = return False
|
||||
-- showFAQ (CourseR tid ssh csh _) FAQCourseCorrectorsTutors
|
||||
-- = and2M (is _Just <$> maybeAuthId)
|
||||
-- (or2M (hasWriteAccessTo $ CourseR tid ssh csh SheetNewR)
|
||||
-- (hasWriteAccessTo $ CourseR tid ssh csh CTutorialNewR)
|
||||
-- )
|
||||
-- showFAQ _ _ = return False
|
||||
|
||||
prioFAQ :: Monad m
|
||||
=> Route UniWorX -> FAQItem -> m Rational
|
||||
prioFAQ _ FAQLoginExpired = return 2
|
||||
prioFAQ _ FAQNoCampusAccount = return 1
|
||||
prioFAQ _ FAQCampusCantLogin = return 1
|
||||
prioFAQ _ FAQForgottenPassword = return 1
|
||||
prioFAQ _ FAQNotLecturerHowToCreateCourses = return 1
|
||||
prioFAQ _ FAQCourseCorrectorsTutors = return 1
|
||||
prioFAQ _ FAQExamPoints = return 2
|
||||
prioFAQ _ FAQInvalidCredentialsAdAccountDisabled = return 3
|
||||
|
||||
|
||||
getInfoLecturerR :: Handler Html
|
||||
|
||||
@ -595,7 +595,10 @@ postQualificationR sid qsh = do
|
||||
) $ \( view $ resultQualUser . _entityVal . _qualificationUserScheduleRenewal -> b) -> ifIconCell (not b) IconNoNotification
|
||||
, sortable (Just "lms-status-plus")(i18nCell MsgTableLmsStatus & cellTooltipWgt Nothing (lmsStatusInfoCell isAdmin auditMonths))
|
||||
$ \(preview $ resultLmsUser . _entityVal -> lu) -> foldMap (lmsStatusCell isAdmin linkLmsUser) lu
|
||||
, sortable (Just "last-notified") (i18nCell MsgTableQualificationLastNotified) $ \( view $ resultQualUser . _entityVal . _qualificationUserLastNotified -> d) -> dateTimeCell d
|
||||
-- QualificationUserLastNotified is about notification on actual validity changes. If a user's licence is about to expire and renewed before expiry via e-learning, this value does not change.
|
||||
-- NOTE: If this column is reinstatiated, header and tooltip were already updated to avoid any confusion!
|
||||
-- , sortable (Just "last-notified") (i18nCell MsgTableQualificationLastNotified & cellTooltip MsgTableQualificationLastNotifiedTooltip)
|
||||
-- $ \( view $ resultQualUser . _entityVal . _qualificationUserLastNotified -> d) -> dateTimeCell d
|
||||
]
|
||||
psValidator = def & defaultSorting [SortDescBy "last-refresh"]
|
||||
tbl <- mkQualificationTable isAdmin qent acts colChoices psValidator
|
||||
|
||||
@ -8,19 +8,27 @@ $# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
<p>
|
||||
Können sie sich mit <i>exakt identischen</i> (idealerweise #
|
||||
copy&paste) Daten #
|
||||
im <a href="https://www.portal.uni-muenchen.de">Campus-Portal</a> #
|
||||
im <a href="https://myapps.microsoft.com/">myapps.microsoft.com</a> #
|
||||
anmelden?
|
||||
|
||||
<br>
|
||||
Falls sie die Fehlermeldung „Passwort abgelaufen“ oder "password-expired" erhalten, #
|
||||
dann befolgen Sie bitte #
|
||||
<a href=^{faqLink FAQLoginExpired}>
|
||||
diese Anleitung zum erneuern Ihres Passworts.
|
||||
|
||||
<br>
|
||||
|
||||
Falls nicht („_{InvalidLogin}“), ist davon auszugehen, dass Sie #
|
||||
Ihre Anmeldedaten falsch eingeben oder #
|
||||
<a href=^{faqLink FAQNoCampusAccount}>keine LMU-Benutzerkennung #
|
||||
(ehem. Campus-Kennung) besitzen</a>.
|
||||
<a href=^{faqLink FAQNoCampusAccount}>keine gültige Fraport AG #
|
||||
Benutzerkennung besitzen</a>. #
|
||||
Rufen Sie in diesem Fall den allgemeinen Fraport IT-Helpdesk #
|
||||
an unter <a href="tel:+49-69-690127">+49-69-690127</a>
|
||||
|
||||
<p>
|
||||
Beachten Sie dabei auch, dass Uni2work Leerzeichen sowohl im #
|
||||
Passwort als auch bei der Kennung berücksichtigt.
|
||||
Beachten Sie, dass Leerzeichen sowohl im #
|
||||
Passwort als auch bei der Kennung berücksichtigt werden.
|
||||
|
||||
<br>
|
||||
|
||||
@ -33,34 +41,27 @@ $# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
aktiviertem JavaScript), dass Sie Ihr Passwort korrekt eingeben.
|
||||
|
||||
<p>
|
||||
Uni2work bietet zwei Login-Formulare.
|
||||
Uni2work bietet mehrere Login-Formulare.
|
||||
|
||||
<br>
|
||||
|
||||
Für die Anmeldung mit der LMU-Benutzerkennung (ehem. Campus-Kennung) #
|
||||
Für die Anmeldung mit Ihren Fraport AG Konto #
|
||||
müssen Sie das Formular „_{MsgLDAPLoginTitle}“ verwenden.
|
||||
|
||||
<br>
|
||||
|
||||
Geben Sie unter „_{MsgCampusIdent}“ ihre vollständige #
|
||||
LMU-Benutzerkennung an. #
|
||||
|
||||
Diese ist identisch mit ihrer <code>@campus.lmu.de</code> E-Mail #
|
||||
Adresse.
|
||||
|
||||
|
||||
<p>
|
||||
Falls Sie seit Ihrem letzten Login in Uni2work ihr Passwort geändert #
|
||||
Falls Sie Ihr Passwort kürzlich geändert #
|
||||
haben, kann es sein, dass die Änderung des Passworts (noch) nicht #
|
||||
korrekt propagiert wurde.
|
||||
korrekt propagiert wurde. Warten Sie einfach ein paar Minuten oder #
|
||||
versuchen Sie, Ihr altes Passwort zu verwenden.
|
||||
|
||||
<br>
|
||||
|
||||
In diesem Fall können Sie versuchen Ihr Passwort erneut zu ändern.
|
||||
|
||||
<p>
|
||||
Sobald Sie die obigen Hinweise befolgt haben, wenden Sie sich bitte #
|
||||
(erneut) über das <a href=@{HelpR}>Hilfe-Formular</a>, oben rechts #
|
||||
auf jeder Seite, an die Uni2work-Administration.
|
||||
auf jeder Seite, an die FRADrive-Administration.
|
||||
|
||||
<br>
|
||||
|
||||
|
||||
@ -7,18 +7,29 @@ $# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
<p>
|
||||
Can you log in to #
|
||||
the <a href="https://www.portal.uni-muenchen.de">Campus-Portal</a> #
|
||||
the <a href="https://myapps.microsoft.com/">myapps.microsoft.com</a> #
|
||||
using the <i>exact same</i> (ideally copied & pasted) login data?
|
||||
|
||||
<br>
|
||||
If you received the error message „Passwort abgelaufen“ or "password-expired" #
|
||||
then please follow #
|
||||
<a href=^{faqLink FAQLoginExpired}>
|
||||
these instructions for password renewal.
|
||||
|
||||
<br>
|
||||
|
||||
If you cannot (“_{InvalidLogin}”), this means that you are #
|
||||
entering your login data wrong or that you #
|
||||
<a href=^{faqLink FAQNoCampusAccount}>do not have a LMU user ID #
|
||||
(formerly Campus-ID)</a>.
|
||||
<a href=^{faqLink FAQNoCampusAccount}>
|
||||
do not have a valid Fraport AG credentials.
|
||||
|
||||
<br>
|
||||
|
||||
In this case please call the general Fraport IT-Servicedesk
|
||||
at <a href="tel:+49-69-690127">+49-69-690127</a>
|
||||
|
||||
<p>
|
||||
Please consider that for Uni2work both your user ID and password are #
|
||||
Please consider that for FRADrive both your user ID and password are #
|
||||
sensitive to whitespace characters.
|
||||
|
||||
<br>
|
||||
@ -37,31 +48,22 @@ $# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
password manager instead of typing it manually.
|
||||
|
||||
<p>
|
||||
Uni2work offers two login forms.
|
||||
Furthermore, FRADrive offers several login forms.
|
||||
|
||||
<br>
|
||||
|
||||
To log in using your LMU user ID (formerly Campus-ID) you need to #
|
||||
To log in using your Fraport AG credentials you need to #
|
||||
use the form titled “_{MsgLDAPLoginTitle}”.
|
||||
|
||||
<br>
|
||||
|
||||
Under “_{MsgCampusIdent}” please enter your entire LMU user ID, #
|
||||
which is identical to your <code>@campus.lmu.de</code> email #
|
||||
address.
|
||||
|
||||
<p>
|
||||
If you have changed your password since last you logged into #
|
||||
Uni2work, it may be the case that your password change was not #
|
||||
propagated properly.
|
||||
|
||||
<br>
|
||||
|
||||
If so, please try changing your password again.
|
||||
FRADrive, it may be the case that your password change was not #
|
||||
propagated properly. Please wait a few minutes and try again,
|
||||
or try changing your password again.
|
||||
|
||||
<p>
|
||||
Once you have followed the suggestions above, please contact a #
|
||||
Uni2work-administrator using the <a href=@{HelpR}>Support form</a> #
|
||||
FRADrive-administrator using the <a href=@{HelpR}>Support form</a> #
|
||||
(at the top right of every page).
|
||||
|
||||
<br>
|
||||
@ -73,4 +75,4 @@ $# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
Never disclose your password to third parties! #
|
||||
|
||||
Not even to an Uni2work-administrator or the IT-Servicedesk!
|
||||
Not even to a FRADrive-administrator or the IT-Servicedesk!
|
||||
|
||||
@ -1,10 +0,0 @@
|
||||
$newline never
|
||||
|
||||
$# SPDX-FileCopyrightText: 2022 Gregor Kleen <gregor.kleen@ifi.lmu.de>,Winnie Ros <winnie.ros@campus.lmu.de>
|
||||
$#
|
||||
$# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
<p>
|
||||
Ausbilder:innen und Korrektor:innen werden beim Anlegen oder Editieren des #
|
||||
jeweiligen Kurses bzw. Übungsblattes angegeben.
|
||||
|
||||
@ -1,9 +0,0 @@
|
||||
$newline never
|
||||
|
||||
$# SPDX-FileCopyrightText: 2022 Gregor Kleen <gregor.kleen@ifi.lmu.de>
|
||||
$#
|
||||
$# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
<p>
|
||||
Instructors and correctors are assigned when creating or editing the #
|
||||
respective course or exercise sheet.
|
||||
@ -1,14 +0,0 @@
|
||||
$newline never
|
||||
|
||||
$# SPDX-FileCopyrightText: 2022 Gregor Kleen <gregor.kleen@ifi.lmu.de>
|
||||
$#
|
||||
$# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
|
||||
<p>
|
||||
Klausurpunkte werden in Uni2work pro Teilaufgabe verwaltet.
|
||||
|
||||
<p>
|
||||
Um Klausurleistungen als Punkte anzugeben (und optional automatisch #
|
||||
eine Note daraus zu berechnen), müssen Sie mindestens eine #
|
||||
Teilprüfung/Aufgabe anlegen.
|
||||
@ -1,14 +0,0 @@
|
||||
$newline never
|
||||
|
||||
$# SPDX-FileCopyrightText: 2022 Gregor Kleen <gregor.kleen@ifi.lmu.de>
|
||||
$#
|
||||
$# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
|
||||
<p>
|
||||
Exam points are managed in Uni2work on a per-exam-part basis.
|
||||
|
||||
<p>
|
||||
To store exam achievements in the form of points (and optionally #
|
||||
automatically compute grades), you need to create at least one #
|
||||
exam part/question.
|
||||
@ -1,27 +1,16 @@
|
||||
$newline never
|
||||
|
||||
$# SPDX-FileCopyrightText: 2022 Gregor Kleen <gregor.kleen@ifi.lmu.de>,Winnie Ros <winnie.ros@campus.lmu.de>
|
||||
$# SPDX-FileCopyrightText: 2022-24 Gregor Kleen <gregor.kleen@ifi.lmu.de>,Winnie Ros <winnie.ros@campus.lmu.de>,Steffen Jost <s.jost@fraport.de>
|
||||
$#
|
||||
$# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
|
||||
<p>
|
||||
Wenn Sie sich gewöhnlicherweise mit Ihrer LMU-Benutzerkennug #
|
||||
(ehem. Campus-Kennung) anmelden, wenden Sie sich bitte an #
|
||||
den <a href="https://www.it-servicedesk.uni-muenchen.de/faq/index.html#campuskennung-passwort-vergessen">IT-Servicedesk</a> #
|
||||
um Ihr Passwort zurücksetzen zu lassen.
|
||||
Wenn Sie Ihr Passwort vergessen haben, wenden Sie sich bitte an #
|
||||
den allgemeinen Fraport IT-Helpdesk unter
|
||||
<a href="tel:+49-69-690127">
|
||||
+49-69-690127
|
||||
|
||||
<p>
|
||||
Wenn Sie sich mit einer Uni2work-internen Kennung anmelden wenden #
|
||||
Sie sich dafür bitte über das <a href=@{HelpR}>Hilfe-Formular</a> #
|
||||
(oben rechts auf jeder Seite) an die Uni2work-Administration.
|
||||
<br>
|
||||
Tragen sie dabei unter „Antworten an“ die Adresse ein, an die #
|
||||
Uni2work gewöhnlicherweise Mitteilungen verschickt.
|
||||
<br>
|
||||
Bitte geben Sie zusätzlich mind. eine nicht-öffentliche #
|
||||
personenbezogene Information an, um den Administrator:innen zu helfen #
|
||||
die Anfrage zu authorisieren. #
|
||||
|
||||
Geeignet ist z.B. die Matrikelnummer oder der ungefähre Zeitpunkt #
|
||||
des letzten Logins.
|
||||
Die FRADrive Administratoren können bei Login Problemen leider #
|
||||
nicht helfen, da diese keinen Zugriff auf Ihren Fraport AG Account haben.
|
||||
|
||||
@ -1,26 +1,17 @@
|
||||
$newline never
|
||||
|
||||
$# SPDX-FileCopyrightText: 2022 Gregor Kleen <gregor.kleen@ifi.lmu.de>
|
||||
$# SPDX-FileCopyrightText: 2024 Gregor Kleen <gregor.kleen@ifi.lmu.de>,Steffen Jost <s.jost@fraport.de>
|
||||
$#
|
||||
$# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
|
||||
<p>
|
||||
If you usually log in using your LMU user ID (formerly Campus-ID) #
|
||||
please contact #
|
||||
the <a href="https://www.it-servicedesk.uni-muenchen.de/faq/index.html#campuskennung-passwort-vergessen">IT #
|
||||
servicedesk (german)</a> to reset your password.
|
||||
If you have forgotten your password #
|
||||
please contact the general Fraport IT-servicedesk at #
|
||||
<a href="tel:+49-69-690127">
|
||||
+49-69-690127
|
||||
to reset your password.
|
||||
|
||||
<p>
|
||||
If you log in using a Uni2work-internal account please use #
|
||||
the <a href=@{HelpR}>Support form</a> (at the top right of every #
|
||||
page) to contact a Uni2work-administrator.
|
||||
<br>
|
||||
Specify the email to which Uni2work usually sends notifications #
|
||||
under “Send answers to”.
|
||||
<br>
|
||||
|
||||
Please also include at least one non-public piece of information to #
|
||||
help authorise your request. #
|
||||
We suggest your Matriculation number or the approximate time of your #
|
||||
last successful login.
|
||||
FRADrive administrators have no access to your Frapot AG account #
|
||||
and thus cannot help you with this problem.
|
||||
|
||||
@ -1,22 +0,0 @@
|
||||
$newline never
|
||||
|
||||
$# SPDX-FileCopyrightText: 2022 Gregor Kleen <gregor.kleen@ifi.lmu.de>
|
||||
$#
|
||||
$# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
|
||||
<p>
|
||||
Gewöhnlicherweise wird Ihr Benutzereintrag gesperrt, wenn sie #
|
||||
exmatrikuliert werden bzw. Ihr Beschäftigungsverhältnis endet. #
|
||||
|
||||
Es kommt gelegentlich vor, dass Ihr Benutzereintrag nicht korrekt #
|
||||
entsperrt wird, wenn Sie wieder immatrikuliert bzw. eingestellt #
|
||||
werden.
|
||||
|
||||
<p>
|
||||
Falls Sie aktuell immatrikuliert bzw. eingestellt sind, oder Sie #
|
||||
einen anderen triftigen Grund vorweisen können, warum Sie Zugang zu #
|
||||
Uni2work brauchen, wenden Sie sich bitte über #
|
||||
das <a href=@{HelpR}>Hilfe-Formular</a>, oben rechts auf jeder #
|
||||
Seite, an die Uni2work-Administration und schildern Sie Ihre #
|
||||
Situation.
|
||||
@ -1,19 +0,0 @@
|
||||
$newline never
|
||||
|
||||
$# SPDX-FileCopyrightText: 2022 Gregor Kleen <gregor.kleen@ifi.lmu.de>
|
||||
$#
|
||||
$# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
|
||||
<p>
|
||||
Usually your account is disabled once you are no longer matriculated #
|
||||
(i.e. registered as a student) or employed. #
|
||||
|
||||
Occasionally accounts are not correctly re-enabled once you are #
|
||||
matriculated or employed, again.
|
||||
|
||||
<p>
|
||||
If you are currently matriculated, employed, or have another good #
|
||||
reason why you should have access to Uni2work, please contact a #
|
||||
Uni2work-Administrator using the <a href=@{HelpR}>Support form</a> #
|
||||
(at the top right of every page) and describe your situation.
|
||||
47
templates/i18n/faq/login-expired.de-de-formal.hamlet
Normal file
47
templates/i18n/faq/login-expired.de-de-formal.hamlet
Normal file
@ -0,0 +1,47 @@
|
||||
$newline never
|
||||
|
||||
$# SPDX-FileCopyrightText: 2024 Steffen Jost <s.jost@fraport.de>
|
||||
$#
|
||||
$# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
|
||||
<p>
|
||||
Der Zugang zu FRADrive erfolgt über Ihren Fraport AG Login. #
|
||||
Das Passwort für Ihren Fraport AG Login muss alle 90 Tage geändert werden. #
|
||||
Tun Sie dies nicht, so können Sie sich nicht mehr einloggen. #
|
||||
Dies besagen die Richtlininen der Fraport AG IT Abteilung.
|
||||
|
||||
<p>
|
||||
Bevor oder auch nachdem Ihr Passwort abgelaufen ist, #
|
||||
können Sie das Passwort ganze leicht selbst mit einer #
|
||||
der folgenden Methoden ändern: #
|
||||
|
||||
<ol>
|
||||
<li>
|
||||
Über #
|
||||
<a href="https://account.activedirectory.windowsazure.com/ChangePassword.aspx">
|
||||
das Azure Portal
|
||||
.
|
||||
<li>
|
||||
Über Ihre #
|
||||
<a href="https://myaccount.microsoft.com/?ref=MeControl">
|
||||
Microsoft Kontoseite
|
||||
. Verwenden Sie dort die Funktion "Kennwort ändern".
|
||||
<li>
|
||||
Über Ihre Profil-Einstellungen "Konto-Anzeigen" auf #
|
||||
<a href="https://myapps.microsoft.com/">
|
||||
Ihre Microsoft My-Apps Seite
|
||||
.
|
||||
|
||||
<p>
|
||||
<b>
|
||||
Hinweis: #
|
||||
|
||||
Wenden Sie sich bei Problemen mit dem Passwortwechsel #
|
||||
bitte direkt an den allgemeinen Fraport IT-Helpdesk unter #
|
||||
<a href="tel:+49-69-690127">
|
||||
+49-69-690127
|
||||
|
||||
<br>
|
||||
Die FRADrive Administratoren können bei diesem Login Problem leider #
|
||||
nicht helfen, da diese keinen Zugriff auf Ihren Fraport AG Account haben.
|
||||
46
templates/i18n/faq/login-expired.en-eu.hamlet
Normal file
46
templates/i18n/faq/login-expired.en-eu.hamlet
Normal file
@ -0,0 +1,46 @@
|
||||
$newline never
|
||||
|
||||
$# SPDX-FileCopyrightText: 2024 Steffen Jost <s.jost@fraport.de>
|
||||
$#
|
||||
$# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
|
||||
<p>
|
||||
Using FRADrive required a Fraport AG account. #
|
||||
The password for your Fraport AG account must be changed every 90 days. #
|
||||
Following the general IT safety guidelines of Fraport AG, #
|
||||
your login will be temporarily disabled otherwise.
|
||||
|
||||
<p>
|
||||
Regardless of whether your password has already expired or not, #
|
||||
you may easily change your password with any one of the following methods: #
|
||||
|
||||
<ol>
|
||||
<li>
|
||||
Via #
|
||||
<a href="https://account.activedirectory.windowsazure.com/ChangePassword.aspx">
|
||||
the azure portal
|
||||
.
|
||||
<li>
|
||||
Using you #
|
||||
<a href="https://myaccount.microsoft.com/?ref=MeControl">
|
||||
Microsoft account page
|
||||
, then using the function "change password" there.
|
||||
<li>
|
||||
By accessing your profile settings on #
|
||||
<a href="https://myapps.microsoft.com/">
|
||||
your Microsoft My-Apps page
|
||||
.
|
||||
|
||||
<p>
|
||||
<b>
|
||||
Please note: #
|
||||
|
||||
If you have any problem changing your password #
|
||||
please call the general Fraport IT-servicedesk at #
|
||||
<a href="tel:+49-69-690127">
|
||||
+49-69-690127
|
||||
|
||||
<br>
|
||||
FRADrive administrators have no access to your Frapot AG account #
|
||||
and thus cannot help you with this problem.
|
||||
@ -693,12 +693,25 @@ fillDb = do
|
||||
, UserSupervisor gkleen gkleen True (Just fraGround) (Just "Staff")
|
||||
, UserSupervisor tinaTester tinaTester False Nothing (Just "Staff")
|
||||
]
|
||||
++ take 444 [ UserSupervisor fhamann uid True Nothing (Just "Test") | Entity uid _ <- matUsers, uid /= jost]
|
||||
++ take 123 [ UserSupervisor gkleen uid True (Just fraGround) (Just "Test") | Entity uid _ <- drop 369 matUsers ]
|
||||
++ take 11 [ UserSupervisor jost uid False (Just fraportAg) (Just "Test") | Entity uid _ <- drop 501 matUsers ]
|
||||
upsertManyWhere supvs [] [] []
|
||||
-- upsertManyWhere supvs [] [] [] -- NOTE: multiple calls like this are ok
|
||||
-- insertMany_ supvs -- NOTE: multiple calls like this throw an error!
|
||||
++ take 444 [ UserSupervisor fhamann uid True Nothing (Just $ tshow SupervisorReasonCompanyDefault) | Entity uid _ <- matUsers, uid /= jost]
|
||||
++ take 123 [ UserSupervisor gkleen uid True Nothing Nothing | Entity uid _ <- drop 369 matUsers ]
|
||||
++ take 11 [ UserSupervisor jost uid False Nothing (Just $ tshow SupervisorReasonCompanyDefault) | Entity uid _ <- drop 501 matUsers ]
|
||||
upsertManyWhere supvs [] [] []
|
||||
-- insertMany_ supvs -- NOTE: multiple calls like this throw a runtime error!
|
||||
-- upsertManyWhere supvs [] [] [] -- NOTE: multiple calls like this are ok
|
||||
-- upsertManyWhere (supvs ++ take 5 (drop 12 [ UserSupervisor jost uid False | Entity uid _ <- drop 501 matUsers ])) -- no duplicates within first argument allowed! (runtime error: ON CONFLICT DO UPDATE command cannot affect row a second time)
|
||||
-- [copyField UserSupervisorRerouteNotifications] [UserSupervisorRerouteNotifications =. True] [UserSupervisorSupervisor ==. jost, UserSupervisorUser <-. [uid | Entity uid _ <- take 3 $ drop 504 matUsers ]] -- does not work!
|
||||
-- let changeSome usr@(UserSupervisor s u _)
|
||||
-- | s == jost, u `elem` take 14 [ uid | Entity uid _ <- drop 501 matUsers ] = UserSupervisor s u True
|
||||
-- | otherwise = usr
|
||||
-- upsertManyWhere (changeSome <$> (supvs ++ take 5 (drop 12 [ UserSupervisor jost uid False | Entity uid _ <- drop 501 matUsers ]))) -- no duplicates within first argument allowed! (runtime error: ON CONFLICT DO UPDATE command cannot affect row a second time)
|
||||
-- [copyField UserSupervisorRerouteNotifications] [] [UserSupervisorSupervisor ==. jost, UserSupervisorUser <-. [uid | Entity uid _ <- take 3 $ drop 504 matUsers ]] -- probably does the same as the above
|
||||
-- OBSERVATIONS:
|
||||
-- - use the 2. argument with `copyField` to overwrite an existing field with the new record value provided in the 1. argument in case of an update
|
||||
-- - use the 3. argument to update a field indepently from the provided records or for computations involving previous values, eg. +=.
|
||||
-- - use the 4. argument to filter both the application of the 2. and 3. argument
|
||||
|
||||
|
||||
|
||||
ifi <- insert' $ School "Institut für Informatik" "IfI" (Just $ 14 * nominalDay) (Just $ 10 * nominalDay) True (ExamModeDNF predDNFFalse) (ExamCloseOnFinished True) SchoolAuthorshipStatementModeOptional (Just ifiAuthorshipStatement) True SchoolAuthorshipStatementModeRequired (Just ifiAuthorshipStatement) False
|
||||
mi <- insert' $ School "Institut für Mathematik" "MI" Nothing Nothing False (ExamModeDNF predDNFFalse) (ExamCloseOnFinished False) SchoolAuthorshipStatementModeNone Nothing True SchoolAuthorshipStatementModeOptional Nothing True
|
||||
|
||||
Loading…
Reference in New Issue
Block a user